【问题标题】:Obfuscating assemblies before they get integrated to the MSI在将程序集集成到 MSI 之前对其进行混淆
【发布时间】:2009-02-22 22:03:31
【问题描述】:

我有一个包含安装项目的 VS.NET 2008 解决方案。此安装项目获取我的其他项目(在同一解决方案中)的输出并生成 MSI。到目前为止,一切都很好......我希望 MSI 中包含的程序集被混淆。这种混淆本身很简单,但是如何将这个前置步骤(混淆)引入 MSI 构建?有人有想法吗?

谢谢!

【问题讨论】:

    标签: .net-3.5 installation windows-installer obfuscation


    【解决方案1】:

    使用Finalbuilder 等构建工具自动执行此过程。

    例如构建程序集,然后对其进行混淆,最后构建设置项目。

    【讨论】:

      【解决方案2】:

      如果您使用的是 Dotfuscator Professional,则可以轻松实现这一点,因为它附带了一个 Visual Studio 项目,该项目会在安装时添加到您的系统中。

      您需要做的就是向您的解决方案添加一个新的 Dotfuscator 项目,将其他项目的输出添加为 Dotfuscator 项目的输入(使用添加程序集/添加项目输出功能),设置任何必要的混淆设置和然后将设置项目的输入更改为 Dotfuscator 项目。现在,当您构建解决方案时,您的代码文件会被编译、混淆,然后交给安装项目以构建到 MSI 中。

      【讨论】:

        【解决方案3】:

        混淆器需要支持 MSBuild 集成才能工作,以便编译器的构建输出可以被混淆并作为输入传递给 MSI 项目。

        Crypto Obfuscator 就是支持此类场景的工具之一。

        【讨论】:

          【解决方案4】:

          Eazfuscator.NET 专为处理此类情况而设计。要在您的程序集进入 MSI 之前对其进行模糊处理,只需执行以下操作:

          1. 将您的程序集项目放到 Eazfuscator.NET Assistant 的绿色区域
          2. 你已经完成了。现在,每次在 Release 配置中构建解决方案时,程序集都会自动混淆并捆绑到您的 MSI 包中。

          其他一些混淆器也处理这个问题。例如,Dotfuscator 为 Visual Studio 提供了混淆项目类型,您可以在其中定义输入和输出,从而形成构建管道。管道可以获取组装项目的输出,对其进行混淆,然后将其传递给设置项目。

          【讨论】:

            【解决方案5】:

            我会考虑使用 WiX 或类似的东西(一些其他构建工具)来创建 MSI 文件。可以使用windows工具反编译MSI,然后混淆,放回MSI中。

            另一种选择是在构建过程中添加混淆工具。我已经用 CodeVeil 完成了这篇文章的构建。如果您可以将其分支到所有项目的 Post Build 步骤中,无需设置项目(最后构建),您应该能够做到这一点。由于没有大量使用设置项目,我不确定这是否会起作用,但我认为它没有理由不起作用。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-05-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多