BIOS备忘录之通过Windbg来追踪ASL code的运行
通过Windbg来追踪ASL code的运行:
目标机的配置:
第一步:
在BIOS Setup下面 disable secure boot(不然下面debug on 命令会失败);关闭防火墙。
第二步:替换acpi.sys
1. 获取与目标机OS 同版本的check build ACPI.sys文件,替换系统中的C:\Windows\System32\drivers\acpi.sys
2.acpi.sys属于系统文件,直接替换会出错,可以把下面的内容保存为:TrustedIntsaller.reg 并放到C盘根目录运行,找到ACPI.sys,右键点击TrustedInstaller,然后才可以删除,重命名,替换ACPI.sys.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\runas] @="TrustedInstaller" "NoWorkingDirectory"="" [HKEY_CLASSES_ROOT\*\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" [HKEY_CLASSES_ROOT\Directory\shell\runas] @="TrustedInstaller" "NoWorkingDirectory"="" [HKEY_CLASSES_ROOT\Directory\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
第三步:运行下面的命令:
bcdedit /debug on bcdedit /set testsigning on reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter" reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter" /v AMLI /t REG_DWORD /d 0xFFFFFFFF /f>nul pause
第四步:选择debug方式:USB3.0 或 网口
网口方式:
bcdedit /debug on bcdedit /dbgsettings net hostip: key:1.2.3.4 pause
USB3.0方式:
bcdedit /debug on bcdedit /dbgsettings usb targetname:XX pause
注:网口可以一对多debug,通过port的不一样;USB只能一对一连接;
注:也可以通过这样的的方式来配置debug方式:Windows+R -> MSConfig - boot - advanced options(但是要先把debug on打开)
第五步:重启电脑:,如果进不去OS,可通过下面两种方法解决:
1.可能系统时间不在acpi.sys的有效签名时间之内 -- 进入BIOS setup把系统时间修改为acpi.sys的有效签名时间之内;
2.进入OS的Advance option选项,选择disable driver 数字签名,再进OS。
主机的配置:
运行WinDbg Tool:
安装好SDK之后,tool位于:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe
1. 选择 file - symbol file path,输入 SRV*D:\Symbols* http://msdl.microsoft.com/download/symbols。D:\Symbols是本地存放symbol的路径
2. 选择 file - kernel debug --- 选择 net 或者 USB3.0的debug方式。
如果成功,这时就能连上目标机器。重启目标机,可以看到有信息丢出来。
如果要debug ASL code
暂停目标机,依次输入:
.reload /f /v acpi.sys !amli debugger !amli set verboseon !amli set traceon !amli set nesttraceon !amli set spewon
输完之后,敲g -> enter 进入amli debuge 模式了,进入amli debuge windebug会有这样的“AMLI(? for help)->”提示。
最后,通过 Edit->write windows text to file 可以去保存记录。
最新的OS不需要再去替换acpi.sys以及运行debug on的操作了


BIOS备忘录之通过Windbg来追踪ASL code的运行的更多相关文章
- BIOS备忘录之ASL code常用知识点
_HID:device唯一 _STA:决定device在不在(在DM下面能不能看到) _CRS:描述分配给device的资源 _INI:在OSPM加载描述表的时候运行一次(比如,如果要根据不同情况给d ...
- BIOS备忘录之EC常用知识点
BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需 ...
- BIOS备忘录之IIC(touchpad)设备
简述BIOS中对IIC device的支持,以touchpad为例. 信息收集 收集平台的硬件信息: 1. IIC controller number(PCH一般包含多个controller,我们使用 ...
- BIOS备忘录之SPI(fingerprint)设备
Reset和INT信号使用的是GPIO功能,需要显式的使用(INT信号使用了GPIO的int number,RST信号使用了GPIO的absolute number): 问题举例 漏电导致功能异常:在 ...
- BIOS备忘录之x86硬件编程(寄存器与IO)
SOC固件(BIOS)开发: 1.熟悉硬件原理图:要弄清楚pin脚的功能: 2.配置GPIO引脚,配置成Native功能还是GPIO功能(如果是配置成GPIO,需要在code里面显式的使用): 3.硬 ...
- 追踪MySQL中长时间运行的事务
接上一篇,未提交的事务导致锁等待,锁住一段时间后又提交了(也可能是回滚),锁释放业务继续运行.那么我们如何知道产生锁的事务是在跑什么SQL? 今天讲的这个工具,就可以通过监听3306端口的数据,把每个 ...
- SMI#、SCI#信号在OS、BIOS、EC中的中断方式(Linux)
EC资料有个很好的CSDN博客推荐去看看:zhao_longwei的专栏 EC固件代码架构:https://blog.csdn.net/zhao_longwei/article/details/510 ...
- Dynamic CRM 2013学习笔记(七)追踪、监控及性能优化
本文将介绍CRM的三个内容追踪.监控及性能优化.追踪是CRM里一个很有用的功能,它能为我们的CRM调试或解决错误.警告提供有价值的信息:我们可以用window的性能监控工具来了解CRM的性能状况:最后 ...
- Windbg程序调试--转载
WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. WinDbg是微软很重要的诊断调试工具: 可以查 ...
随机推荐
- one order 处理流程
- Linux ssh将命令放入后台
如何在关闭ssh连接的情况下,让程序继续运行? 对Unix,Linux类服务器维护经常是通过ssh完成的,而有些操作比较费时,如更新程序等.此时如果断开ssh连接的话,更新程序就会随之被中断.如何保证 ...
- api-gateway-engine知识点(2)
GroupVersion实现engine本地缓存 package com.inspur.cloud.apigw.engine.cache; import java.util.Map;import ja ...
- eclipse配置新约束
一.DTD格式的约束: 二.xsd格式的
- Py中re.sub学习【转载】
转自:https://www.crifan.com/python_re_sub_detailed_introduction/ //这个网址讲的不错. 1.re.sub的功能 re是regular ex ...
- Ajax 传包含集合的JSON
通过ajax给后台传json对象,当json中含对象集合时,如 $.ajax({ url : , type : "POST", dataType : "json" ...
- 软RAID管理命令mdadm详解
软RAID管理命令mdadm详解 mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令.但由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的 ...
- node 图片验证码生成
var captchapng = require('captchapng'); var http = require("http") var server = http.creat ...
- ida6.8 android so调试
献给还不会的同学. 我的设备 1.魅族手机,自带root功能 2.ida6.8 1.上传ida 目录下dbgsrv/android_server 到 手机上,这个目录自己可以修改,网上都用的adb p ...
- cocos2dx 3.x版本搭建Mac环境工程(创建一个新的C++工程)百分百可行
首先第一篇,想学cocos2dx第一步就是搭建环境,第一步搭建不了环境,创建不了工程那一切都是扯淡. 说到mac下安装cocos2d-x想到的模式就是xcode+cocos2d-x.因为我本身就是一个 ...