CodeDoctor v0.90 汉化版

CodeDoctor v0.90 汉化版

  • 版本: v0.90 汉化版
  • 分类:加密解密
  • 大小: 793KB
  • 时间:2022-12-12
  • 软件介绍
  • 软件截图
介绍

CodeDoctor会静态分析指令并且跟踪所有的跳转指令。在程序不停地跳来跳去的场合下,这个功能是非常有用的。当它遇到不能跟踪的指令时,它会停止分析,将所有已经分析完毕的指令拷贝到一块指定的内存中去

使用方法

功能介绍

1.反混淆

在反汇编窗口中选择并执行这条指令。它会尝试将垃圾指令中转换成为清晰的指令。

举例:

原始指令:

00874372 57 PUSH EDI

00874373 BF 352AAF6A MOV EDI,6AAF2A35

00874378 81E7 0D152A41 AND EDI,412A150D

0087437E 81F7 01002A40 XOR EDI,402A0001

00874384 01FB ADD EBX,EDI

00874386 5F POP EDI

反混淆后:

00874372 83C3 04 ADD EBX,4

2.反混淆-单步

这条指令的原理同上一条相似,不过它一次只分析一条指令。

3.将nop置后

将这种形式的代码:

00874396 50 PUSH EAX

00874397 90 NOP

00874398 90 NOP

00874399 52 PUSH EDX

0087439A BA 3F976B00 MOV EDX,somesoft.006B973F

0087439F 90 NOP

008743A0 90 NOP

008743A1 90 NOP

转换为:

00874396 50 PUSH EAX

00874397 52 PUSH EDX

00874398 BA 3F976B00 MOV EDX,somesoft.006B973F

0087439D 90 NOP

0087439E 90 NOP

0087439F 90 NOP

008743A0 90 NOP

008743A1 90 NOP

限制:它会跳出所有跳转指令和call指令

4.取消/重新执行

取消或再次执行前一条指令

5.检索跳转功能

它会静态分析指令并且跟踪所有的跳转指令。在程序不停地跳来跳去的场合下,这个功能是非常有用的。当它遇到不能跟踪的指令时,它会停止分析,将所有已经分析完毕的指令拷贝到一块指定的内存中去。

在设定中设置这些参数:

步过所有的call-如果设置的话,它会步过所有的call。否则它会跟踪它们。

步过jcc-dtto(?)

反混淆-在遇到Jcc,RET,JMP,CALL指令时,它会反混淆指令。在程序有多分支的时候非常有用。

举例:

转换前:

00874389 /EB 05 JMP SHORT somesoft.00874390

0087438B |43 INC EBX

0087438C |41 INC ECX

0087438D |42 INC EDX

0087438E |EB 07 JMP SHORT somesoft.00874397

00874390 \B8 07000000 MOV EAX,7

00874395 ^ EB F4 JMP SHORT somesoft.0087438B

00874397 C3 RET

转换后:

003B0000 B8 07000000 MOV EAX,7

003B0005 43 INC EBX

003B0006 41 INC ECX

003B0007 42 INC EDX

003B0008 C3 RET

6.重建资源和重排列

此功能在脱壳时有一些限制。它从磁盘上打开被调试的文件。然后找到所有的资源并将它们重建到一块区段(当前它将资源重建到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 主程序

CodeDoctor使用方法

CodeDoctor功能介绍

1.反混淆 

在反汇编窗口中选择并执行这条指令。它会尝试将垃圾指令中转换成为清晰的指令。 

举例: 

原始指令: 

00874372 57 PUSH EDI 

00874373 BF 352AAF6A MOV EDI,6AAF2A35 

00874378 81E7 0D152A41 AND EDI,412A150D 

0087437E 81F7 01002A40 XOR EDI,402A0001 

00874384 01FB ADD EBX,EDI 

00874386 5F POP EDI 

反混淆后: 

00874372 83C3 04 ADD EBX,4 

2.反混淆-单步 

这条指令的原理同上一条相似,不过它一次只分析一条指令。 

3.将nop置后 

将这种形式的代码: 

00874396 50 PUSH EAX 

00874397 90 NOP 

00874398 90 NOP 

00874399 52 PUSH EDX 

0087439A BA 3F976B00 MOV EDX,somesoft.006B973F 

0087439F 90 NOP 

008743A0 90 NOP 

008743A1 90 NOP 

转换为: 

00874396 50 PUSH EAX 

00874397 52 PUSH EDX 

00874398 BA 3F976B00 MOV EDX,somesoft.006B973F 

0087439D 90 NOP 

0087439E 90 NOP 

0087439F 90 NOP 

008743A0 90 NOP 

008743A1 90 NOP 

限制:它会跳出所有跳转指令和call指令 

4.取消/重新执行 

取消或再次执行前一条指令 

5.检索跳转功能 

它会静态分析指令并且跟踪所有的跳转指令。在程序不停地跳来跳去的场合下,这个功能是非常有用的。当它遇到不能跟踪的指令时,它会停止分析,将所有已经分析完毕的指令拷贝到一块指定的内存中去。 

在设定中设置这些参数: 

步过所有的call-如果设置的话,它会步过所有的call。否则它会跟踪它们。 

步过jcc-dtto(?) 

反混淆-在遇到Jcc,RET,JMP,CALL指令时,它会反混淆指令。在程序有多分支的时候非常有用。 

举例: 

转换前: 

00874389 /EB 05 JMP SHORT somesoft.00874390 

0087438B |43 INC EBX 

0087438C |41 INC ECX 

0087438D |42 INC EDX 

0087438E |EB 07 JMP SHORT somesoft.00874397 

00874390 \B8 07000000 MOV EAX,7 

00874395 ^ EB F4 JMP SHORT somesoft.0087438B 

00874397 C3 RET 

转换后: 

003B0000 B8 07000000 MOV EAX,7 

003B0005 43 INC EBX 

003B0006 41 INC ECX 

003B0007 42 INC EDX 

003B0008 C3 RET 

6.重建资源和重排列 

此功能在脱壳时有一些限制。它从磁盘上打开被调试的文件。然后找到所有的资源并将它们重建到一块区段(当前它将资源重建到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版本下,有时间我会修复的。 

CodeDoctor注意事项

在脱被Asprotect 2.X保护的文件时,你可能需要aspr_ide.dll。从aspack.com上获得它们,如果需要的话,进行修改。 

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× 

文件说明: 

CodeDoctor.dll 主程序

展开
软件截图