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界面了,完。

windows调试器尝鲜的更多相关文章
- Windows 10 周年版尝鲜
早在今年的 Build 大会上,微软就开始宣传最新的 Windows 10 周年版更新,炫了不少特技,直到昨天(2016/8/2 PST)才正式放出,相关新闻可以参考这里,正式的版本为 Version ...
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer.Windows服务器管理工具或NET START命令启动它 1. ...
- Windbg是windows平台上强大的调试器
基础调试命令 - .dump/.dumpcap/.writemem/!runaway Windbg是windows平台上强大的调试器,它相对于其他常见的IDE集成的调试器有几个重要的优势, Windb ...
- windows下为qt msvc版本配置调试器
原文:https://blog.csdn.net/whatnamecaniuse/article/details/80716616 根据开发机的环境,下载 我的机器是win10,因此下载win 10 ...
- Qt Creator在Windows上的调试器安装与配置
如果安装Qt时使用的是Visual Studio的预编译版,那么很有可能就会缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试器是CDB(对应MinGW的Qt使用GDB调试器).本文介 ...
- Windows系统默认调试器设置
Windows系统默认调试器设置 1.使用运行打开drwtsn32 -i 注册华生医生到注册表如图: 2.使用运行打开drwtsn32可以进行一些常用的设置如图: 3. 注册表设置: HKEY_LOC ...
- Qcreator3.1.2调试器(windows)版本
环境:visual studio 2012 qt:5.3.1 默认的ms版本qtcreator只能使用visual studio的编译器,不能使用调试工具.需要gdb或者cdb进行调试,这里介绍使用的 ...
- 手把手教你写Windows 64位平台调试器
本文网页排版有些差,已上传了doc,可以下载阅读.本文中的所有代码已打包,下载地址在此. ------------------------------------------------------- ...
- 修改Windows默认调试器
程序崩溃时,系统会弹窗让你选择是否进行调试,可以设置系统默认调试器. 注册表位置: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVe ...
随机推荐
- 【转】CentOS下载版本介绍
官网:http://www.centos.org/ 下载:http://mirror.neu.edu.cn/centos/6.6/isos/ 系统运维:http://www.osyunwei.com/ ...
- IE/Firefox/Chrome等浏览器保存Cookie的位置
IE/Firefox/Chrome等浏览器保存Cookie的位置 原文 http://smilejay.com/2013/04/browser-cookie-location/ 前面写了篇长文( ...
- jquery之remove(),detach()方法详解
一:remove()方法 remove()函数用于从文档中移除匹配的元素. 你还可以使用选择器进一步缩小移除的范围,只移除当前匹配元素中符合指定选择器的部分元素. 与detach()相比,remove ...
- 11.安装KVM虚拟机
安装KVM虚拟机是一大难题,不按照虚拟机物理机128G内存和强劲的CPU无法充分利用.也不便于后面的jenkins自动部署.安装KVM虚拟机过程我是借鉴了网上下载的马哥linux KVM那块的内容 ...
- 关于xcode不同版本打开相同工程问题
今天刚下好了xcode7正式版,于是乎用其创建一个工程.随后关闭此工程用xcode6.3打开此工程.发现报错不能运行,随后网上查资料,可惜中文版的资料几乎可以说是没有,因此写下此文,以方便其他遇到此情 ...
- caffe中python接口的使用
下面是基于我自己的接口,我是用来分类一维数据的,可能不具通用性: (前提,你已经编译了caffe的python的接口) 添加 caffe塻块的搜索路径,当我们import caffe时,可以找到. 对 ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。
在创建事务复制时,很多时候不一定使用快照进行初始化,而是使用备份还原初始化.当对有标识列(即identity的自增列)的表进行复制的时候,使用备份还原初始化搭建起来的复制常常就会报错,即:当 IDEN ...
- gameui-for-phaser-js更新到最新版本
Hola Cantk是一个功能强大的游戏引擎,它拥有丰富的GUI控件,配合Hola Studio可以快速开发出游戏的UI界面.Phaser是一个流行而且强大的游戏引擎,但是它的GUI控件很少,而且缺乏 ...
- android应用锁之获取前台进程包名方法
通过以下方式来获取前台进程的包名: 1.android api 10-20 通过ActivityManager中getRunningTasks来获取. 2.android api 21- 22(部分没 ...
- Yii 检查输入的数据是否已经存在
只需要在对应的Model文件中的rules方法里面加入 array('username', 'unique', 'message'=>'{attribute}已存在'),//username是需 ...