使用OllyDbg从零开始Cracking-45第四十五章-ReCrypt v0.pdfVIP

使用OllyDbg从零开始Cracking-45第四十五章-ReCrypt v0.pdf

  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文档。上传文档
查看更多
第四十五章-ReCrypt v0.80脱壳 本章我们一起来分析一个用OllyDbg比较 难脱的壳,这款壳就算我们配置好隐藏插 件程序也无法正常运行,会弹出一个错误 框。 (PS:其实用海风月影大哥的StrongOD插件 就可以完美解决,但是,04年的时候Strong OD还没有出来,啧啧!!!)。其实用别的调 试器也可以搞定,但是我们整个教程的核 心是OllyDbg,所以这里我们还是用OllyDb g来进行调试,嘿嘿。 我们的实验程序名称叫做UnPackMe_ReCry pt0.80。这个程序的反调试比较强力(PS: 当时算比较强力,现在不算什么了)。我们 首先不加载调试器直接运行该程序。 好,程序运行起来了,但是大家细心的话会 发现一个比较蛋疼的问题,这个程序的CPU 占用率居然高达99%。我们一起来看看它 做了哪些手脚。 我们打开OllyDbg,选择菜单项File - At tach,打开可以附加的进程列表。 我们可以看到无法正常加载。 好,那么我们就用前面章节介绍过的专门 用于定位OEP的OllyDbg或者Patched 5这 个OllyDbg来打开它。 我们可以看到弹出了一个错误框提示无效 的PE文件,这里我们单击Aceptar (西班牙 语译为:接受,这里译为确定)按钮。 断在了系统断点处,我们直接运行起来。 又弹出了一个错误框。 好,那么我们重启OD,再次断在了Sytem st artup breakpoint(系统断点)处,现在我 们单击工具栏上的M按钮打开区段列表窗 口。 这里我们可以看到主模块仅仅只有一个区 段,所以刚刚加载的时候弹出的那个无效P E格式的错误框是由于修改了原程序PE头 中NumberOfRvaAndSizes(数据 目录结构数 组的项数)字段导致的。接下来我们对该 区段设置内存访问断点,大家应该还记得P atched 5这款OD吧,前面章节我们介绍过, 这款OD是打过补丁的,其内存访问断点仅 仅在执行代码的时候才会断下来,读取或 者写入并不会断下来,这样对于我们定位O EP非常有帮助。 运行起来。 断在了405000地址处,好,现在我们删除内 存访问断点,接着直接运行起来。 我们可以看到还是弹出了错误框。好,那 么我们来看看PE头中NumberOfRvaAndSize s(数据 目录结构数组的项数)字段的值是 多少。 我们在数据窗口中单击鼠标右键选择Go t o-Expression,输入400000 (主模块基地址 )。 接着还是单击鼠标右键选择Special-PE h eader切换到PE结构解析模式。 往下拉,定位到NumberOfRvaAndSizes字段 。 我们可以看到该字段的值是7A0B5FD9 (PS: 数据 目录结构数组项数怎么可能会这么大 ,明显被做了手脚),通常情况下该字段的 值为0x10,好,这里我们把字段的值修改为 0x10,看看会发生什么。 接下来我们在选中该字段,单击鼠标右键 选择Copy to executable file尝试将所 做的修改保存到文件。 我们可以看到报错了,无法在可执行文件 中定位到该数据。 好那我们尝试用十六进制编辑器来修改吧 。 (PS:这里使用的十六进制编辑器是UltraE dit,当然你也可以使用其他十六进制编辑 器,比如WinHex)。 这里我们定位到0xB4偏移处,也就是Numbe rOfRvaAndSizes字段处,就该字段的值修 改为0x10。 接着将所做的修改保存到文件。 这里我将修改过的文件重命名为了UnPack Me_ReCrypt0.80 b.exe。 我们可以看到用OD加载修改过的UnPackMe _ReCrypt0.80 b.exe,正常的断在了入口 点处。说明这一处反调试我们的修复是正 确的,接下来我们直接运行起来。 依然报错。 那么我们尝试将NumberOfRvaAndSizes字 段的值还原看看能不能正常运行。 好,这里NumberOfRvaAndSizes的值我们已 经还原了,运行起来。 很明显有什么地方我们没有绕过。提示正 在访问一个不存在的区段地址,OD无法继 续运行。 这里常规思路是行不通的,我们需要一点 奇招。大家需要做的就是: 琢磨 琢磨 琢磨 嘿嘿 多思考思考 好了,下面我就来给大家介绍一些思路,这 里并不是每一种思路都能奏效,但是你需 要熟悉这些思路,因为以后经常会碰到。 下面打开Patched 5这款OD,选择主菜单项 中的Option-Just-in-time

文档评论(0)

@思念@ + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档