在将程序集集成到MSI之前对程序集进行模糊处理

时间:2009-02-22 22:03:32

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

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

谢谢!

5 个答案:

答案 0 :(得分:1)

使用Finalbuilder等构建工具自动完成此过程。

例如构建程序集,然后对它们进行模糊处理,最后构建安装项目。

答案 1 :(得分:1)

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

您需要做的就是在解决方案中添加一个新的Dotfuscator项目,将其他项目的输出添加为Dotfuscator项目的输入(使用Add Assembly / Add Project Output功能),设置任何必要的模糊处理设置和然后将您的安装项目的输入更改为Dotfuscator项目。当您现在构建解决方案时,您的代码文件将被编译然后进行模糊处理,然后传递到安装项目以构建到MSI中。

答案 2 :(得分:0)

混淆器需要支持MSBuild集成才能工作,因此编译器的构建输出可以进行模糊处理并作为输入传递给MSI项目。

Crypto Obfuscator就是这样一种支持这种情况的工具。

答案 3 :(得分:0)

Eazfuscator.NET专门用于处理此类情况。要在汇编到MSI之前对汇编进行模糊处理,请执行以下操作:

  1. 将您的装配项目放在Eazfuscator.NET Assistant的绿色区域中 Drag and drop the project from Visual Studio to Eazfuscator.NET Assistant
  2. 你完成了。每次在 "vAxis": { format: function(value){ return $filter('customFilter')(value) } } 配置中构建解决方案时,程序集现在都会自动进行模糊处理并捆绑到MSI包中。
  3. 其他一些混淆器也处理这个问题。例如,Dotfuscator为Visual Studio提供了模糊项目类型,您可以在其中定义输入和输出,从而形成构建管道。管道可以获取装配项目的输出,对其进行模糊处理,然后将其传递给安装项目。

答案 4 :(得分:-1)

我会考虑使用WiX或类似的东西(其他一些构建工具)来创建MSI文件。您可以使用Windows工具反编译MSI,然后进行模糊处理,并将它们放回MSI中。

另一种选择是在构建过程中添加模糊处理工具。我用CodeVeil做了这个帖子。如果你可以将它分支到所有项目的Post Build步骤,没有设置项目(最后构建),你应该能够做到这一点。如果没有对安装项目进行大量工作,我不确定这是否有效,但我认为它没有理由不起作用。