欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
未知 Net内存程序集通用脱壳机实现原理(二、反射以及重建方法头)   [ 2006-11-15  | 原创作品  |  rick@博客园 ]
.Net程序加密的原理及解密探讨三(实例解密)  一文中我们介绍了反射,
主要提到三个函数
 DumpAssembly,DumpType, DumpMethod。

这里我们将就 DumpMethod 这个函数讨论。


阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:3162
未知 Net内存程序集通用脱壳机实现原理(一注入)   [ 2006-11-02  | 原创作品  |  rick@博客园 ]
正如前面提到的DotNet 程序的脱壳和普通PE文件的脱壳是有密切关系的。
传统PE文件dump大部分都是进程外dump,这里我们介绍的DotNet程序集的脱壳
使用进程内dump。

所以第一步就是注入问题,如何让我们的程序在目标进程内运行?


阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:3305
未知 实现自动脱壳被加密的Net程序集   [ 2006-10-28  | 原创作品  |  rick@博客园 ]
本次脱壳的测试对象是CodeLib 2 V14.9.2468.42911 更新日期是2006-10-5 目前的最新版本。

运行脱机程序到如下界面:




阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:7479
未知 IL字节码解码工具更新 V2.0   [ 2006-10-27  | 原创作品  |  rick@博客园 ]
IL字节码解码工具更新 V2.0

V2.0 增加对 mdTypeSpec 的解析。

下载地址:


阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:3702
未知 IL字节码解码工具更新 V1.85   [ 2006-10-23  | 原创作品  |  rick@博客园 ]
v1.85
+支持nested class的全名解析
v1.8
+支持 字段,和方法的签名解析。



阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:5091
前一回讲了 IL字节码的解码问题,并提供了一个小工具,但解码的效果和 ildasm还是差很多,给阅读也带来了一些困难。
还有就是有些文件选择文件后解码会出错,这是因为maxtocode对文件里面的元数据进行了随机加密。
这一回主要解决元数据的还原以及对解码进行改进。


阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:3926
未知 MaxToCode 对.Net程序加密的原理及解密探讨四(翻译IL字节码)   [ 2006-09-29  | 原创作品  |  rick@博客园 ]
在前面几章我们已经能够去掉被加密程序原始的IL字节码了。
这些字节码是十六进制的,人脑直接来阅读是非常困难的。
这一章主要介绍将字节码翻译成 可阅读的 MSIL 汇编代码,以及前几章的遗留问题解决。
 



阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:3516
未知 MaxToCode对.Net程序加密的原理及解密探讨三(实例解密)   [ 2006-09-28  | 原创作品  |  rick@博客园 ]
上一回我们试验了通过反射的方式获取method的源代码。
这次我们就用一个实例来演示dump一个程序集中的所有类型和方法的IL源代码。

首先打开VS2005 新建一个C#的windows程序:
在窗体添加添加一个2个 button,2个label,一个textbox,一个 checkbox,一个savefiledialog。


阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:4561
未知 MaxToCode对.Net程序加密的原理及解密探讨二   [ 2006-09-14  | 原创作品  |  rick@博客园 ]
自上次写第一篇文章到现在不知不觉两个月过去了,这篇文章我们将介绍怎么获取解密后的IL字节代码。
我们先回顾一下前文,在上一回我们提到“InFaceMaxtoCode.Startup 正常启动后,在整个程序集中只会运行一次。”。
当时这种说法是很武断的,如果 “InFaceMaxtoCode.C______(num2, num3)” 的返回值总是 false的话,该函数就会被执行多次,
不过根据后来动态调试的结果,我们证实了“InFaceMaxtoCode.C______(num2, num3)” 的返回值为 true,因此上次的说法是正确的。



阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:5507
未知 MaxToCode对.Net程序加密的原理及解密探讨一   [ 2006-07-17  | 原创作品  |  rick@博客园 ]
这里研究的对象是MaxToCode3.1试用版.这里只探讨程序代码的加密.

 
对.Net程序代码的加密过程如下:

1. 运行 ildasm 将程序集反编译成 il代码文件.
2. 对IL代码文件进行处理.(*)
3. 运行 ilasm 将 IL代码文件编译成程序文件.
4. 直接对程序文件中的il字节码加密.(**)

阅读全文……
作者:rick  | 分类:原创作品  | 评论:0  | 引用:0  | 查看:7461

PoweredBy R-Blog V1.00 © 2004-2024 WWW.RICKW.CN, Processed in second(s) , 4 queries    京ICP备17058477号-5