OD调试1--第一个win32程序

OD调试一:第一个Win32程序的修改

  在软件开发的过程中,程序员会使用一些调试工具,以便高效地找出软件中存在的错误。而在逆向分析领域,分析者也会利用相关的调试工具来分析软件的行为并验证分析结果。由于操作系统都会提供完善的调试接口,所以利用各类调试工具可以非常方便灵活地观察和控制目标软件。在使用调试工具分析程序的过程中,程序会按调试者的意愿以指令为单位执行。

  调试逆向分为动态分析技术和静态分析技术。

  动态分析技术指的是使用调试工具加载程序并运行,随着程序运行,调试者可以随时中断目标的指令流程,以便观察相关计算的结果和当前的设备情况。

  静态分析技术是相对于动态分析而言的。由于在实际分析中,很多场合不方便运行目标(例如病毒程序,设备不兼容,软件的单独某一模块)。那么这个时候静态分析技术就该上场了!

  OD(OllyDbg)和IDA Pro这两款工具分别是调试逆向的倚天剑和屠龙刀。虽然两者都兼容动态和静态的调试方式,但就动态调试而言,OD更为灵活和强大,而静态调试工具的王者理所应当是功能极为强大的IDA Pro。

OD调试1--第一个win32程序

1. 汇编代码对应的地址窗口

2. 汇编代码对应的十六进制机器码窗口

3. 反汇编窗口

4. 反汇编代码对应的注释信息窗口

5. 寄存器信息窗口

6. 当前执行到的反汇编代码的信息窗口

7~9. 数据所在的内存地址,十六进制,ASCII码

10~12.栈地址,存放的数据,对应说明信息

OD调试1--第一个win32程序 

 

任务要求:通过OD将程序的标题“I love fishc.com”改为“Iam JiaYuntian”

OD调试1--第一个win32程序

 

具体操作步骤:

  打开OD。按F3载入程序hello.exe.

  粗略浏览汇编代码,发现是一些乱七八糟的东西。Ctrl+F2重新载入程序回到入口点OEP。一直按F8单步步过,注意观察窗口各处信息的变化,一直按到出现对话框。此时停在下图的这个call上。

OD调试1--第一个win32程序 

  在此行按F2设下断点(或者双击该行),Ctrl+F2重新载入,直接按F9运行到断点处,按F7单步步入这个call里。

OD调试1--第一个win32程序 

  进入到这里后,继续按F8单步往下执行。

OD调试1--第一个win32程序 

  此处就找到了我们要修改的地方。

  在左下方的数据窗口里按Ctrl+G,键入地址00422030,确认

OD调试1--第一个win32程序 

  在第一行的地方按空格,修改标题内容:此处应注意,16进制数字末尾处应加上00(因为字符串是以0结尾的,C语言编程里有学到。)

OD调试1--第一个win32程序 

  点击确定,修改完成。按F9继续执行程序。

OD调试1--第一个win32程序 

  修改到此成功。

  

 

OD调试1--第一个win32程序

上一篇:C#函数式编程之递归调用


下一篇:php实现和c#一致的DES加密解密