鉴于OD在Delphi反汇编这一块的薄弱,狠狠研究了下当前的手段。
大家常用的反编译除了OD(ollydebug)、IDA,还有Delphi用的Dede,C#用的NetReflector,还有几个跟踪易语言的。其实反汇编的利器还有很多,在吾爱云盘中收录了:
AS3.Sorcerer.v2.72.CracKed.By.REPT.7z 28-Mar-2014 10:59 5M C32Asm.rar 28-Dec-2013 14:52 1M DJ.Java.Decompiler.v3.12.12.96-CRD.rar 28-Dec-2013 14:53 7M Hex-Rays.IDA.Pro.Advanced.v6.1.rar 28-Dec-2013 14:53 106M Hopper Disassembler v2.7.13 For Windows.rar 28-Dec-2013 14:52 26M IDA Pro Advanced 5.5 with Hex-Rays 1.1.rar 28-Dec-2013 14:52 88M IDR (Interactive Delphi Reconstructor).rar 28-Dec-2013 14:52 54M SWFDecompiler.rar 28-Dec-2013 14:52 12M VB.Decompiler.Pro.v8.3.RETAIL.INCL_KEYGEN+PATCH..> 28-Dec-2013 14:53 6M VB.Decompiler.Pro.v9.2.RETAIL.BY-1ST.INCL_KEYGE..> 28-Dec-2013 14:52 5M Yogda.1.0.564.zip 28-Dec-2013 14:52 4M
我们可能不是总能用到,但是遇到一些不常见的程序时,他们往往能排上大用处。
这次要用到的就是IDR,它和xxx(忘了,明天补上)都是针对Delphi反编译的利器,相对于Dede对于高版本Delphi的无力,他们两个就算是很强大了!在网上搜索发现,IDR有专门的网站,并且最近做了一次更新,所以,毫无疑问地选择了它。
新版本下载地址:http://pan.baidu.com/s/1xUWOY 密码: jbnq 文件名为:IDR_exe.7z
程序界面如下:
这里我们接着使用IDR分析ajj.2脱壳后的程序。
首先,直接将脱壳后的CKme002.exe拖到IDR界面上,提示:use native knowledge base? 直接点【是】,然后等待它分析完毕。
双击左侧列表中最后的CKme单元,在下面的框中会出现这个单元所有的事件和特殊信息,双击每行就可以在右上侧看到反汇编信息。在列表中我们可以看 到TForm1.FormCreate的窗体创建信息,TForm1.Button1MouseDown按钮1的鼠标按下消息等….
我们可以随意查看,当看到 CKme::TForm1.Edit2DblClick 你是不是觉得很可疑?
IDR反汇编信息如下(代码比较多,只给出部分):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
代码和OD很像,Call部分都有相应的函数替换,我们在OD中加载,然后Ctrl+G, 输入这段代码的开始地址:00446FF8,下断,然后…
然后怎么让他触发功能,断下呢?
不知大家还记得不?之前在Dede可以看到两个编辑框,而这里只有一个显示出来了,正好我们想要就是那个被隐藏的。好吧,我们第一件事就是将隐藏的Edit2显示出来。
怎么做呢?
刚才我们看到的第一个事件:TForm1.FormCreate,随便翻翻,就可以发现有好几个与Edit2相关的
1 2 3 4 5 6 7 |
|
代码中每次Call之前都进行了xor edx,edx将edx的值清零,这里与其他显示的控件mov edx,1特别可疑,我们在2个xor edx,edx下面的mov下断,Ctrl+F2 重新加载程序,在OD右侧修改edx的值为1,F9运行,再次修改下一个。再看看界面,Edit2是不是已经出来了?
我们再回到Edit2双击事件那里,分析下代码,然后找到头地址:00446FF8,在OD中对照IDR中的反汇编,进行F8单步调试。其中Delphi文本处理函数反汇编说明见网址:http://www.cnblogs.com/bbdxf/p/3787684.html 。分析之后的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
|
第一个编辑框Edit1不知道有什么要求,Edit2要求第二个字符为’_’,第六个字符为’,’,字符长度为8,别的都无要求。
继续分析别的事件,。。。。
无收获。。。
难道只能爆破??
破解之Delphi专辑