程序的另类调试_第1页
程序的另类调试_第2页
程序的另类调试_第3页
程序的另类调试_第4页
程序的另类调试_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、我们的程序框架虽然有源程序,但动态调试起来比较麻烦,不能使用主流的IDE(如visual studio)进行直接的编译调试。只能通过mozilla build编译成debug版本来附加断点调试。然而编译debug版本是一个漫长而充满不确定性的过程。于是我想到用逆向工程的动态调式技术,来调试我们的程序。我们使用大名鼎鼎的动态调试工具Ollydbg(以下简称OD),目前最新官方(http:/www.ollydbg.de)版本是2.0版,现在用的最广的是1.1版本,其上的脚本,插件不及其数。如果需要可以到上找。逆向工程涉及的东西太多(除了IT技术,还涉及到心里学、哲学、甚至神学)非我能及,也不在本文

2、范围内,所以不做介绍。好,回归主题1.断点调试。我们仅需要一个可以运行的程序,便能跟踪调试了。拿zmail来说吧。我们修改了zmail框架源码如下图我们一在这里注意下MatchInAddressBook 一会会在OD里查找这处。编译为可运行的release版,运行zmail,然后运行OD,在OD里附加zmail进程如下图附加后OD会反汇编zmail,并自动断点暂停,我们按F9让他运行。我们切换到zmail主线程,在CPU窗口点右键,如下图我们看到zmail 窗口标题变成上面的样子就说明转成功了。如果没转好就重复做下。接下来,我们搜索程序里的字符串,来定位我们要设置的地方。在CPU窗口点右键如下

3、图选择find ASCII等一会后会分析完,自动切换到结果窗口,我们焦点窗口按ctrl+F3,输入我们的标记“MatchinAddressBook”,点OK, 会找到我们要的地方,然后双点这行,进入CPU窗口如下图。在函数开始的地方按F2或双击设置断点,然后转到zmail中执行相关的调用功能。如下图这时会在OD中我们的断点处断下来,看到OD右下角pause字样。然后我们可以跟踪调试了。F7步进,F8不进,F9执行。每执行条指令,可以在右上的寄存器窗口中查看各寄存器的值和CPU的标志位。左下窗口是内存,右下窗口是堆栈。2.错误处理有时我们的程序崩溃了,提示某处内存发生异常之内的。如果我们没有源码,也可以用OD来找错。我们记下提示错误的内存地址,然后打开OD附加目标程序。然后在输入地址如下图。然后点OK,会跳到指令地址,我们在其上下断点F2.然后运行目标程序相关出错功能,就会断点下,然后一步一步向上找,就能分析出出错的地方了。显然用OD要有点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论