在上一篇中我们介绍了如何使用XenoCode来加密程序,接下来我们将对加密后的程序进行逆向解密.

  1.工具准备:WinDbg(源码级调试工具),可以点击这里下载.

  2.运行上一篇中生成的WpfEventViewer_Builded.exe,打开系统任务管理器,

  

解密QQ概念版式加密

 

  我们看到WpfEventViewer_Builded.exe运行后的2个进程.其中一个是.Net程序进程(WpfEventViewer.exe).

  另一个是Xenocode进程(WpfEventViewer_Builded.exe).

  3.运行windbg_cn.exe

  按F6或从菜单栏--"文件"--"附加到进程(T)...", 如图,选择.Net程序进程(WpfEventViewer.exe)

  

解密QQ概念版式加密
解密QQ概念版式加密

 

  看需要选择是或否.这里选择了否.

  4.Dump过程

  在命令窗口输入以下语句.

  .loadby sos mscorwks

  紧接着输入:

  !DumpDomain

  命令运行后结果如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Assembly: 002c7468 [C:\Test\Soft\WpfEventViewer.exe]

  ClassLoader: 002c74d8

  SecurityDescriptor: 002a5b40

  Module Name

  01652c5c C:\Test\Soft\WpfEventViewer.exe

  ...

  Assembly: 002e8508 [C:\Test\Soft\WpfEventViewer.Controls.dll]

  ClassLoader: 002e8578

  SecurityDescriptor: 002a62b0

  Module Name

  016581bc C:\Test\Soft\WpfEventViewer.Controls.dll

  ...

  

解密QQ概念版式加密

 

  从得到的结果我们看到了.真正的WpfEventViewer.exe进程的模块代码为:01652c5c

  而其引用的类库WpfEventViewer.Controls.dll的模块代码为:016581bc

  5.导出文件.

  接下来就导出该模块.

  先在C盘建个Dump文件夹,然后在Windbg的窗口输入:

  !SaveModule 01652c5c C:\Dump\WpfEventViewer.exe.exe

  再到Dump文件夹查看,看到了吧,原来的167KB的程序文件被还原出来了.

  按照同样的方法将Skins.dll还原出来.

  !SaveModule 016581bc C:\Dump\WpfEventViewer.Controls.dll

  

解密QQ概念版式加密

 

   如此,本实例的2个文件就都被还原出来了.我们是看看能不能正常运行...看到了吧.是可以正常运行的.

  再把他们拉入Reflector.看,这时候,他们是能被Reflector查看的.但部分源码被混淆的厉害.

  

解密QQ概念版式加密

 

    至此,关于那个啥的反编译介绍到这里就结束了.如果大家有什么好的心得都可以拿出来分享哈~

本文来自piz菜的博客,原文地址:http://www.cnblogs.com/pizcai/archive/2010/11/24/1886979.html

相关文章: