【问题标题】:Dotfuscator - does obfuscate .msi file?Dotfuscator - 是否混淆 .msi 文件?
【发布时间】:2019-10-04 08:13:33
【问题描述】:

我有一个带有 .msi 输出的 .Net 解决方案。运行混淆(使用Dotfuscate)会引发以下错误:

PE Signature not found.  Is \Release\Output.msi a PE file?

想知道Dotfuscate 是否不支持.msi 文件混淆。

感谢您的帮助!

【问题讨论】:

    标签: installation obfuscation dotfuscator


    【解决方案1】:

    Dotfuscator 不会混淆 .msi 文件,只会混淆 .NET 程序集(.dll.exe 使用 C#、F# 或 Visual Basic .NET 制作的文件)。如果您在 .msi 中发送 .NET 程序集,则需要使用 Dotfuscator 保护它们,然后再将它们添加到您的 .msi

    最简单的方法是integrate Dotfuscator into your app's .exe project。然后,当您在 Visual Studio 或 MSBuild 中构建项目时,Dotfuscator 将保护 bin\Release 中的程序集(包括集成项目中的 .exe 以及解决方案中其他项目中的 .dlls),您的 @ 987654331@ 可以正常接听。这也允许 Dotfuscator 与其他打包格式(如 Xamarin)一起使用,因为此集成在项目编译之后但打包之前运行。

    免责声明:我在 Dotfuscator 团队工作,并作为我工作的一部分回答。)

    【讨论】:

    • “Dotfuscator 将保护 bin\Release [...] 中的程序集,然后您的 .msi 可以正常拾取这些程序集”,只是这不是通常会拾取的。 Visual Studio 的 Windows 安装程序项目扩展获取项目的“主要输出”,对于 .exe,该项目包括来自 bin\Release 的 dll,但来自 \obj\Release 的 .exe。哪个没有混淆。然后安装的未混淆的可执行文件将在启动时崩溃,因为它在安装的混淆 dll 中找不到它的依赖项。
    猜你喜欢
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2019-11-23
    • 2021-12-02
    • 1970-01-01
    • 2022-06-22
    相关资源
    最近更新 更多