ODOllyDbg使用教程学习教案
《ODOllyDbg使用教程学习教案》由会员分享,可在线阅读,更多相关《ODOllyDbg使用教程学习教案(21页珍藏版)》请在装配图网上搜索。
1、会计学1ODOllyDbg使用使用(shyng)教程教程第一页,共21页。什么(shn me)是OllyDbg?OllyDbg简称OD,是一款具有可视化界面的用户模式调试器,结合了动态调试和静态分析,具有强大的反汇编引擎,能够识别数千个被C和Windows所使用的函数,并能将其参数注释(zhsh)出,能自动分析函数过程、循环语句、代码中的字符串等。第1页/共21页第二页,共21页。显示显示(xinsh)(xinsh)被调试程序的反汇编代码被调试程序的反汇编代码显示显示(xinsh)当前所选线程的当前所选线程的CPU寄存器内容。寄存器内容。显示反汇编窗口中选中的第一个命令显示反汇编窗口中选中的第
2、一个命令(mng lng)(mng lng)的参数及一些跳转目标地址、字串等的参数及一些跳转目标地址、字串等 显示内存或文件的内容。 显示当前线程的堆栈显示当前线程的堆栈 第2页/共21页第三页,共21页。反汇编窗口反汇编窗口(chungku)的列中,双击的效果的列中,双击的效果: 地址列:显示相对被单击地址的地址,再次 双击返回到标准地址模式; Hex数据列:设置或取消(qxio)无条件断点,对应的快捷键是F2键; 反汇编列:调用汇编器,可直接修改汇编代码; 注释列:允许增加或编辑注释,对应快捷键是“;“键第3页/共21页第四页,共21页。调试中我们经常要用到的快捷键有这些:调试中我们经常要
3、用到的快捷键有这些:F2:设置断点,只要在光标定位的位置(上图中灰色条):设置断点,只要在光标定位的位置(上图中灰色条)按按F2键即可,再按一次键即可,再按一次F2键则会删除断点键则会删除断点F8:单步步过。每按一次这个键执行一条反汇编窗口中的:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到一条指令,遇到CALL等子程序不进入其代码等子程序不进入其代码F7:单步步入。功能同单步步过:单步步入。功能同单步步过(F8)类似,区别是遇到类似,区别是遇到CALL等子程序时会等子程序时会(shhu)进入其中,进入后首先会停进入其中,进入后首先会停留在子程序的第一条指令上留在子程序的第一条指
4、令上F4:运行到选定位置。作用就是直接运行到光标所在位置:运行到选定位置。作用就是直接运行到光标所在位置处暂停处暂停F9:运行。按下这个键如果没有设置相应断点的话,被调:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行试的程序将直接开始运行CTR+F9:执行到返回。此命令在执行到一个:执行到返回。此命令在执行到一个ret(返回指返回指令令)指令时暂停,常用于从系统领空返回到我们调试的程序指令时暂停,常用于从系统领空返回到我们调试的程序领空领空ALT+F9:执行到用户代码。可用于从系统领空快速返回到:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空我们调试的程序领
5、空第4页/共21页第五页,共21页。如何如何(rh)加载程序?加载程序? 点击菜单 文件-打开 (快捷键是 F3)来打开一个可执行文件进行(jnxng)调试 点击菜单 文件-附加 来附加一个已运行的进程上进行(jnxng)调试。注意这里要附加的程序必须已运行。 第5页/共21页第六页,共21页。基本操作:基本操作:1 1、准备工作、准备工作 我们以我们以TracemeTraceme这个这个(zh ge)(zh ge)软件为例,了解软件为例,了解TracemeTraceme序列号的验证流程序列号的验证流程第6页/共21页第七页,共21页。2、加载目标、加载目标(mbio)文件调试文件调试运运行行
6、OllyDbgOllyDbg后,打后,打开开(d(d ki) ki)选项选项/ /调试设调试设置置程序运行之后程序运行之后(zhhu)(zhhu),在系统空间里会触发一个,在系统空间里会触发一个INT3INT3文件入口点文件入口点程序的程序的WinmainWinmain()函数入口点,但一般都是在文件入口点()函数入口点,但一般都是在文件入口点第7页/共21页第八页,共21页。设置完成之后,载入文件设置完成之后,载入文件(wnjin),出现如图所示:,出现如图所示:虚拟地址机器码:机器码: CPU CPU执行执行(zhxng)(zhxng)的机器代码的机器代码汇编指令汇编指令(zhlng):和
7、机器码对应的和机器码对应的程序代码程序代码第8页/共21页第九页,共21页。3、单步(dn b)跟踪调试器一个最基本功能就是动态跟踪调试器一个最基本功能就是动态跟踪(gnzng)(gnzng),OllyDbgOllyDbg单步跟踪单步跟踪(gnzng)(gnzng)功能键:功能键:F7F7与与F8F8的区别的区别(qbi)(qbi):在遇到:在遇到CALLCALL时,时,F8F8会直接跳过,而会直接跳过,而F7F7就跟进去就跟进去第9页/共21页第十页,共21页。4 4、设置、设置(shzh)(shzh)断点断点断点是调试器的一个重要功能,它能使程序中断在需要的地方,从而断点是调试器的一个重要
8、功能,它能使程序中断在需要的地方,从而方便对其分析,常用的断点是方便对其分析,常用的断点是INT3INT3,其原理是,其原理是OllyDbgOllyDbg将断点处的代将断点处的代码设置为码设置为int3int3指令。指令。方法:将光标移动到要设断点的行,按方法:将光标移动到要设断点的行,按F2F2键就可以键就可以(ky)(ky)设置设置 了,了,也可以也可以(ky)(ky)双击双击HexHex数据列数据列目的:可以目的:可以(ky)(ky)让软件运行的时候停在设断点的地方,以方便反让软件运行的时候停在设断点的地方,以方便反复跟踪调试复跟踪调试当关闭程序时,当关闭程序时,OllyDbgOllyD
9、bg会将设置好的断点保存在会将设置好的断点保存在UDDUDD文件中,下次文件中,下次运行时还有效。运行时还有效。第10页/共21页第十一页,共21页。5 5、调试调试(dio sh)(dio sh)分析:分析:调试分析其实就是(jish)分析程序代码的意义,如图:阅读这些代码时,首先要搞清楚各阅读这些代码时,首先要搞清楚各APIAPI函数的定义,还弄明函数的定义,还弄明白那些白那些(nxi)(nxi)汇编程序代码的具体含义汇编程序代码的具体含义第11页/共21页第十二页,共21页。6 6、保存修改、保存修改(xigi)(xigi)后的文件后的文件图中红色的就是我们图中红色的就是我们(wmen)
10、修改的地方,然后就点右键,修改的地方,然后就点右键,复制到文件,就可以保存当前的修改复制到文件,就可以保存当前的修改第12页/共21页第十三页,共21页。我们现在(xinzi)来举个简答你的例子破解破解(p ji)TraceMe(p ji)TraceMe的注册码的注册码操作步骤如图:第13页/共21页第十四页,共21页。首先当然要载入首先当然要载入TraceMeTraceMe,载入之后就会出现,载入之后就会出现(chxin)(chxin)如下窗口如下窗口文件文件(wnjin)入口点入口点然后我们要找到然后我们要找到GetDlgItemTextAGetDlgItemTextA函数,因为程序从文本
11、框中将内容函数,因为程序从文本框中将内容读取出来,需要用到这个函数。我们就用读取出来,需要用到这个函数。我们就用Ctrl+GCtrl+G打开跟随打开跟随(n su)(n su)表表达式的窗口,在里面输入函数名就可以跟踪到函数名存在的地方达式的窗口,在里面输入函数名就可以跟踪到函数名存在的地方第14页/共21页第十五页,共21页。注意:此时注意:此时(csh)的领空是模块的领空是模块USER32,领,领空就是在某一时刻,空就是在某一时刻,CPU的的CS:EIP所指向代码所指向代码的所有者的所有者领空领空(lnkn)接着,在接着,在USER32USER32的领空中,在的领空中,在77D6B05E7
12、7D6B05E代码行按下代码行按下F2F2,下,下断点,然后断点,然后(rnhu)(rnhu)按按F9F9运行运行, ,然后然后(rnhu)(rnhu)键入下图所示键入下图所示:第15页/共21页第十六页,共21页。点点checkcheck,可以看到程序,可以看到程序(chngx)(chngx)被被ODOD截停在下断点的地方,如图所示:截停在下断点的地方,如图所示:接着,按接着,按Alt+F9Alt+F9,返回到用户代码,返回到用户代码(di m)(di m),可以回到:,可以回到:注意:这里注意:这里(zhl)又回到又回到TraceMe的领空了的领空了我们可以按我们可以按Alt+B调出断点窗
13、口,然后将调出断点窗口,然后将GetDlgItemTextA的断点改为已禁止的断点改为已禁止第16页/共21页第十七页,共21页。接下来就在接下来就在004011AE004011AE下一个断点下一个断点, ,因为这里因为这里(zhl)(zhl)有调用有调用到到GetDlgItemTextAGetDlgItemTextA这个函数这个函数然后就要开始分析这些汇编代码的意义,所以,我们在使用然后就要开始分析这些汇编代码的意义,所以,我们在使用这个软件的时候,一定要明白这些代码的含义,现在我们只这个软件的时候,一定要明白这些代码的含义,现在我们只是先认识一下这个软件的作用是先认识一下这个软件的作用(z
14、uyng),所以就不为大家做,所以就不为大家做出分析,接下来就是修改代码了。其实我们要是分析下来,出分析,接下来就是修改代码了。其实我们要是分析下来,可以发现,其实问题就在于一个代码行可以发现,其实问题就在于一个代码行-004011F5第17页/共21页第十八页,共21页。修改修改(xigi)这一反汇编代码段,双击反汇编列后者按空这一反汇编代码段,双击反汇编列后者按空格键,键入格键,键入NOP,点汇编,点汇编最后最后(zuhu)F9运行,你会看到:运行,你会看到:第18页/共21页第十九页,共21页。下面就介绍一些下面就介绍一些(yxi)分析常用的汇编代码含义:分析常用的汇编代码含义:MOV传
15、送字或字节传送字或字节如如MOVAB,就是将,就是将B中的字传给中的字传给APUSH把字压入堆栈把字压入堆栈CALL子程序调用指令子程序调用指令XOR异或运算异或运算所谓所谓(suwi)异或,就是两值不同,则为真,反之,为假异或,就是两值不同,则为真,反之,为假RET子程序返回指令子程序返回指令CMP比较比较.(两操作数作减法两操作数作减法,仅修改标志位仅修改标志位,不回送结果不回送结果)JNZ(或或jNE)OPR-结果不为零转移结果不为零转移,测试条件测试条件ZF=0DEC减减1INC加加1JZ(或或jE)OPR-结果为零转移结果为零转移,测试条件测试条件ZF=1SUB减法减法LEA装入有效
16、地址装入有效地址例例:LEADX,string;把偏移地址存到把偏移地址存到DX.MOVSX先符号扩展先符号扩展,再传送再传送REP当当CX/ECX0时重复时重复AND与运算与运算TEST测试测试.(两操作数作与运算两操作数作与运算,仅修改标志位仅修改标志位,不回送结果不回送结果)第19页/共21页第二十页,共21页。上面是我的总结,大家可以大致的了解一下,有什上面是我的总结,大家可以大致的了解一下,有什么么(shnme)不清楚的地方,可以过来跟我交流。共不清楚的地方,可以过来跟我交流。共享的文件里面还有教程,大家可以根据里面的教程享的文件里面还有教程,大家可以根据里面的教程,做更深入的学习。还有很多汇编代码的含义没有,做更深入的学习。还有很多汇编代码的含义没有介绍,共享文件里面有完备的代码解释,可以好好介绍,共享文件里面有完备的代码解释,可以好好看看,参考参考。看看,参考参考。第20页/共21页第二十一页,共21页。
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 嵌入式系统概论-以S3C2440核心为架构课件
- 地理事象的季节变化课件
- 地理中外著名旅游景观欣赏课件
- 地理中图版选修5第一章第二节主要自然灾害及其分布课件
- 地理中考复习-地图课件
- 北师大版历史八年级下册第17课《筑起钢铁长城》课件1
- 北师大版历史八下《祖国统一的历史大潮》课件5
- 北师大版历史八下《欣欣向荣的科教文体事业》3课件
- 北师大版历史八下《蓝色的地中海文明》课件
- 北师大版历史九年级下册第10课“冷战”与“热战”丁飞鹤T-课件
- 北师大版历史八下第17课《大河流域的文明曙光》课件
- 北师大版历史九上1718课课件
- 高中化学热力学复习10多重平衡与化学计算ppt课件
- 高中化学第1章化学反应与能量转化第3节化学能转化为电能电池ppt课件1鲁科版选修
- 高中化学第三节玻璃、陶瓷和水泥公开课课件