windows调试器尝鲜

曾几何时,我也下载过看雪论坛精华看的津津有味。可惜一直没有动手去调试,学到的x86汇编指令也忘得差不多了。最近将老机器的T4200 CPU换成了更省电,温度更低的P8800,为了支援新的VT虚拟化,特地将Dell 1545的BIOS从A8升级到A14。顺带发现SLIC已经自动升级到2.0了。但是升级以后,win7开始菜单的睡眠功能就无法使用了,于是萌生了降级刷BIOS的想法。

下好了1545A13的BIOS,运行后发现出现了一个warning信息,大意就是不能降级安装,点个确定就退出了。理想情况下warning应该是可以忽略的啊,网上搜索了一下,有个/forceit的命令行开关,实际执行发现没效果,决定上调试器。之前试用过windbg,有个功能很不错,可以在访问指定范围的内存时停下来,可惜没找到如何进入用户态。换了ollydbg,德国人出品的共享软件,非商用不要钱,写邮件注册下就好。

围观了一下ollydbg的教程,基本上简单的破解就三板斧,首先搜索所有引用字符串,然后定位到代码里引用这个字符串的位置,在附近下个断点,最后实际运行下,观察代码路径,看看是哪个代码分支跳转到字符串的,然后改跳转就好。于是按部就班的修改一下1545A13的驱动:

查找所有字符串,然后在弹出的窗口中搜索:

然后在反汇编器里面跟踪:

于是很清晰的定位到显示msgbox的位置:

可以看到,显示警告信息的前面几条指令里,有个条件跳转 JLE 00422E15。我们直接将其改为强制跳转,绕过警告信息的显示和接下来的退出流程。先按下F2打一个断点,然后按F9直接运行到该条指令:

将指令改为JMP,地址不变

于是我们就看见亲爱的降级刷BIOS界面了,完。

时间: 2024-10-24 22:25:23

windows调试器尝鲜的相关文章

Vs2012在Linux开发中的应用(15): 添加可用的调试器

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在VS的调试属性页中列出了此项目可用的调试器: 首先到MSBUILD目录下找这个页面的参数,很容易有收获: C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\2052\debugger_remote_windows.xml(3):<RuleName="WindowsRemoteDebugger" DisplayName=&

Qt在Windows上的调试器安装与配置

如果安装Qt时使用的是Visual Studio的预编译版,那么很有可能就会缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试器是CDB(对应MinGW的Qt使用GDB调试器).本文介绍如何下载安装CDB,并在Qt Creator配置之. 示例环境:Windows 7 64bit + Visual Studio 2013 + Qt 5.5.0 选择合适的Windows Driver Kit(WDK) CDB已经不再作为独立软件包,而是WDK中的一部分.虽然WDK是对应不同的Win

Qt Creator在Windows上的调试器安装与配置

如果安装Qt时使用的是Visual Studio的预编译版,那么很有可能就会缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试器是CDB(对应MinGW的Qt使用GDB调试器).本文介绍如何下载安装CDB,并在Qt Creator配置之. 示例环境:Windows 8 x86 + Visual Studio 2012 + Qt 5.2.0 选择合适的Windows Driver Kit(WDK) CDB已经不再作为独立软件包,而是WDK中的一部分.虽然WDK是对应不同的Windo

手把手教你写Windows 64位平台调试器

本文网页排版有些差,已上传了doc,可以下载阅读.本文中的所有代码已打包,下载地址在此. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 手写一个调试器有助于我们理解hook.进程注入等底层黑客技术具体实现,在编写过程中需要涉及大

Windows 10 周年版尝鲜

早在今年的 Build 大会上,微软就开始宣传最新的 Windows 10 周年版更新,炫了不少特技,直到昨天(2016/8/2 PST)才正式放出,相关新闻可以参考这里,正式的版本为 Version 1607,系统编译版本为 Build 14393.10. 文章来源:葡萄城产品技术社区 目前可以通过下面的多种方式开始更新: 1. Windows Update,面向所有用户,但是微软要分批初步推送,估计很多人不会立即刷到.你可以到"更新和安全"设置里 Roll up,幸运的话就可以看到

Windows 系统上Qt Creator的调试器安装与配置

在线安装Qt后发现使用的是Visual Studio的预编译版,缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试器是CDB(对应MinGW的Qt使用GDB调试器).本文介绍如何下载安装CDB,并在Qt Creator配置之. 示例环境:XP x86 + Visual Studio 2010 + Qt 5.4.0 选择合适的Windows Driver Kit(WDK) CDB已经不再作为独立软件包,而是WDK中的一部分.虽然WDK是对应不同的Windows版本的,但是因为我们只

在调试器里看Windows 10的Linux子系统

Windows 10是微软第三代NT团队的力挽狂澜之作,大刀阔斧地改造革新,目标是重塑Windows(Reinvent Windows)!在众多新特征中,Linux环境子系统(WSL)无疑是最具开创性和最拉风的一个. 启用WSL 在2016年3月30日开幕的Build大会上,微软向广大开发者宣布Windows 10将支持Linux应用.在2016年4月7号推送的 Windows 10 build 14328 fast ring中首次包含了WSL.在Windows 10的周年更新(Annivers

Qcreator3.1.2调试器(windows)版本

环境:visual studio 2012 qt:5.3.1 默认的ms版本qtcreator只能使用visual studio的编译器,不能使用调试工具.需要gdb或者cdb进行调试,这里介绍使用的是cdb cdb: 下载页面:http://msdn.microsoft.com/en-us/windows/hardware/hh852365 下载版本WDK 8 下载完成安装后,重新启动qtcreator即可以使用.如果依然显示没有调试器,去工具->选项,下的“构建和运行”,有个Debugger

windows简单调试器源码2700行左右代码

简单调试器项目中on开头的函数为接收系统的调试事件并做相应的处理,简单调试器实现过程中主要的调试事件为异常事件,相应的处理函数为DispatchException. 在异常事件中访问异常.int3异常.单步异常是跟实现调试器功能密切相关的异常事件,这里用三个函数分别处理三个函数分别为OnExceptionAccess.OnExceptionBreakPoint.OnExceptionSingleStep. 异常处理函数中如果为调试器自己设置的异常程序就会停下来接收用户输入等待下一步处理,相应的用