各种笔记本的Bios基本上都被厂商设置了各种限制,剩下可以修改的选项寥寥无几,而如果想要进行一些高级配置却没有什么办法。于是就只能自己想办法解决了,例如宏基的笔记本就只剩下了这么几个选项。
说实话,这几个选项基本没什么太大的用处,而我要改bios也不是对什么修改启动画面有兴趣,那个东东其实没虾米意思。
从网上随便搜索了一下,看到了几篇文章中有提到修改bios主程序的相关内容。但是基本都没有脱离insyde EzH2O这个东西,很不幸的是这个东西在我的笔记本上没法加载bios文件,搜索了下据说是无法加载2m以上的文件,这个就没办法了。我现在修改的那个文件有4m。只好另寻他法。
从http://rajko.info/acer/tools/ 下载python工具包,执行python main.py PEW71130.fd
解压完成之后可以在data目录下找到SetupUtility-mine.pe文件,直接载入ida64进行分析,定位到如下的地址(这个文件对应的是acer 5742g 1.30 版的bios,其他版本地址可能不太一致)
代码如下:
text:000000018000122C mov rax, cs:qword_180084B38
.text:0000000180001233 movzx eax, byte ptr [rax+49h]
.text:0000000180001237 cmp eax, 0Ah
.text:000000018000123A jge loc_1800012F0
.text:0000000180001240 mov rax, [rsp+68h]
.text:0000000180001245 movzx eax, word ptr [rax+12h]
.text:0000000180001249 cmp eax, 67h
.text:000000018000124C jz loc_1800012F0
.text:0000000180001252 mov rax, [rsp+68h]
.text:0000000180001257 movzx eax, word ptr [rax+12h]
.text:000000018000125B cmp eax, 283h
.text:0000000180001260 jz loc_1800012F0
.text:0000000180001266 mov rax, [rsp+68h]
修改方法也比较简单,直接把三个连续的jz loc_1800012F0跳转nop掉即可,这里没有办法用ida修改,可以用winhex或者其他的工具找到对应的地址进行修改。
如果无法定位到上面的地址可以通过alt+I进行搜索立即数,搜索67h即可,找到相似的地方就可以了。
现在主要目标已经达成了,但是需要将修改之后的程序重新封装到fd文件中,用c32asm或者winhex打开PEW71130.fd,搜索lzma文件头5D 00 80 00,找到压缩数据的文件头。
简单一点,直接往下拉,找到一篇FF区域就是压缩数据的文件末尾(281068-38a1ff):
将这个数据段的数据保存为bios.lzma,然后用lzma.exe或者7zip进行解压得到原始的数据(保存为bios)。用c32asm载入bios查看会发现这个数据段并不是一个单独的exe,文件头如下:
在离文件头不远的地方就会发现一个可执行文件的文件头,但是这个pe程序并不是前面修改的那个程序,所以如果替换掉这个程序会就导致刷入之后完蛋鸟。用最原始的办法,直接用修改之后的pe文件头和文件尾进行搜索,定位到整个pe文件的区段。
可以发现我们修改的程序是从10e488开始到1936f7结束,用修改之后的SetupUtility-mine.pe文件数据覆盖到这个区段,保存修改之后的文件为bios2。使用lzma.exe进行压缩:
现在进行最后一步,将bios2.lzma 的数据覆盖到PEW71130.fd 文件的281068-38a1ff区域中,需要说明的是这个东西在修改之后压缩大小为989k,少了1k的数据。
也就是说覆盖之后会剩余1k的空间,此时只需要将原来的数据用FF填充掉即可。
将修改之后的文件保存,然后就可以用InsydeFlash.exe刷新bios了:
这个东西支持平刷,但是不支持降级,如果需要降级可以尝试patch这个程序就行了,但是这个东东和本文关系不大,有兴趣的可以自己去搞搞,因为在http://rajko.info/acer/tools/提供了几个低版本的修改之后的bios:
刷机之后重启就看到效果了:
主页面
高级选项,其实选项还是少的可怜
ASF设置
Power选项
中断选项
刷机包:http://pan.baidu.com/share/link?shareid=164677&uk=3188888025
相关文件以及工具:http://pan.baidu.com/share/link?shareid=164678&uk=3188888025
相关链接:
http://rajko.info/acer/tools/
http://forums.mydigitallife.info/threads/23762-ACER-5742G-BIOS-modding-(unhidden-pages-enabled-UEFI-BOOT)
[课程]Linux pwn 探索篇!