.NET混淆器 Dotfuscator使用教程三:保护你的应用之检查受保护的程序集
Dotfuscator是一款.NET混淆器和压缩器,防止你的应用程序被反编译。
本篇文章将继续上一篇文章与大家分享保护应用程序的第二个部分 - 检查受保护的程序集。
将Dotfuscator集成到项目中后,你应该验证集成后项目是否正常运行。你可能也很想知道Dotfuscator默认提供的保护是什么样的。
回答这些问题的最简单方法是在项目的程序集上使用****工具,将它们反编译回高级C#代码。你可以反编译本地构建的程序集(例如,在bin\Release中)以及应用程序安装程序设置的程序集。 有关如何反编译程序集的完整详细信息,请参阅反编译。
例如,考虑在集成Dotfuscator之前和之后对GettingStarted示例应用程序中的方法进行反编译:
无保护
默认保护(摘录)
我们可以清楚地理解未受保护的代码的意思,能看到它的名称,就像我们有源代码一样。但是,通过Dotfuscator的默认保护,简单的for循环已被Control Flow混淆转换为混乱的switch和goto语句。 另外,由于重命名混淆,方法的名称及其定义类型已被无意义的名称替换。
请注意,这只是Dotfuscator提供的默认保护。通过一些额外的配置,Dotfuscator可以在处理程序集时使反编译工具彻底崩溃:
默认保护(摘录)
增强保护
Dotfuscator还可以将Checks嵌入你的应用程序,该应用程序可在运行时检测并响应未经授权的使用。例如,调试检查可以检测调试器是否附加到你的生产应用程序,如果是,则终止应用程序。
有关配置这些以及其他更强大的保护形式的详细信息,请参阅增强保护(后续会与大家分享)。