zoukankan      html  css  js  c++  java
  • 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界面了,完。

  • 相关阅读:
    九度-题目1197:奇偶校验
    九度-题目1073:杨辉三角形
    九度-题目1072:有多少不同的面值组合?
    同步异步,阻塞非阻塞
    注解方式配置bean
    监听器
    自定义系统初始化器
    构建流
    数值流
    流的使用
  • 原文地址:https://www.cnblogs.com/Lifehacker/p/ollyDbg200.html
Copyright © 2011-2022 走看看