Detect 已经使用 .Net Reactor 混淆了

Detect is already obfuscated with .Net Reactor

我们有一个安装程序构建服务器,用于混淆和构建我们的 .Net 项目的安装文件。

当开发人员提交 dll 文件时,我们希望自动混淆。

但问题是;有时开发人员能够在提交之前进行混淆。 如果文件被混淆 2 次,则会导致错误。

因此,我们需要了解传入文件是否经过混淆。

我们正在使用 dotNET_Reactor.Console.exe 进行混淆。

那么我们如何才能检测到“.Net 程序集”已经被破坏了。

提前致谢。

Edit-Explanation: 感谢您对如此明确的问题给出的负分。 (for my previous question)

如果你不明白,让我解释一下。

我不知道我还能描述多少。

  1. 有一个名为 Net Reactor 的程序。
  2. 这个程序可以混淆 .Net 程序集文件(duh!)
  3. 一旦我们对文件进行混淆处理(如果该文件曾被混淆),该文件就会损坏。
  4. 因此,我们需要从程序上理解这一点。
  5. dotNET_Reactor.Console.exe 是用于此的命令行界面工具。
  6. 真不敢相信,这么明确的问题,我写了更多的解释。
  7. 我觉得这个解释是对在座各位的脑残。

来自 Eziris 的支持

Hello Fatih,

If you tell .NET Reactor to directly replace the original assembly with the protected one (parameter -targetfile "<AssemblyFileName>") it will create a special file (with file extension .hash). The next time you try to protect the already protected assembly again, .NET Reactor will automatically recognize that the assembly was already protected and closes the process without throwing an exception.

If you require further information, please let me know.

Thank you.

Best regards, -- Denis Mierzwiak Chief Technical Officer

EZIRIZ | www.eziriz.com support@eziriz.com

总结一下;使用 CLI 创建一个 .hash 文件。该文件不会出现在 GUI 中。此 .hash 文件可防止文件被混淆两次。

还有一种编程方式来检测是否对当前程序集应用了混淆:

    class ObfuscationCheck
    {
        internal static bool IsObfuscated()
        {
            return typeof(ObfuscationCheck).Name != "ObfuscationCheck ".Trim();
        }
    }