使用OllyDbg从零开始Cracking第二十八章-VisualBasic程序的破解-Part3.doc

使用OllyDbg从零开始Cracking第二十八章-VisualBasic程序的破解-Part3.doc

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

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

文档评论(0)

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

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

1亿VIP精品文档

相关文档