EFI
文章平均质量分 94
Eugene800
这个作者很懒,什么都没留下…
展开
-
[原创]ACPI.sys,从Windows到Bios的桥梁(2):Windows应用程序响应主板上GPIO(SCI)设备中断 软件篇
前篇<ACPI.sys,从Windows到Bios的桥梁(2):Windows应用程序响应主板上GPIO(SCI)设备中断 硬件篇>只完成了硬件部分,本文完成后半部分:在软件层接收和处理来自GPIO的SCI event。前文提到Bios将GPIO事件交由ACPI命名空间\_GPE处理,以软件工程的思维方式响应事件无非2种方式:a.事件接收方如能处理事件,则独自完成事件;b.事件接收方如不能处理事件,则交给下一环其他角色,以期他们完成事件;换到驱动的场景中:如果设备对象能处理IRP原创 2021-03-04 00:45:50 · 2883 阅读 · 6 评论 -
ACPI.sys,从Windows到Bios的桥梁(2):Windows应用程序响应GPIO(SCI)设备中断 Bios篇
序 2010年毕业那会,我首次接触到51单片机,当时发现51单片机如此简单却功能完备:尽管它没有搭载OS,却能接收GPIO Port上的设备事件并反过来控制Port上的设备。反观基于x86体系的PC,虽然功能强大,但终端用户却因为下列限制,很难控制主板上的设备(小到自己往主板上的装一个按键):a.主板厂商本着能省则省的原则,未必会在主板上保留空闲的GPIO Port;退一步,即使厂商出于某种原因,保留了空闲的GPIO Port,终端用户没有主板回路图,也无法找到这些GPIO Port;b...原创 2021-02-13 23:07:03 · 4445 阅读 · 1 评论 -
ACPI.sys,从Windows到Bios的桥梁(1.5):PCIe device 配置空间
在继续<ACPI.sys,从Windows到Bios的桥梁>系列之前,先暂停补充一下PCIe device MMIO相关的知识。PCIe MMIO比较复杂,推荐以这两篇文章入门:<System Address Map Initialization in x86/x64 Architecture Part 1: PCI-Based Systems> &<System Address Map Initialization in x86/x64 Architec...原创 2021-02-10 00:38:38 · 2338 阅读 · 1 评论 -
ACPI.sys,从Windows到Bios的桥梁(1):跟踪win7开启ACPI
由于windows设备驱动程序被设计成以设备堆栈(Device stack)的形式,下层驱动向上提供支持,所以我们习惯于不加思考的在设备栈的上层使用来自下层驱动的各种已有功能。当我还在做驱动程序时,经常见到这些句话:A1."功能驱动(Fdo)收到IRP_MJ_PNP&IRP_MN_START后,会向总线驱动(Pdo)查询并正确配置所需的硬件资源,如IO Port/IRQ/Mem等,然后才开始工作"。这段话我一直感到困惑:功能驱动的硬件资源来自总线驱动,那么总线驱动的资源由谁提供?可能有人...原创 2020-12-13 13:09:23 · 3625 阅读 · 0 评论 -
ACPI WMI 杂记
关于WMI ACPI,建议先通读:1.<[原创]BIOS知识点滴Follow Bini系列之---WMI ACPI>了解WMI ACPI能提供什么后,再参考MSDN 2.<Windows Instrumentation: WMI and ACPI>,另外,3.<文件系统驱动编程基础篇之4——Wmi管理规范 mof文件>也可以作为1.的补充。需要特别说明的,1.中留了demo程序,一般读者没有环境测试(也不建议用真实机器测试,万一不开机损失挺大的),这时倒可以参考我...原创 2020-08-08 14:48:36 · 4132 阅读 · 0 评论 -
解密OEM Bios导出给Windows的接口----导出OEM内部使用的WMI接口
Bios由于需要保证运行时的透明性,它只向提供该BIOS的OEM厂商开放部分接口。用户只能通过OEM提供的App/Driver读取和设置OEM Bios。另外,OEM也保留WMI接口用于设置BIOS,同样,WMI接口也对用户透明。虽然OEM企图瞒天过海,但并不意味着我们无法获取WMI接口。本文基于ThinkPad T460P提出一种获得WMI接口的方式。另外,据了解,WMI接口可能存在安全风险,所以,这可能给渗透测试者提供了新的利用BIOS方式。 Bios\Windows通过WMI相互通信...原创 2020-08-01 21:14:14 · 1603 阅读 · 0 评论 -
Step to UEFI (137) 通过 BGRT 取得当前系统的 LOGO
对于BIOS来说,用户能够看到的是非常重要的事情。开机Logo就是这样。自从 Win8.1开始,Windows在进入桌面的时候可以显示用户自定义的Logo,而不是Microsoft自定义的图片,这是很有意思的事情。最近看了一篇介绍的文章,恍然大悟,原来是BIOS解压自己的Logo在内存中,然后通过ACPI Table将这个Logo传递给Windows,于是开机Logo比以前显示的时间更长更持久。具体的Table就是 Boot Graphics Resource Table。在 ACPI 6.1的5.2.转载 2020-06-17 17:25:53 · 2194 阅读 · 2 评论 -
UEFI ESRT表
Windows DevMgr中可以以更新驱动的方式更新ME/Bios/TPM模块。为了实现这个功能,离不开UEFI的ESRT表。ESRT的定义在MSDN上有详细描述,读者对ESRT表有基本概念后可以再看下ESRT表的实现。根据MSDN的定义,ESRT分两部分:EFI_SYSTEM_RESOURCE_TABLE:ESRT的描述符部分,用于描述EFI_SYSTEM_RESOURCE_ENT...原创 2020-03-11 14:57:36 · 2776 阅读 · 0 评论