使用OllyDbg从零开始Cracking-28第二十八章-Visual Basic程序的破解-Part3.pdfVIP

使用OllyDbg从零开始Cracking-28第二十八章-Visual Basic程序的破解-Part3.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文档。上传文档
查看更多
第二十八章-Visual Basic程序的破解-P art3 破解VB程序的又一手法 本章我们的实现对象是CrackMe2。 运行起来我们可以看到一个NAG窗口,通过 上一章4C法我们可以很容易的剔除掉这个 NAG窗口,其中与序列号相关的一部分涉及 到了PCODE,等我们介绍到了PCODE的时候 再来讨论。 要找到这个CrackMe的序列号很简单,关键 是如何剔除这个NAG窗口,通过4C法我们可 以轻松的剔除掉NAG窗口,这里我就不再赘 述了,大家可以自行尝试。这里我们来介 绍另外一种方式。 首先我们来看看正确的序列号是多少。 我们单击Register按钮。 出现了注册窗口,我们随便输入一个错误 的序列号。 首先我们来看看是否是用__vbaStrCmp这 个函数来进行字符串比较的。 我们在命令栏中输入bp __vbaStrCmp。 接着按F9键运行起来,我们会发现会断下 来很多次,所以我们可以换种思路,从错误 提示入手,看看能不能在弹出错误提示框 的时候断下来,那么序列号的比较应该就 在附近了。现在我们删除刚刚对__vbaStr Cmp设置的断点,然后给弹出消息框的函数 rtcMsgBox 设置断点。 我们在命令栏中输入bp rtcMsgBox。 我们单击OK按钮。断在了rtcMsgBox的入 口处。我猜是提示输入的序列号错误。我 们来到堆栈窗口看看调用来至于哪里。 我们在反汇编窗口中定位到该返回地址处 。 好了,现在我们来到返回地址处,我们看看 前面几行有没有调用字符串比较之类的AP I函数。 我们可以看到前面的确有进行字符串比较 的API函数,我们给这处调用设置一个断点 ,我们按F9键运行起来,验证一下该处是不 是我们要找的。 断了下来,我们可以看到正在进行字符串 的比较,其中一个是我们输入的错误序列 号。另一个我这里是4887649,我们删除之 前的断点,在注册窗口中输入这个字符串 看看是否是正确的序列号。 我们可以看到的确是正确的序列号。 接下来,我们来尝试剔除这个NAG窗口。由 于我们可能需要修改这个CrackMe,所以我 们需要给这个CrackMe的代码段赋予写权 限,我们首先在数据窗口中定位400000地 址处。 我们切换为PE header模式显示。 往下我们可以看到PE Signature标志,我 们继续往下定位到第一个区段。 这里我们可以看到Characteristics字段, 我们将为其修改为E0000020的话,就可以 写入代码段了。 好了,现在我们将刚刚所做的修改保存到 文件。 另存为CrackMeA.exe p 我们用olly_parcheado_para_vb这个Patc h过的OD来加载这个CrackMeA。 接着给代码段设置内存访问断点(实际上 是内存执行断点)。 我们多按几次F9键运行起来就可以来到这 里。 我们继续按F9键运行,停在了熟悉的多分 支处,将会转向去执行程序的不同部分。 第一次,停在了407710处,将JMP到40BD80 地址处-程序将执行的第一部分,我们来看 看再次停在其他JMP分支之前会不会弹出N AG窗口,我们删除之前设置的内存访问断 点,接着给该多分支的各个JMP指令处都设 置断点。 我们来看看断在其他JMP指令之前会不会 弹出NAG窗口,运行起来。 我们可以看到断在了407759处,将跳转到4 0C470处,并没有弹出NAG窗口,我们继续运 行。 弹出了NAG窗口,说明是在40C470这个分支 中弹出的NAG窗口,我们单击Register按钮 。 断在了第二个JMP处,所以说NAG是在跳转 到40BDF0之前弹出的,我们直接跳过NAG窗 口。 我们将407759处的JMP 40C4F0修改为JMP 40BDF0看看会发生什么。 我们保存到修改到文件,然后直接运行起 来。 我们可以看到刚刚做的修改并没有剔除掉 NAG窗口,但是原本是需要我们单击NAG窗 口的Register按钮才会弹出注册窗口的, 现在是NAG窗口和注册窗口一起弹了出来 。 我们刚刚修改JMP指令并没有完全解决问 题,别无选择了,我们只能修改VB的DLL的, 很多人说我们不能修改系统库文件,会导 致其他程序不能用的,实际上我们可以将V B的库文件拷贝至跟待破解的目标文件同 一个 目录即可,那么修改了的VB库文件只 会的当前文件夹的目标文件起作用,操作 系统里的其他应用程序还是会继续使用sy stem3

文档评论(0)

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

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

1亿VIP精品文档

相关文档