dotNET Reactor 是一款优秀的用于.NET程序集的加密加压混淆器,正是它本身加密性也很好,所以一直还没有人对它汉化过,不过2.6.4版还可以用NETUnpack脱壳。
dotNET Reactor 是一款强大的 .NET 代码保护和授权管理系统,安全可靠、简单易用,主要用来帮助开发人员保护他们的 .NET 软件产品。开发人员从此不必担心如何保护他们的知识产权,可以将更多精力放在产品功能的开发上。
与代码混淆工具(Obfuscator)相比,.NET Reactor 可以完全阻止对 .NET 程序集(由 C#, VB.NET, Delphi.NET, J#, MSIL… 等语言编写)的反编译。通俗的讲,.NET Reactor 在破解者和您的 .NET 代码之间构建了强大的防破解保护屏障,生成一个基于 Windows 的而不是基于MSIL 的兼容格式文件。原始的 .NET 代码完整的封装在本地代码内,无论何时都不会释放到硬盘,对于破解者是不可见的,目前还没有任何工具可以反编译 .NET Reactor 保护过的程序集。
.NET具有较多的优点,如:标准集成,简化应用,对移动设备的支持等。但使用.NET编写的程序有个致命的缺点:易被反编译,且运行时占用较大的资源。
如在开发中需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码。
.NET程序反编译:
1. 运行ildasm是由微软提供的.NET程序反编译工具,位于“C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\”。
2. 用ildasm打开要修改的程序集,如下图:
3. 通过ildasm转储保存为IL文件.--选择菜单File>Dump,选择UTF-8编码,如下图:
4. 用文本编辑器打开第3步中得到的.il文件,如下图:
5. 修改.il文件中的代码并保存
6. 用ilasm(MSIL汇编程序)将.il文件编译为.dll文件
ilasm位于相应的.NET Framework目录中,比如:C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
在命令行中执行下面的命令:
ilasm 源文件.il /output=目标文件.dll /dll
7. 完成。
因此,为了更好的体现.NET的优势,我们必须对在.NET下编写的程序进行优化;与此同时,为了所编程序不被反编译,必然要实施有效可行的安全策略。