首页 > 解决方案 > 使用 ConfuserX 混淆 WPF 项目

问题描述

通过提供这样的构建后事件命令来混淆 WPF 项目:

if "$(ConfigurationName)" == "Release" ($(ProjectDir)ConfuserEx\Confuser.CLI.exe $(ProjectDir)Confuser.crproj)

在成功构建和混淆创建后,如果我混淆 dll,则 Exe 会崩溃,然后工作正常,但如果我混淆 Exe,则会崩溃

Confuser.crproj
    <project outputDir="..\Release" baseDir="obj\Release" xmlns="http://confuser.codeplex.com">
       <module path="Sample.exe" >
        <rule pattern="true" preset="aggressive"  inherit="false">
          <protection id="anti ildasm" />
          <protection id="anti tamper" />
          <protection id="anti dump" />
        </rule>
      </module>
      <probePath>..\..\obj\Release</probePath>
      <probePath>..\..\bin\Release</probePath>
    </project>

标签: c#wpfobfuscationconfuserex

解决方案


这是因为 xaml 文件名重命名已打开。该 exe 具有带有“Windows\MainWindow.xaml”的 startupUri 设置。但是 MainWindow.xaml 或其他任何东西都被重命名为其他东西。这是我的项目,除了 xaml 文件名之外允许重命名。对我来说效果很好:

<project outputDir="PathToTheOutputDirectory" baseDir="PathToYourExeFile" xmlns="http://confuser.codeplex.com">
  <module path="YourSoftware.exe">
    <rule pattern="true" preset="normal" inherit="false">
      <protection id="rename">
        <argument name="renXaml" value="false" />
      </protection>
    </rule>
  </module>
</project>


推荐阅读