Dotfuscator是一个.NET的Obfuscator。它提供企业级的应用程序保护,大大下降了盗版、知识产权盗窃和篡改的风险。Dotfuscator的分层混淆、加密、水印、自动失效、防调试、防篡改、报警和防护技术,为世界各地成千上万的应用程序提供保护。算法
Dotfuscator提供了一种应用程序保护的多层方法。这些层中的每一层都提供了一个重要的总体保护策略。若是一层受到损害,其余层继续提供有效保护,使攻击者更难以实现其目标。而且不只有多个层,并且每一个层都具备比其余混淆产品使用的简单技术更强大的高级功能。性能
从本文开始咱们一块儿了解Dotfuscator如何对应用程序进行多层保护,层层递进,大体可分为:测试
Dotfuscator的工做原理是修改反编译器用来从新建立源代码的代码模式。Dotfuscator引入了错误的条件语句和其余具备误导性的构造,以混淆和破坏反编译器。这个过程综合了分支、条件和迭代构造,这些构造产生有效的正向(可执行)逻辑,可是在尝试反编译时产生不肯定的语义结果。设计
除了添加代码构造以外,Dotfuscator还破坏反编译器用于从新建立源代码的代码模式。最终获得的代码在语义上与原始代码等价,但不包含关于代码最初是如何编写的线索。该特性的目标是防止MSIL自动反编译回高级源代码。最终用户仍然能够查看MSIL自己,但要彻底理解它并对其功能进行较大的更改就比较困难了。调试
例如:cdn
以前blog |
以后教程 |
![]() |
![]() |
▲限制游戏
在控制流混淆以后测试应用程序性能是很重要的,特别是任何执行了不少次的代码(例如游戏循环或计算/算法密集型方法)。
控制流混淆只有在方法包含足够多的基本块时才能有效地击败反编译器。
▲排除
控制流排除与重命名排除以相同的方式工做,包括特定的排除和自定义规则。然而,控制流除外仅适用于方法。若是用户在测试过程当中发现性能降低,那么应该将排除应用到执行计算密集型工做的任何方法或类(基本上是CPU是性能限制因素的任何状况)。
▲选项
High是惟一设计用来击败自动反编译器的关卡。若是高致使性能降低而不能经过排除来解决,则可使用中值或低值,若是控制流被认为是致使运行时错误的缘由,则可使用中值或低值进行调试。
若是你有任何问题或意见,可在下方评论区留言,点击资源列表查看更多教程资源~