近些天为了激活笔记本上的WoL功能,对UEFI BIOS有了一些了解。新一代的UEFI规范实现了很多先进的功能,比如图形界面,文件系统支持,扩展性,secure boot,secure flash(capsule)等,而这些原本是为了使用户体验更好,使用更方便、安全的的功能,被厂商念错了经。M$利用secure boot功能限制电脑安装其他的操作系统,甚至安装了Ubuntu一类的系统,连进一步安装各种驱动都要受到限制(这个以后有空再写,大体上可以通过PK自签名绕过)。LEN0V0利用UEFI的高级功能,在用户重装系统后自动重新安装联想组件,本来无可厚非,无奈国内版本重装的**@*%#¥……,而且前段时间被爆出了安全漏洞。穑cure flash使得刷新固件变得异常困难,完美的刷写只有破解Signed Capsule的结构或者使用SPI烧录。更不用提白名单限制用户安装新网卡、前段时间闹得沸沸扬扬的ME漏洞、EC漏洞等等。总之UEFI真正的强大功能能否被实现,还得看各个厂商的看(wei)法(suo)和态(cheng)度(du)了。。。真正的安全不是厂商觉得安全,而是让用户觉得安全,对自己使用的东西有完全的掌控。

平台:lenovo g50-80笔记本,UEFI BIOS,Insyde BIOS

结论:

1. 使用insydeflash工具,一般情况下执行的是secure flash,即直接将升级文件写入内存区域(或ESP分区),形成capsule,然后发SMI指令,设置更新的变量,然后S3 reboot,重启之后系统直接进入升级模式,由现有的BIOS执行capsule校验,(可能包括Insyde QA检验和Manufacturer Trust检验,类似RSA签名),校验通过则由现有BIOS里面的flash程序刷新,顺带可能会刷新EC(内部微处理器固件,比如主板驱动,功能键驱动等)、ME(CPU微码)、FV(不知道什么东西)。这期间可能会刷新系统变量,比如原有的BIOS设置,secure boot的key,slic,根证书等等。这就导致了BIOS修改之后无法刷入,BIOS校验程序在FLASH里面,破解校验程序本身就需要刷入新的BIOS,而不破解校验则根本无法刷入新BIOS,这样的安全性挺高。详情参见UEFI capsule规范,以及Intel的开发指南,以及Tinocore的源代码。(https://www.techinferno.com/index.php?/forums/topic/1870-flash-modified-biosuefi-which-are-digitally-signed-circumvent-secure-flash/ )

2. BIOS-MOD网站上给出了recover的方式,通过在开机时按几个键,让电脑进入BIOS修复模式,从USB读取固件,自己恢复。这里的关键是如何进入恢复模式、如何得到正确的恢复文件。经过摸索,G50机型的恢复键是:关机,插上电池,插上装有恢复文件的U盘,拔下AC -> 按住Fn+R不要松手,插AC -> 按电源键开机,电源灯闪烁红色,松开所有按键。但是正确的恢复文件格式、文件名没有找到。估计应该是使用官方给出的升级文件bioss.fd,也许应该重命名成Broadwell.fd(从PcdPeim模块里找到,见 https://www.bios-mods.com/bios-recovery/insyde-bios-recovery/#comment-1457  ),拔下所有U盘之外的USB设备。。。。。。不过一直没有成功,原因未知。而且据说可以恢复,恢复过程也需要校验,这种方式可能也无法绕过校验

3.直接刷写flash,这种方式包括在DOS下用fpt tool(INTEL官方的刷写程序,开发UEFI时的工具,可以直接刷写),在EFI SHELL下用一些工具刷写,DOS下用其他工具刷写等,这些方式都是通过某些特殊的指令直接读写flash芯片,有很大的危险性,一方面这些读写指令有些可能被锁定,很容易刷写失败。另一方面由于不了解flash里面的结构(厂家不可能公开),很容易刷成砖(比如写错区域,或者把启动区代码刷掉了等等)。。。这些都会造成不可修复的soft-brick。。。。。不保修的。一般也无法个人修复,除非你有SPI工具。

4.SPI方式,利用烧录器直接刷芯片,危险性同上,但是由于以SPI方式,flash里面的内容可以进行完全读写,可以先读出来做一个完全备份。出现问题总能修复。好处在于利用夹具可以直接夹在芯片引脚上,无需拆焊,很方便。这也是一般的主板维修方法。(https://www.bios-mods.com/forum/Thread-TUTORIAL-how-to-unlock-hidden-tabs-in-lenovo-g50-80-Mod-lenovo-g50-80-bios  )

但是!FLASH芯片很容易刷坏的,一旦坏了就比较麻烦了。另外稳定的SPI工具也不便宜。而且,对于EC和CPU ME,似乎没有办法直接刷写。Nvram(保存系统变量的位置)暂时不清楚在哪。

5.直接读写变量,实现部分修改的目的。这也是在BIOS-MOD论坛上推荐的办法。大体是在DOS下或者EFI SHELL下直接读写NVRAM,达到越过BIOS界面直接修改系统功能的目的。问题同3,某些读写指令可能被锁住了。至于如何确定某个变量的储存位置,需要解析UEFI BIOS文件,有些工具可以实现,包括MDL和BIOS-MOD论坛里的各种工具、脚本,比如Universal IFR Extractor等,大致是通过解析UEFI BIOS文件找到变量储存位置(UEFI文件很容易解析,有固定的格式 ,工具能解析大部分格式,但有的厂商的UEFI BIOS解析不出来)。(https://www.bios-mods.com/forum/Thread-READ-FIRST-Access-Advanced-settings-through-EFI-shell   )。其中的BOOTX64.EFI其是通用的UEFI SHELL,也可以通过Tinocore的对应源代码自己编译。

以上就是几种刷写Insyde BIOS的方法。处理Insyde BIOS的具体细节可以google或者在BIOS-MOD以及MDL论坛等去找。下一篇继续。

转载于:https://www.cnblogs.com/B1ue/p/8461500.html

Insyde BIOS@G50-80 初探相关推荐

  1. 【黑苹果】【高分屏】软件修改BIOS中DVMT等设置 Insyde BIOS 联想YOGA系列

    特别提醒:对BIOS进行修改属于高风险操作,可能会造成变砖.甚至不开机,请三思而后行!!! 作者:chinasyc [转载请注明出处]首发:pcbeta论坛 一.前言 手上有台联想YOGA 4 PRO ...

  2. 华为电脑怎么把虚拟化打开_电脑怎么在bios开启虚拟化?

    展开全部 一.进入BIOS 参考以下抄按键,开机时2113按住对应的5261键进入BIOS: 组装机以主4102板分,华硕按F8.Intel按F12,其他品牌1653按ESC.F11或F12: 笔记本 ...

  3. 联想潮5000 BIOS 解锁 CFG Lock

    联想潮5000 BIOS 解锁 CFG Lock 潮5000的 bios 中并没有 CFG Lock 开关选项,所以我们需要一些特殊的手段进行解锁.CFG Lock 解锁的作用百度有很多可以自行百度, ...

  4. BIOS工程师需要掌握的知识

    ACPI规范: ACPI Specification 概述(基于ACPI_Spec_6_4_Jan22)_anqi8955的专栏-CSDN博客 ​​​​​​ACPI Specification 第一章 ...

  5. 华擎主板设置来电开机_主板四大品牌BIOS设置开机第一启动项图文教程

    说明:本文进入设置全部按Enter,设置完切换或退出按ESC 特别说明:一般机器都有进入开机选择的快捷键,不一定要进入Bios,大家可以尝试找一下.一般来说,台式机按下电源的时候就不停的按F8就可以了 ...

  6. 不能启动u盘 uefi_不知道怎么进入主板设置U盘启动,试试这些方式

    一个正常运行的电脑,你可能安装的是Windows 或 Linux,但无论你是选择哪个系统,现代个人电脑都是绕不开的BIOS/UEFI的. 通过U盘安装系统,你需要BIOS/UEFI来修改启动项. 启动 ...

  7. Linux环境部署:开启电脑虚拟化

    学习目标 开启电脑虚拟化 查看笔记本是否支持虚拟化 进入BIOS 开启VT 开启电脑虚拟化 查看笔记本是否支持虚拟化 进入BIOS 参考以下按键,开机时按住对应的键进入BIOS: 组装机以主板分 华硕 ...

  8. win10下VMware15安装centos7详细步骤及遇到的问题

    VMware15安装包百度云盘链接:https://pan.baidu.com/s/19Uqsw6KswkIrYmt_GtWDrQ 提取码:2u20 安装过程不给出了,就是安装一个软见而已 cento ...

  9. 如何修改品牌电脑logo,让你电脑开机更个性

    修改品牌电脑logo,让你电脑开机画面更个性.此电脑用的是新bios:Insybios bios,已在使用广达SW8主板的海尔T628\方正T400IG.神舟hp6系列笔记本上亲自修改logo,并测试 ...

  10. ami主板uefi_BIOS和UEFI 你真的认识?

    昨天有小伙伴问小编,电脑的BIOS和UEFI究竟什么区别?因为都是电脑启动时候一闪而过,看起来似乎就是速度快慢的差别.还有就是以前小编曾经提到过启动方式的不同,比如UEFI+GPT的启动模式,但是BI ...

最新文章

  1. 对于容器环境来说 全栈监控究竟意味着什么?
  2. ASP.NET基础教程-SqlConnection对象-使用连接事件
  3. DDNS 的工作原理及其在 Linux 上的实现--转
  4. python3.8.5是python3吗_科学网-Ubuntu16.04安装Python3.8.5问题及解决方法-陈超的博文
  5. form插件的核心方法--ajaxForm(),ajaxSubmit()
  6. tcp实时传输kafka数据_tcp怎么传输大数据
  7. 对于linux socket与epoll配合相关的一些心得记录(转)
  8. JS面向对象系列之一[prototype,原型]
  9. UNIX和类Unix操作系统
  10. 【Vue】实现出生日期计算年龄
  11. 地理必修一三大类岩石_中图版高中地理(必修一)知识归纳——第二章
  12. nan null underfined的区别
  13. .net 2.0 下的FTP搜索引擎实现
  14. Selenium小技巧 修改ip+ua 改变窗口大小 手机模式 加载本地缓存
  15. 关于软磁材料开路样品的矫顽力的测量
  16. python爬虫20 | 小帅b教你如何使用python识别图片验证码
  17. 在线版音乐播放器APP
  18. nmn提高免疫力,nmn功效与作用筑起健康屏障
  19. ENVI对GF-5高光谱数据进行FLAASH大气校正
  20. 如何在前端用js实现画三维饼图和三维柱形图

热门文章

  1. 分类学 · 狡兔为何偏要有三窟???
  2. 注塑车间维修师傅如何快速解决9种注塑机故障?
  3. 浅谈CPRI原理及测试解决方案(转)
  4. 火星坐标 C语言,iOS7上地球坐标系到火星坐标系转换算法
  5. 深入理解JVM---JVM垃圾回收机制
  6. 申请ARM DS-5单月试用版并安装
  7. 中文ASCII码对照表
  8. tpac100控制器设置教程_tpac100控制器设置教程_TP-link AC控制器统一管理AP设置指导...
  9. KVM环境下vCPU绑定到物理CPU
  10. 打印机可以打印不能扫描怎么弄_惠普打印机可以打印但无法扫描的解决办法