OD使用教程2 - 解密系列【调试篇】.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OD使用教程2 - 解密系列【调试篇】

OD使用教程 今天小甲鱼给大家演示使用OD破解《解密系列》里边的小程序的过程。 《解密系列》里固然破解过程说明,但是看过此书的朋友无不说太简单带过了,书中仅提到破解该程序的简要步骤。 但是我们强调一定要知其然且知其所以然!所以在今天的演示中,小甲鱼会用一样的程序讲出更全面的内容! 鸡冻吧?那上课就别睡觉了哦~ 准备工作 拆解一个Windows程序要比拆解一个DOS程序容易得多,因为在Windows中,只要API函数被使用,想对寻找蛛丝马迹的人隐藏一些东西是比较困难的。 因此分析一个程序,用什么API函数作为切入点就显得比较关键了。这也正是小甲鱼常跟大家说破解靠的是耐心和经验的道理! 为了便于大家理解,我们先把TraceMe这个序列号验证程序流程图给大家展示出来: TraceMe序列号验证程序流程图 加载目标文件调试 设置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返回。

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档