OD(OllyDbg)使用教程

上传人:ning****hua 文档编号:243052163 上传时间:2024-09-14 格式:PPT 页数:21 大小:417.50KB
返回 下载 相关 举报
OD(OllyDbg)使用教程_第1页
第1页 / 共21页
OD(OllyDbg)使用教程_第2页
第2页 / 共21页
OD(OllyDbg)使用教程_第3页
第3页 / 共21页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,工具介绍,OllyDbg,调试器,什么是,OllyDbg,?,OllyDbg,简称,OD,,是一款具有可视化界面的用户模式调试器,结合了动态调试和静态分析,具有强大的反汇编引擎,能够识别数千个被,C,和,Windows,所使用的函数,并能将其参数注释出,能自动分析函数过程、循环语句、代码中的字符串等。,下面认识一下OllyDbg的界面,显示被调试程序的反汇编代码,显示当前所选线程的,CPU,寄存器内容。,显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等,显示内存或文件的内容。,显示当前线程的堆栈,反汇编窗口的列中,双击的效果,:,地址列:显示相对被单击地址的地址,再次 双击返回到标准地址模式;,Hex,数据列:设置或取消无条件断点,对应的快捷键是,F2,键;,反汇编列:调用汇编器,可直接修改汇编代码;,注释列:允许增加或编辑注释,对应快捷键是“;“键,调试中我们经常要用到的快捷键有这些:,F2,:设置断点,只要在光标定位的位置(上图中灰色条)按,F2,键即可,再按一次,F2,键则会删除断点,F8,:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到,CALL,等子程序不进入其代码,F7,:单步步入。功能同单步步过,(F8),类似,区别是遇到,CALL,等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上,F4,:运行到选定位置。作用就是直接运行到光标所在位置处暂停,F9,:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行,CTR+F9,:执行到返回。此命令在执行到一个,ret,(,返回指令,),指令时暂停,常用于从系统领空返回到我们调试的程序领空,ALT+F9,:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空,如何加载程序?,点击菜单文件,-,打开(快捷键是,F3,)来打开一个可执行文件进行调试,点击菜单文件,-,附加来附加一个已运行的进程上进行调试。注意这里要附加的程序必须已运行。,基本操作:,1,、准备工作,我们以,Traceme,这个软件为例,了解,Traceme,序列号的验证流程,2,、加载目标文件调试,运行,OllyDbg,后,打开选项,/,调试设置,程序运行之后,在系统空间里会触发一个,INT3,文件入口点,程序的,Winmain,()函数入口点,但一般都是在文件入口点,设置完成之后,载入文件,出现如图所示:,虚拟地址,机器码:,CPU,执行的机器代码,汇编指令:,和机器码对应的程序代码,3,、单步跟踪,调试器一个最基本功能就是动态跟踪,,OllyDbg,单步跟踪功能键:,F7,与,F8,的区别:在遇到,CALL,时,,F8,会直接跳过,而,F7,就跟进去,4,、设置断点,断点是调试器的一个重要功能,它能使程序中断在需要的地方,从而方便对其分析,常用的断点是,INT3,,其原理是,OllyDbg,将断点处的代码设置为,int3,指令。,方法:将光标移动到要设断点的行,按,F2,键就可以设置 了,也可以双击,Hex,数据列,目的:可以让软件运行的时候停在设断点的地方,以方便反复跟踪调试,当关闭程序时,,OllyDbg,会将设置好的断点保存在,UDD,文件中,下次运行时还有效。,5,、调试分析:,调试分析其实就是分析程序代码的意义,如图:,阅读这些代码时,首先要搞清楚各,API,函数的定义,还弄明白那些汇编程序代码的具体含义,6,、保存修改后的文件,图中红色的就是我们修改的地方,然后就点右键,复制到文件,就可以保存当前的修改,我们现在来举个简答你的例子,破解,TraceMe,的注册码,操作步骤如图:,首先当然要载入,TraceMe,,载入之后就会出现如下窗口,文件入口点,然后我们要找到,GetDlgItemTextA,函数,因为程序从文本框中将内容读取出来,需要用到这个函数。我们就用,Ctrl+G,打开跟随表达式的窗口,在里面输入函数名就可以跟踪到函数名存在的地方,注意:,此时的领空是模块,USER32,,领空就是在某一时刻,,CPU,的,CS:EIP,所指向代码的所有者,领空,接着,在,USER32,的领空中,在,77D6B05E,代码行按下,F2,,下断点,然后按,F9,运行,然后键入下图所示:,点,check,,可以看到程序被,OD,截停在下断点的地方,如图所示:,接着,按,Alt+F9,,返回到用户代码,可以回到:,注意:,这里又回到,TraceMe,的领空了,我们可以按,Alt+B,调出断点窗口,然后将,GetDlgItemTextA,的断点改为已禁止,接下来就在,004011AE,下一个断点,因为这里有调用到,GetDlgItemTextA,这个函数,然后就要开始分析这些汇编代码的意义,所以,我们在使用这个软件的时候,一定要明白这些代码的含义,现在我们只是先认识一下这个软件的作用,所以就不为大家做出分析,接下来就是修改代码了。其实我们要是分析下来,可以发现,其实问题就在于一个代码行,-004011F5,修改这一反汇编代码段,双击反汇编列后者按空格键,键入,NOP,,点汇编,最后,F9,运行,你会看到:,下面就介绍一些分析常用的汇编代码含义:,MOV,传送字或字节 如,MOV A B,,就是将,B,中的字传给,A,PUSH,把字压入堆栈,CALL,子程序调用指令,XOR,异或运算 所谓异或,就是两值不同,则为真,反之,为假,RET,子程序返回指令,CMP,比较,.(,两操作数作减法,仅修改标志位,不回送结果,),JNZ(,或,jNE,) OPR -,结果不为零转移,测试条件,ZF=0 DEC,减,1 INC,加,1,JZ(,或,jE,)OPR-,结果为零转移,测试条件,ZF=1 SUB,减法,LEA,装入有效地址,例,: LEA,DX,string,;,把偏移地址存到,DX. MOVSX,先符号扩展,再传送,REP,当,CX/ECX0,时重复,AND,与运算,TEST,测试,.(,两操作数作与运算,仅修改标志位,不回送结果,),上面是我的总结,大家可以大致的了解一下,有什么不清楚的地方,可以过来跟我交流。共享的文件里面还有教程,大家可以根据里面的教程,做更深入的学习。还有很多汇编代码的含义没有介绍,共享文件里面有完备的代码解释,可以好好看看,参考参考。,The End!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!