此文为抛转引玉:
提取早期Acer的某个BIOS文件,
使用mmtool的方式,见图1
使用uefitool的方式,见图2
提取完成后,观察还原卡模块是PE32格式的,并不是传统ROM格式55AA开头的。
使用IDA分析一下,找到字符串:
00000000000122C0 aFounder db 'FOUNDER',0 ; DATA XREF: sub_2650+82↑o
.rdata:00000000000122C8 aTongfang db 'TONGFANG',0 ; DATA XREF: sub_2650+A8↑o
.rdata:00000000000122D1 align 8
.rdata:00000000000122D8 aGreatwall db 'GREATWALL',0 ; DATA XREF: sub_2650+CE↑o
发现是:
.text:00000000000026CD mov r8w, 0B4h
.text:00000000000026D2 lea rdx, aFounder ; "FOUNDER"
.text:00000000000026D9 lea rcx, [rsp+108h+var_D8]
.text:00000000000026DE call sub_2500 , 这里是比较BIOS字串是不是 "FOUNDER"
.text:00000000000026E3 movzx eax, al
.text:00000000000026E6 test eax, eax
.text:00000000000026E8 jz short loc_26F3 , 不是 ,jmp 跳走
.text:00000000000026EA mov eax, 45220001h , 如果BIOS字串是 "FOUNDER" ,给eax 赋值 ,结束
.text:00000000000026EF jmp short loc_2744
把t.text:00000000000026E8 jz short loc_26F3 ,改成 nop ,就可以了.
修改保存为 FZ1.efi,做个efi启动U盘,把fz1.efi改名为:bootX64.efi ,把U盘 efiboot 下的bootX64.efi 文件改名 bootx64bak.efi,拷贝fz1.efi改名的:bootX64.efi,到U盘 efiboot 目录下,启动电脑按 F8(有的机器是F11)选 UEFI U盘启动,看到左上角出现界面了,而且没有:"Evaluate Version".
说明修改正确,想办法刷到自己的BIOS中,就移植成功了。
移植不是LegacyBIOS的文件(55AA),UEFIBIOS中是添加在 DXE模块.
特别提示,修改BIOS有风险,风险自负!
|