SLIC表头很多都在BIOSCODXX.ROM文件里,对于直接替换SLIC表而出现数字签名不完整的BIOS,可以通过增加额外ACPIXX.ROM来达到增加SLIC的目的,但是这样刷完会出现两个SLIC表,看着着实变扭。通过对BIOSCODXX.ROM的汇编代码分析,我们可以很容易的将原SLIC屏蔽掉。

BIOSCODXX.ROM前27字节为非代码区,作为模块识别码。
3edd751ex7cdaa6a70c4a&690.jpg
为了方便分析,先将其截去
3edd751ex7cdaab8148f5&690.jpg
查找SLIC表头地址
3edd751ex7cdab01870cb&690.jpg
SLIC表头地址:0x0F187;接下来用hiew32打开文件,查找HEX:87F1
3edd751ex7cdac70050b1&690.jpg
这个就是SLIC表头的生成代码,0xF160为调用入口地址,接下来只能往上或往下去寻找 CALL 000F160的汇编语句
3edd751ex72e2b050cff2&690.jpg
不难发现,在调用SLIC表的生成前有两个判断是否要生成SLIC表,既然要废弃掉SLIC,就让其跳过SLIC生成的条件,修改地址0xF07B,其汇编代码为:JMPS 0FA3,这样就跳过了SLIC的生成了。最后记得把去掉的27字节重新补上,否则后果很严重。

标签: none

添加新评论