【问题标题】:How does Dotfuscator work?Dotfuscator 是如何工作的?
【发布时间】:2009-08-17 13:49:25
【问题描述】:

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

有什么东西可以阻止我的程序集被完全分解吗?

【问题讨论】:

    标签: c# .net obfuscation dotfuscator


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 确保您了解普通混淆和 PostBuild 具有的一些选项(如原生二进制支持)之间的区别。您失去了带有本机二进制文件的 .NET 框架的很多灵活性。
      • Xenocode 会影响程序的速度/大小吗?它是否将应用程序编译为 100% 本机二进制文件,也就是几乎不可能反编译?
      • 它会影响程序的速度/大小。来自 PostBuild 站点:“本机可执行文件生成:PostBuild 允许创建本机 x86 可执行文件,允许您的应用程序在安装或不安装 .NET Framework 的情况下运行。”您最终会得到与使用非托管 C++ 编写的应用程序无法区分的东西。但是,您将失去使用 .NET Framework 的所有可移植性优势。
      • 失去便携性..谁真的在乎呢?您只需为新平台重新编译,就像我们以前一样。
      • Xenocode 实际上是否将应用程序编译为本机代码?我认为它会加密具有所有依赖项的程序并将其打包到 .exe 文件中。在程序执行期间,它提取并执行相同的 .NET 程序集。我错了吗?
      【解决方案3】:

      您不能在 .net 中阻止反汇编


      【讨论】:

      • -1:你可以阻止反汇编,看看我的回答。使用 Xenocode PostBuild,您可以将 .NET 应用程序编译为本机二进制文件。
      • @Jon,那就不是.net了,重点是100%.net exe,你不能屏蔽它
      • OP 说“有什么东西可以阻止我的程序集完全分解吗?”答案是肯定的,有。
      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

            • 如果完成了,您可以使用 ILDASM 反汇编代码,然后删除“不显示我的代码”属性,然后将其返回 ILASM。反射器会让你现在看到它。 :)
            • Professional 或 Gold 还支持代码混淆,这使得代码非常难以阅读
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-11-19
            • 2013-08-29
            • 1970-01-01
            • 1970-01-01
            • 2019-10-04
            • 2018-06-29
            • 2017-07-24
            相关资源
            最近更新 更多