在 .Net程序加密的原理及解密探讨三(实例解密) 一文中我们介绍了反射,
主要提到三个函数
DumpAssembly,DumpType, DumpMethod。
这里我们将就 DumpMethod 这个函数讨论。
阅读全文……
Net内存程序集通用脱壳机实现原理(二、反射以及重建方法头) [ 2006-11-15 | 原创作品 | rick@博客园 ]
Net内存程序集通用脱壳机实现原理(一注入) [ 2006-11-02 | 原创作品 | rick@博客园 ]
正如前面提到的DotNet 程序的脱壳和普通PE文件的脱壳是有密切关系的。
传统PE文件dump大部分都是进程外dump,这里我们介绍的DotNet程序集的脱壳
使用进程内dump。
所以第一步就是注入问题,如何让我们的程序在目标进程内运行?
阅读全文……
传统PE文件dump大部分都是进程外dump,这里我们介绍的DotNet程序集的脱壳
使用进程内dump。
所以第一步就是注入问题,如何让我们的程序在目标进程内运行?
阅读全文……
实现自动脱壳被加密的Net程序集 [ 2006-10-28 | 原创作品 | rick@博客园 ]
IL字节码解码工具更新 V2.0 [ 2006-10-27 | 原创作品 | rick@博客园 ]
IL字节码解码工具更新 V1.85 [ 2006-10-23 | 原创作品 | rick@博客园 ]
MaxToCode 对.Net程序加密的原理及解密探讨五(元数据还原以及IL解码的改进) [ 2006-10-14 | 原创作品 | rick@博客园 ]
前一回讲了 IL字节码的解码问题,并提供了一个小工具,但解码的效果和 ildasm还是差很多,给阅读也带来了一些困难。
还有就是有些文件选择文件后解码会出错,这是因为maxtocode对文件里面的元数据进行了随机加密。
这一回主要解决元数据的还原以及对解码进行改进。
阅读全文……
还有就是有些文件选择文件后解码会出错,这是因为maxtocode对文件里面的元数据进行了随机加密。
这一回主要解决元数据的还原以及对解码进行改进。
阅读全文……
MaxToCode 对.Net程序加密的原理及解密探讨四(翻译IL字节码) [ 2006-09-29 | 原创作品 | rick@博客园 ]
在前面几章我们已经能够去掉被加密程序原始的IL字节码了。
这些字节码是十六进制的,人脑直接来阅读是非常困难的。
这一章主要介绍将字节码翻译成 可阅读的 MSIL 汇编代码,以及前几章的遗留问题解决。
阅读全文……
这些字节码是十六进制的,人脑直接来阅读是非常困难的。
这一章主要介绍将字节码翻译成 可阅读的 MSIL 汇编代码,以及前几章的遗留问题解决。
阅读全文……
MaxToCode对.Net程序加密的原理及解密探讨三(实例解密) [ 2006-09-28 | 原创作品 | rick@博客园 ]
上一回我们试验了通过反射的方式获取method的源代码。
这次我们就用一个实例来演示dump一个程序集中的所有类型和方法的IL源代码。
首先打开VS2005 新建一个C#的windows程序:
在窗体添加添加一个2个 button,2个label,一个textbox,一个 checkbox,一个savefiledialog。
阅读全文……
这次我们就用一个实例来演示dump一个程序集中的所有类型和方法的IL源代码。
首先打开VS2005 新建一个C#的windows程序:
在窗体添加添加一个2个 button,2个label,一个textbox,一个 checkbox,一个savefiledialog。
阅读全文……
MaxToCode对.Net程序加密的原理及解密探讨二 [ 2006-09-14 | 原创作品 | rick@博客园 ]
自上次写第一篇文章到现在不知不觉两个月过去了,这篇文章我们将介绍怎么获取解密后的IL字节代码。
我们先回顾一下前文,在上一回我们提到“InFaceMaxtoCode.Startup 正常启动后,在整个程序集中只会运行一次。”。
当时这种说法是很武断的,如果 “InFaceMaxtoCode.C______(num2, num3)” 的返回值总是 false的话,该函数就会被执行多次,
不过根据后来动态调试的结果,我们证实了“InFaceMaxtoCode.C______(num2, num3)” 的返回值为 true,因此上次的说法是正确的。
阅读全文……
我们先回顾一下前文,在上一回我们提到“InFaceMaxtoCode.Startup 正常启动后,在整个程序集中只会运行一次。”。
当时这种说法是很武断的,如果 “InFaceMaxtoCode.C______(num2, num3)” 的返回值总是 false的话,该函数就会被执行多次,
不过根据后来动态调试的结果,我们证实了“InFaceMaxtoCode.C______(num2, num3)” 的返回值为 true,因此上次的说法是正确的。
阅读全文……
MaxToCode对.Net程序加密的原理及解密探讨一 [ 2006-07-17 | 原创作品 | rick@博客园 ]
这里研究的对象是MaxToCode3.1试用版.这里只探讨程序代码的加密.
对.Net程序代码的加密过程如下:
1. 运行 ildasm 将程序集反编译成 il代码文件.
2. 对IL代码文件进行处理.(*)
3. 运行 ilasm 将 IL代码文件编译成程序文件.
4. 直接对程序文件中的il字节码加密.(**)
阅读全文……
对.Net程序代码的加密过程如下:
1. 运行 ildasm 将程序集反编译成 il代码文件.
2. 对IL代码文件进行处理.(*)
3. 运行 ilasm 将 IL代码文件编译成程序文件.
4. 直接对程序文件中的il字节码加密.(**)
阅读全文……