---------------------------------
安装用:复制 CodeDoctor.dll 和 CodeDoctor.ini 到 OllyDbg/Plugins文件夹内
________________________________________________________________________________
历史:
0.90 - 公开发布 ________________________________________________________________________________*********************以下的说明是引用某大大的翻译,因为复制的时候忘记名字,在此表示歉意及感谢***********************
功能:1.反混淆
在反汇编窗口中选择并实行这条指令。它会尝试将垃圾指令中转换成为明确的指令。 举例: 原始指令:00874372 57 PUSH EDI
00874373 BF 352AAF6A MOV EDI,6AAF2A3500874378 81E7 0D152A41 AND EDI,412A150D
0087437E 81F7 01002A40 XOR EDI,402A000100874384 01FB ADD EBX,EDI
00874386 5F POP EDI 反混淆后:00874372 83C3 04 ADD EBX,4
2.反混淆-单步
这条指令的原理同上一条相似,不过它一次只剖析一条指令。 3.将nop置后 将这种形式的代码:00874396 50 PUSH EAX
00874397 90 NOP00874398 90 NOP
00874399 52 PUSH EDX0087439A BA 3F976B00 MOV EDX,somesoft.006B973F
0087439F 90 NOP008743A0 90 NOP
008743A1 90 NOP 转换为:00874396 50 PUSH EAX
00874397 52 PUSH EDX00874398 BA 3F976B00 MOV EDX,somesoft.006B973F
0087439D 90 NOP0087439E 90 NOP
0087439F 90 NOP008743A0 90 NOP
008743A1 90 NOP 限制:它会跳出所有跳转指令和call指令 4.取消/重新实行 取消或第三实行前一条指令 5.检索跳转功能 它会静态剖析指令并且跟踪所有些跳转指令。在程序不停地跳来跳去的场所下,这个功能是很有用的。当它遇见不可以跟踪的指令时,它会停止剖析,将所有已经剖析完毕的指令拷贝到一块指定的内存中去。 在设定中设置这类参数:步过所有些call-假如设置的话,它会步过所有些call。不然它会跟踪它们。
步过jcc-dtto(?)反混淆-在遇见Jcc,RET,JMP,CALL指令时,它会反混淆指令。在程序有多分支的时候很有用。
举例:
转换前:
00874389 /EB 05 JMP SHORT somesoft.008743900087438B |43 INC EBX
0087438C |41 INC ECX0087438D |42 INC EDX
0087438E |EB 07 JMP SHORT somesoft.0087439700874390 \B8 07000000 MOV EAX,7
00874395 ^ EB F4 JMP SHORT somesoft.0087438B00874397 C3 RET
转换后:
003B0000 B8 07000000 MOV EAX,7003B0005 43 INC EBX
003B0006 41 INC ECX003B0007 42 INC EDX
003B0008 C3 RET6.重建资源和重排列
此功能在脱壳时有一些限制。它从磁盘上打开被调试的文件。然后找到所有些资源并将它们重建到一块区段(目前它将资源重建到exe中的原始区段中)。然后它重新排列文件,以一个新的名字来保存文件。
什么时间此功能是有用的?举例来讲,在脱apack/asprotect或者其他一些壳的事后。这类壳会从原始区段中窃取一些资源,并且将它们放置到我们的区段中。由此会增加文件的大小,并且预防你去除壳的区段。同时它也预防了通过一些资源黑客软件看到这类资源。
我确信会有比这个插件更好的工具,不过将它整理进去有时是十分便捷的。
7.AsProctect脱壳此功能可以脱那些被asprotect加上壳的文件并且修复它们,导出asprotect.dll,将信息输出到txt文件中去。当此功能失败的时候,请提交目的文件给我。
限制:
1.没办法找到和修复SDK 1.x版本的函数(你需要手工探寻它们)此处有两种状况。一种是在OEP之前被调用的函数。它们进行一系列的初始化功能。假如它们不被实行,程序或许会提示失效。找到它们并实行它们:-)
第二种是在OEP之后实行的,通过特殊的参数隐藏在GetprocAddress之后,这类函数AsProtect将它们重新转向到了我们的代码中。你需要手工剖析这类代码。 2.在2.30-2.51中,有两种方法的窃取方法-一种为PolyOEP方法,还有一种是虚拟化。此功能只能修复前者。 3.不可以找到CRC校验或者外壳检查。不过此功能可以预防一类型型的外壳检查:在跳转到API的指令中探寻E8。 4.它不会解密被加密的部分或者区段。 5.它不会找到序列号,修补试用版等等。 6.假如有附加数据的话,在脱壳后或许会破损。 Bugs:不可以工作在在一些特定的1.10版本下,有空闲我会修复的。
注意:
在脱被Asprotect 2.X保护的文件时,你可能需要aspr_ide.dll。从aspack.com上获得它们,假如需要的话,进行修改。××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
文件说明:CodeDoctor.dll 主程序
TAG标签:加密解密(1)CodeDoctor(1)
转载请说明来源于绿色软件阁(http://www.naanver.com)
本文地址:http://www.naanver.com/soft/300.html
郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com