我有一个VS.NET 2008解决方案,其中包含一个安装项目。此安装项目获取我的其他项目的输出(在相同的解决方案中)并生成MSI。到目前为止,这么好......我希望MSI中包含的程序集被混淆。这种混淆本身很简单,但是如何将此前步骤(混淆)引入MSI构建?有人有想法吗?
谢谢!
答案 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之前对汇编进行模糊处理,请执行以下操作:
"vAxis": {
format: function(value){
return $filter('customFilter')(value)
}
}
配置中构建解决方案时,程序集现在都会自动进行模糊处理并捆绑到MSI包中。其他一些混淆器也处理这个问题。例如,Dotfuscator为Visual Studio提供了模糊项目类型,您可以在其中定义输入和输出,从而形成构建管道。管道可以获取装配项目的输出,对其进行模糊处理,然后将其传递给安装项目。
答案 4 :(得分:-1)
我会考虑使用WiX或类似的东西(其他一些构建工具)来创建MSI文件。您可以使用Windows工具反编译MSI,然后进行模糊处理,并将它们放回MSI中。
另一种选择是在构建过程中添加模糊处理工具。我用CodeVeil做了这个帖子。如果你可以将它分支到所有项目的Post Build步骤,没有设置项目(最后构建),你应该能够做到这一点。如果没有对安装项目进行大量工作,我不确定这是否有效,但我认为它没有理由不起作用。