我花了很多时间来开发操作系统和开发低级引导加载程序。但是现在我想离开我的操作系统一段时间,而不是离开底层环境,做一些涉及安全的事情。
因此,我选择按照预引导身份验证方案构建自己的标准密码实用程序。由于我希望该软件至少具有一点可移植性,因此我希望它尽可能少地使用外部支持。我想,如果我设法从一个运行的实模式操作系统中“钩子”到自检和int19引导程序之间的某个bios中,我会做得最好。
然而,找到关于如何修改bios代码的信息被证明是不可能的。我没有找到任何关于如何实现前面提到的内容的东西。我只找到了描述如何刷新你的简历的页面。
有人知道我如何读写bios代码吗?或者有人可以提供到描述这一点的页面的链接?
我知道这不仅是可能的,而且也是可能的,我意识到了风险,并愿意接受。
发布于 2011-08-20 05:50:53
发布于 2011-08-19 22:28:35
我不是很确定你想要达到什么目的,但是:
BIOS完全是硬件特定的-每个制造商都有自己的更新/刷新BIOS的机制,因此试图提出一种用于更新BIOS的便携式机制注定会失败。例如,当使用Bochs时,您可以通过指定不同的BIOS ROM映像来“更新”BIOS。
如果您想修改/编写您自己的BIOS,那么它将完全特定于该硬件。您最好的选择是从Bochs这样的开源软件开始--因为您可以查看BIOS的源代码(并且可以轻松地对其进行测试/调试),所以您有一个合理的机会来理解BIOS代码并将其修改为有效的代码,但是我怀疑这不是您要尝试做的事情。
为什么不在操作系统启动时执行此身份验证?如果您想保护数据,那么您应该对其进行加密,并要求用户在启动时提供登录/提供解密密钥。
发布于 2011-08-20 10:37:12
如果您正在考虑使用“遗留”PC BIOS,我会劝阻您不要尝试使用Justin提到的许多原因: 1)遗留BIOS是特定于PC供应商的;2)它是封闭源代码和专有的;3)没有定义遗留BIOS接口的行业标准来扩展您正在尝试的系统。
另一方面,如果您可以访问UEFI-based BIOS PC,则可以编写自己的PEI/DXE驱动程序来实现此类功能。这至少会给你指明一个正确的方向:
http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Welcome
关于主题的英特尔出版社书籍:Beyond BIOS
关于读/写基本输入输出系统的实用性,您需要确定包含基本输入输出系统的SPI部分并获得一个ROM burner。SPI部件可能有插座,也可能没有插座;如果没有插座,您将需要一个焊接棒,并且能够为该部件创建一个插座/接头。你显然不想在你的主计算机系统上开始这个项目。也许你可以找到一个更老的系统或者一个参考板。
https://stackoverflow.com/questions/7122815
复制相似问题