NET程序加壳说明
C#及VBNET开发的程序容易被反编译,所以要达到一个很好的加密效果,除了在源代码中检查加密狗(加密锁),或将程序部分代码放到加密狗(加密锁)中运行外,还强烈进行混淆及加壳,且建议用多种工具结合使用,这样才会安全,否则就很容易被反编译或反混淆。
对NET程序进行加密时需要用到以下四个工具:
-
Xenocode混淆工具
-
NETUnpack工具
-
NET Reactor工具
-
外壳加密工具10
加密流程如下:
1. 用Xenocode对要加密地程序进行混淆,生成混淆后假设名字为“X”的程序, 如下:
-
运行Xenocode后,“Application”页中点“Add”添加要混淆的文件,如图:
-
-
“Application”页中“Preset” 设置中选中第二项:“Aggressive …. ”,如图:
-
-
“Protect”页中的“Coltrol flow Obfuscation” 选项中,设置为“4”,如图:
-
-
“Optimize”页中保持默认,如图:
-
-
“Virtualize”页中选中“Enable”,如图:
-
-
{zh1}在输出页中,点“BuildApplication”,如图:
-
2. 混淆后假设名字为“X”的程序是封装成WIN32的NET程序,我们需要得到没有封装前的NET程序,所以接着做释出未封装前的NET程序的操作,运行X程序,再运行NETUnpack工具,如下:
-
运行混淆后假设名字为“X”的程序后,用NETUnpack工具进行释出,如图:
-
-
使用NETUnpack释出后的程序假设名字为:U-X
-
这时释出来的U-X程序是不能运行的,运行会报错,我们需要将它重新封装起来
3. 使用NET Reactor对U-X程序进行重新封装并加密后,生成程序R:
-
运行Net reactor,然后点open打开要转换的文件:
-
-
转换一定要选中以下选项:
-
-
其中“Native ExeFile”, “Pre-JITMethods”要选中EXE文件后,才可以出现
-
其它选项,也可以选中(建议选中),不过其它选项,选中后,一定要测试一下,看是否可以运行,如果不能运行,可以将某些选项去掉,但前面的三个选项不能去掉
-
然后点进行转换,
-
-
转换成功后,点打开转换后的文件
4. 用外壳加密工具10对程序R,再加密,生成{zh1}可发行的程序。
-
加密时要用加密方式一,
-
-
如果转换后可以运行,加密后不能运行,可以改用壳二就可以了: