小甲鱼OD知识.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小甲鱼OD知识

OD基本快捷键及功能 F2 下断点,也就是指定断点的地址 F3 加载一个可执行程序,进行调试分析 F4 程序执行到光标处 F5 缩小、还原当前窗口 F7 单步步入 F8 单步步过 F9 直接运行程序,遇到断点处,程序暂停 Ctrl+F2 重新运行程序到起始处,一般用于重新调试程序 Ctrl+F9 执行到函数返回处,用于跳出函数实现 Alt+F9 执行到用户代码处,用于快速跳出系统函数 Ctrl+G 输入十六进制地址,快速定位到该地址处 加载目标文件调试 设置OllyDbg中断在程序的入口点。 名词注释 System breakpoint:系统断点,OllyDbg用CreateProcessA加载DEBUG_ONLY_THIS_PROCESS参数执行,程序运行之后会触发一个INT13,在系统空间里。 Entry point of main module:主模块的入口点,即文件的入口点。 WinMain:程序的WinMain()函数入口点。 加载目标文件调试 1.虚拟地址:一般情况下,同一程序的同一条指令在不同系统环境下此值相同。 2.机器码:这就是CPU执行的机器代码。 3.汇编指令:和机器码对应的程序代码。 调试技巧总结 1.F2下断点,Alt+b打开断点编辑器,可编辑所有下过的断点,空格键可快速切换断点状态。 2.当位于某个CALL中,这时想返回到调用这个CALL的地方时,可以按“Ctrl+F9”快捷键执行返回功能。这样OD就会停在遇到的第一个返回命令(如RET、RETF或IRET)。 3.如果跟进系统DLL提供的API函数中,此时想返回到应用程序领空里,可以按快捷键“Alt+F9”执行返回到用户代码命令。 调试技巧总结 4.所谓领空,实际上就是指在某一时刻,CPU执行的指令所在的某段代码的所有者。 5.如004013F7这类地址一般是可执行文件领空,7C8114AB这类大地址一般是系统DLL所在的地址空间。 6.程序通常读取文本框内容的字符串用的是以下两个函数: GetDlgItemTextA(GetDlgItemTextW) GetWindowTextA(GetWindowTextW) 调试技巧总结 7.一般我们要结合经验通过猜测的方式多尝试几遍设陷阱,找出相关的函数。 8.按“Ctrl+G”键打开跟随表达式的窗口。 9.也可以通过“Ctrl+N”键打开应用程序的导入表(输入表),然后查看应用程序总共导入了哪些函数来以此推断需要在哪里挖坑下陷阱! 10.关于返回值,汇编代码的返回值约定是存放在eax这个寄存器里边的,如果32位的eax不够存放返回值,系统会将返回值放在内存某个位置并把该位置的地址放在eax返回。 关于寄存器 寄存器就好比是CPU身上的口袋,方便CPU随时从里边拿出需要的东西来使用。今天的程序中我们涉及到九个寄存器: EAX:扩展累加寄存器 EBX:扩展基址寄存器 ECX:扩展计数寄存器 EDX:扩展数据寄存器 ESI:扩展来源寄存器 EDI:扩展目标寄存器 关于寄存器 寄存器就好比是CPU身上的口袋,方便CPU随时从里边拿出需要的东西来使用。今天的程序中我们涉及到九个寄存器: EAX:扩展累加寄存器 EBX:扩展基址寄存器 ECX:扩展计数寄存器 EDX:扩展数据寄存器 ESI:扩展来源寄存器 EDI:扩展目标寄存器 关于CALL指令 很多朋友都问过如何“找CALL”,但很遗憾,从没有朋友问过为什么要“找CALL”。 call XXX; 等于 push eip; 然后 jmp XXX; call有以下几种方式: call 404000h ;直接跳到函数或过程的地址 call eax ;函数或过程地址存放在eax call dword ptr [eax] eax 400080h 400080h 404000h 关于CALL call dword ptr [eax+5] call dword ptr [API] ;执行一个系统API eax 400080h 400085h 404000h 关于mov指令 mov指令格式:mov dest, src 这是一个很容易理解的指令,mov指令将src的内容拷贝到dest,mov指令总共有以下几种扩展: movs/movsb??/movsw/movsd edi,esi:这些变体按串/字节/字/双字为单位将esi寄存器指向的数据复制到edi寄存器指向的空间。 movsx符号位扩展,byte-word,word-dword (扩展后高位全用符号位填充),然后实现mov。 movzx零扩展,byte-word,word-dword(扩展后高位全用0填充),然后实现mov。 关于cmp指令 cmp指令格式:cmp dest, src cmp指令比较dest和s

文档评论(0)

jiayou10 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档