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

posted on 2015-02-23 17:54  lifehacker  阅读(480)  评论(0编辑  收藏  举报

导航