Insyde BIOS@G50-80 继续研究

摘要:
进一步的研究表明,计算机的固件非常有趣。参考一些重要材料,如http://donovan6000.blogspot.com/2013/06/insyde-bios-modding-advanced-and-power-tabs.html我还了解了IDA的使用。最后,总结了可行的解决方案:0。基本知识储备,包括UEFIBIOS的概念、InsydeBIOS的结构和基本的反向IDA

继续研究发现,计算机的固件真的很有趣。参考了一些重要的资料,比如 http://donovan6000.blogspot.com/2013/06/insyde-bios-modding-advanced-and-power-tabs.html 等,对于IDA的使用也了解了一些。最后,总结一下目前看来可行性的方案:

0. 基础知识储备,包括UEFI BIOS的概念,Insyde BIOS的结构,IDA逆向的基本知识,BIOS-MOD、MDL上关于BIOS修改的基本知识等

明确:本文针对UEFI BIOS尤其是联想平台的某些版本的Insyde BIOS。

BIOS(主要)储存在FLASH芯片中,(相关芯片不止一颗)。通过SMM模式下的SMI指令可以进行读写,通过SPI烧写工具也可以直接进行物理读写。

BIOS变量储存在Nvram里面。

计算机的固件不仅包含BIOS,还有ME、EC等等部分。这些部分在正常的BIOS升级时会一并更新。但是在手动更新时往往关注其中主要的BIOS部分,(某些情况会关心ME,比如超频、解锁、以及最近的漏洞),这些部分的刷新方式、工作方式、储存位置、读写指令、恢复方式、读写性各不相同。

不同厂商的UEFI BIOS实现各具特点,而且指令有很大的不同,这些都是没有公开的资料的!

BIOS版本、主板版本、刷写程序版本需要对应才能成功刷入。一般来说刷写程序可以向下兼容。Insydeflash(Insyde的刷写程序)不能向下兼容,必须和BIOS版本对应。

对我自己的这个平台和BIOS版本来说,(ACLU3/4 ,Insyde BIOS),厂商的更新文件后缀名fd,包含了BIOS、ME等内容。dump出来的时bin格式,只包含BIOS(?)。在WIN平台下,读写性(正常引导后,UEFI出于安全考虑会锁柱某些区域(Region),使得无法通过指令读出、修改、写入)。我自己的平台上,读写性如下:

BIOS access table:

Read Write

Desc Yes No

BIOS Yes Yes

ME No No

GbE Yes Yes

PDR No No  

read意味着可以在WIN平台下dump出来(备份),write意味着可以在WIN平台下normal flash进去。

WIN平台下刷写方式主要为secure flash(安全刷写)和normal flash(手动刷新、强制刷新)

secure flash即(?)capsule方式刷新,所有的内容都可以刷进去,但capsule本身有签名,很难修改。

normal flash即传统的BIOS刷新,直接读写允许write的区域,逐字节写入flash,似乎可以绕过检验(未验证)

1. 从官网下载BIOS升级文件,通过安装、7-zip等方式想办法分离出刷写程序:Insydeflash.exe,platform.ini,iscflash.dll等文件。以及官方升级文件bioss.fd备用

2.修改Platform.ini文件,利用Insydeflash程序备份出现有的BIOS文件dump.bin

3. 使用Andy's Phoenix Tool或UEFITool工具解压并分析dump文件,找到需要修改的部分,使用IDA等工具修改好,重新打包/替换回fd文件

4.修改Platform.ini和Insydeflash.exe文件,强制使用normal flash模式,只刷写BIOS区域,刷入修改后的dumo文件

5. 重启验证

(待续)

6. 研究capsule签名的原理,想办法替换签名根。解析出fd文件结构,找到签名、打包的方法。完美解决secure flash问题

相关文件后续有空发到GitHub上去,待续

EOF

后续:验证太强,即使破解了flash程序,capsule还有一层验证,这个无解,除非找到bypass。

另,编程器真香

免责声明:文章转载自《Insyde BIOS@G50-80 继续研究》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jquery UI Tabs 获取选中Tab的IDFineReport基本用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

创龙DSP6748开发板SYS/BIOS的LED闪烁-第2篇

1. 作为1个456MHz的处理器,不跑个操作系统说不过去,直接打开工程DemoSYSBIOSApplicationGPIO_LED,主函数比较简单 // 创建任务 Task_create(taskMain, NULL, NULL); // 启动 SYS/BIOS 系统 BIOS_start(); 2. 把重点放在ta...

[修复] 启动期间超频失败的错误信息

  一些 PC 用户报告说,他们在尝试启动 PC 时会看到“超频失败”错误。根据主板制造商的不同,错误信息略有不同。在大多数情况下,受影响的用户表示,尽管出现了此消息,但他们从未超频过默认频率。 引导期间超频失败错误消息 在大多数情况下,“超频失败”错误的发生是由于一个小故障,最终欺骗了一系列启动过程,即您的系统实际上是在以默认频率运行时超频的。在这种情况...

索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程

这两天接常接到客户要求把SONY笔记本的WIN8系统降成WIN7系统的单子,也接到很多毕业学员遇到最新的SONY笔记本不知道怎么进BIOS,进到BIOS不知道怎么设置从U盘启动,从U盘启动了安装了WIN7提示 操作系统错误根本无法启动的问题,今天在这里我以SONY) SVE1512S7C笔记本为例讲解怎么安装WIN7系统。 一。最新SONY S系列笔记本进...

Magic Book Pro 2019 Intel版 BIOS升级失败-重启后没有升级过程,解决方案

Magic Book Pro-2019-Intel版BIOS升级至1.16 使用官方程序更新BIOS,显示更新成功之后重启,发现并没有以往的BIOS升级过程,BIOS也并未升级。 后来发现,(无论是通过华为电脑管家;还是通过荣耀官网上的BIOS更新程序均无法升级)。研究后发现,官方升级程序无法升级的原因是,用户自己重装系统致使EFI引导分区内OEM专用的引...

UEFI GPT 安装windows 7 (64bit)

相对与传统的BIOS来说,UEFI有诸多好处,因此配电脑后决定以UEFI来装win 7. 我的硬件配置如下: CPU:AMD A10-5800K (APU,HD 7660D) 主板:技嘉(GIGABYTE) F2A85X-D3H主板(大板) 内存:芝奇(G.SKILL)DDR3 1600 8G(4G×2双通道) 在正式准备安装动作之前,我们预习一些必...

在Dell XPS 13安装WIN10和ubuntu双系统

新入了Dell的XPS 13超级本,之所以买这个本子,就是看中它轻便且续航持久。这款本子也是为数不多的能够和苹果的13'' mac book air一较高下的本子。在重量上,占地面积和综合性价比上,还略胜一筹。 我买的本出场安装win10。还附赠1年office 2016 licence。只是鉴于本人的工作性质,以及DIY的偏好,自然微软的系统是不够折腾...