关于“AMIBios添加MSDM表方法让WinServer2012R2正版验证日志不报错”的实践与补充
前几天,看了本坛大神teety的帖子“AMIBios添加MSDM表方法让WinServer2012R2正版验证日志不报错!”。写得非常详尽,而且提供了工具,恰好手头有两块华硕的P5G41T-M-LX3主板,AMI的BIOS。就动手练了两把,基本成功了,在此对大神teety表示深深的感谢!把过程及原帖回复中的一个疑问总结补充一下,分享给有兴趣的坛友练练手。
一、照猫画虎练手添加MSDM表成功(MSDM表内存地址为FF380):
二、修改添加位置、地址指针、及MSDM表中序列号后也成功(MSDM表内存地址为FF390)
三、原帖回复中,坛友wzg1886坛友回复的疑问
原帖中wzg1886坛友回复:请教 msdm 的长度字节和偏移地址(数值:80 F3 0F 00)是如何得出的呢?笔者也有此疑问,对此在大神teety原帖中没有述及。
笔者查看原帖提及的国外网址也是失效,不过经过搜索发现国外原帖迁移到了新网址,查看之后得出了原因,心中疑惑也得到解答。
teety的帖子中提及的国外原文地址(经验证,原帖网址如下已失效):http://forums.mydigitallife.info/threads/52378-Old-AMI-bios-and-MSDM-insertion/page2?p=900176&viewfull=1
经查找,原贴地址有变化,已迁至如下新地址,测试新地址目前还有效,可查看英文原文。https://forums.mydigitallife.net/threads/old-ami-bios-and-msdm-insertion.52378/
这里使用edge浏览器的翻译功能简单翻译了一下凑合着能看:
在RSDT表尾部添加MSDM的4字节偏移地址值,数值:80 F3 0F 00(为什么是这4个值,原因见后)
在国外英文原帖中找到了这个地址值的定位依据与计算方法:AMIBIOS字符串总是映射到内存地址FF400h处,MSDM我们插入在AMIBIOS字符串首字符A的位置前移80h字节处:FF400h-80h=FF380h=000FF380h,反序排列就是:80 F3 0F 00。
关于MSDM表的知识网上可以搜索到,其完整大小是85字节(本贴中使用完整版),非完整版大小有49字节的,有效数据是29字节(25位的字符序列号,分为5段,外加4个“-”分隔符,共29位)。
在老式的纯BIOS固件的实模式中,CPU寻址使用20位的地址线,直接寻址空间为1MB(2的20次幂),其中前640KB的地址空间分配给了RAM内存地址,RAM内存地址范围是(0x00000h-0x9FFFFh),后384KB的地址空间分配给各种硬件的ROM程序使用,属于ROM内存地址空间,地址范围是(0xA0000-0xFFFFFh);修改纯BIOS,无论是添加SLIC table还是MSDM Table,在系统启动后添加的表映射的地址空间都应该在ROM地址空间内,也不能和其它硬件ROM程序使用的地址发生冲突,即要选其它硬件ROM程序已使用地址块之间的间隙插入其中,而且不要改变原模块大小,并在RSDT/XSDT表中正确添加表项和地址指针。这些指针地址用32位地址写的话,高12位就用0填充扩展,就是前面加0x000h,用64位地址(XSDT)写的话,高44位就用0填充扩展,就是前面加0x00000000000h,后20位二进制就如实写,用十六进制写的话,就是5位十六进,写在低位即可,拼起来就是64位二进制地址。
AMIBIOS字符串总是映射到内存地址FF400h处,写为32位地址的话就是0x000FF400,在内存中逆序存储的话就是00 F4 0F 00。据此就可以进行如下计算了。数值:80 F3 0F 00的计算及原因介绍,红色字节是表长度字节的倒序:2C000000--->0000002Ch,长度2Ch加4---->30h,以扩展表大小,以便指向MSDM。蓝色字节指向 SLIC 地址:00F20F00,反过来表示--->000FF200h表示 FF200h(正确,因为 SLIC 位于 AMIBIOS 字符串前方200字节处)。(FF400h-200h=FF200h,通过已经添加成功的SLIC表内存地址值验证RSDT中指针的一致性,确实正确)现在计算虚拟内存中的MSDM地址。AMIBIOS字符串总是映射到FF400h,我们把MSDM表插入在这个字符串首字符的位置前面有80h字节的位置处:FF400h-80h=FF380h=000FF380h,反序排列就是:80 F3 0F00只需替换蓝色字节后面的那4个字节即可。完成后,这个新添加的RSDT表项,现在也称为MSDM。MSDM Table已添加成功。现在我们需要通过扩展两个表并添加地址指针,从 RSDT / XSDT 调用它。每个MSDM Table长度为0x55h字节,即十进制85个字节。
四、原工具中附带的MMTOOL工具在win10系统中,显示不全,按钮无法操作的处理
1、原工具显示不全,浏览按钮无法操作
2、处理后显示正常,win10下可以正常替换操作
附件压缩包中,文件名不含”原文件“字样的都是经过处理的可以在win10系统中正常显示和操作的文件,包含”原文件“字样的文件就是处理之前的teety原帖附件工具中的原文件。
3、SLIC表也更新了2.7版,内存映射地址(0xFF200h)是youAMITOOL工具挑选处理的,本人没能力修改。
4、本机主板
5、本机BIOS
弱弱的问一下,这个修改完之后能实现什么功能呢??{:1_907:} BayMax2911 发表于 2026-9-15 02:50
弱弱的问一下,这个修改完之后能实现什么功能呢??
让WinServer2012R2正版验证日志不报错
页:
[1]