8

Dotfuscator 是如何工作的?我尝试混淆我的一些类,并将方法/类重命名为 a、b、c 等。但我仍然可以看到这些方法中的代码?是不是,我做错了什么?

有什么东西可以阻止完全分解我的组件吗?

4

7 回答 7

13

代码混淆远远超出类、成员和变量的简单重命名,尽管这是其中的重要部分。

例如,Dotfuscator 使用一种称为重载归纳的专利技术,其中许多方法被重命名为相同的名称(只要它们具有不同的签名,这是可能的)。PreEmptive 解决方案引用了代码中三分之一的方法重命名为 a() 的情况。其他技术包括将简单的迭代重写为递归,以及代码变形

实际上,现代混淆技术完全足以使代码几乎不可能进行逆向工程,至少手工操作是这样。虽然 .NET 程序集原则上永远不可能是 RE 安全的,但混淆可以提供一个非常强大的障碍。

对于我们大多数人来说,这就足够了。

于 2009-08-17T14:24:38.463 回答
7

这就是它应该工作的方式。您的代码仍然可以访问,只是更难理解。如果您想要“更强大”的东西,请查看Xenocode PostBuild

于 2009-08-17T13:51:05.027 回答
4

你不能阻止.net中的反汇编


于 2009-08-17T13:51:37.960 回答
2

不幸的是,没有办法阻止有人反映您的程序集并将其分解为您的源代码。Dotfuscator 之类的混淆工具将使人们更难真正阅读反汇编代码,其中几乎所有人类可读的名称都可以被无意义的符号替换。

如果你在任何地方发布你的代码,如果有人有足够的决心,他们将能够对其进行逆向工程。你能做的最好的就是让他们不值得花时间这样做。

于 2009-08-17T13:59:27.047 回答
2

Visual Studio 附带的版本是有限的,如果您需要将某些东西部署到客户站点,我不会依赖它进行全面的混淆。您可能想查看一个免费的Eazfuscator.net

于 2009-08-17T14:18:49.610 回答
1

Dotfuscator 只是使反编译的源代码更难阅读 - 它不会阻止反编译本身。

于 2009-08-17T13:51:25.073 回答
1

如果您有 Professional 或 Gold Dotfuscator,您可以阻止 Reflector 程序打开您的程序集。

于 2009-08-17T13:58:42.757 回答