本帖最后由 china豪 于 2015-3-18 20:09 编辑
今天给大家带来的是 [反汇编练习] 160个CrackMe之038
其实我觉得之前的crackMe还都算是一帆风顺。。。可是就是这个38。。。额。。。难倒我了。。。
然后我这几天又翻了翻《加密与解密》,正好看到其中的VB p-code(也就是俗称的VB伪编译)方面的知识。
看完之后。。。顿时觉得。。p-code好恶心。。我还是看了个云里雾里。。。
但是!就和最初学破解的时候。我们可能连汇编代码都没完全看懂。但是,我们知道一件事。。就是找到关键跳转,然后。。把跳转指令改成相反的,一般就不会错了!所以,今天就给大家带来这个160个CrackMe之038的新手爆破教程。。(请原谅水平有限,很多p-code机器码我也不认识。。所以无法做到追注册码神马的了。。但是这篇教程还是有点作用,可以给新手们长点知识。。)
那么首先介绍一点VB的知识。。(引自《加密与解密第三版》)
再介绍一点P-code机器码。。。(方便我们一会爆破!) 需要用到的工具:VBExplorer(这是一款静态分析VB程序的好工具!一会就能看到!) OD(用于修改程序) 教程开始: 1. 先复制粘贴一份CrackMe038(后面文中直接我就简称CM了。。。),因为用VBExplorer打开CM的时候OD就不能再打开CM了。所以直接复制一份,一个用VBExplorer打开,另一个用OD打开吧。 2.VBExplorer(后面简称VBE..)中定位到如图所示界面
3.我们可以很清楚的看到VBE标注的参考以及每条代码后面的类似汇编代码的参考指令(绿色字体)
4.我们看到关键跳转的后面有一条指令esi=0040E2C1应该是判断条件后跳转的地址,那我们就到那个地址继续分析
5. 中间还有几次跳转,我们都让实现(别忘了记录地址!后面在OD中修改要用到)
6. 到了关键的地方了!我们看到了正确的注册码的提示!这个跳转千万别改错了!
7.接下来进OD修改,OD中ctrl+G 粘贴第一个地址
8.改完之后,保存一下 打开输入name和KEY
悄悄的说:不知道为什么如果用户名和密码为空会出错。。。
教程完毕。。。请大牛们多多指点。。。有不对的地方请提出来。。。以免我误导大家。。。
|