Dotfuscator如何工作?我试着对我的一些类进行模糊处理,并将方法/类重命名为a,b,c等。但是我仍然可以看到这些方法中的代码?是这样,我做错了什么?
有没有什么可以防止完全阻止我的装配?
答案 0 :(得分:13)
代码混淆远不止简单地重命名类,成员和变量,尽管这是它的一个重要部分。
例如,Dotfuscator使用称为过载归纳的专利技术,其中许多方法被重命名为同名(只要它们具有不同的签名,这是可能的) 。 PreEmptive解决方案引用了代码中所有方法的三分之一被重命名为a()的情况。其他技术涉及将简单迭代重写为递归,以及code morphing。
实际上,现代混淆技术完全足以使代码几乎不可能进行逆向工程,至少是手工操作。虽然.NET程序集在原则中永远不能是,但是混淆可以提供相当强大的障碍。
对于我们大多数人来说,这已经足够了。
答案 1 :(得分:7)
这就是它的工作方式。您的代码仍然可访问,更难以理解。如果你想要“更强”的东西,请看看Xenocode PostBuild。
答案 2 :(得分:4)
你无法阻止.net中的解组装
答案 3 :(得分:2)
不幸的是,没有办法阻止有人反映您的程序集并将其分解为您的源代码。像Dotfuscator这样的混淆工具会让某些人更难以真正阅读反汇编的代码,几乎所有人类可读的名称都可以用无意义的符号代替。
如果您要在任何地方发布代码,如果某人有足够的决心,他们就可以对其进行逆向工程。你能做的最好的事情就是不值得花时间去做。
答案 4 :(得分:2)
Visual Studio附带的版本是有限的,如果您需要将某些内容部署到客户站点,我不会依赖它来进行全面混淆。您可能想要查看的免费版本是Eazfuscator.net。
答案 5 :(得分:1)
Dotfuscator简单地使反编译源更难以阅读 - 它不会阻止反编译本身。
答案 6 :(得分:1)
如果你有Professional或Gold Dotfuscator,你可以阻止Reflector程序打开你的装配。