是否可以在我的 CSharp 项目文件中包含代码来检查 ConfuserEx 是否正确执行,如果没有正确执行则终止编译过程?也许使用反射来检查类名是否仍然存在(即没有被混淆)?
更新:这是 .csproj
文件中调用混淆例程的代码:
<Target Name="AfterCompile">
<Exec Command="if "$(PlatformName)" == "AnyCPU" (if "$(ConfigurationName)" == "Release" (powershell.exe -ExecutionPolicy Bypass -File "$(ProjectDir)confuserEx\confuserps.ps1" "'C:\Program Files\ConfuserEx\Confuser.CLI.exe'" "'$(ProjectDir)confuserEx\confuser.crproj'" "'$(ProjectDir)obj\$(ConfigurationName)\'" "'$(ProjectDir)obj\$(ConfigurationName)\$(TargetFileName)'" "'normal'" )
) else (if "$(ConfigurationName)" == "Release" (powershell.exe -ExecutionPolicy Bypass -File "$(ProjectDir)confuserEx\confuserps.ps1" "'C:\Program Files\ConfuserEx\Confuser.CLI.exe'" "'$(ProjectDir)confuserEx\confuser.crproj'" "'$(ProjectDir)obj\$(PlatformName)\$(ConfigurationName)\'" "'$(ProjectDir)obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)'" "'normal'" )
)" />
</Target>
最佳答案
您可以通过 Cecil 等库编写自己的实用程序来验证混淆是否成功执行,或者简单地使用现有工具,例如 Red-Gate Obfuscation Checker .
关于c# - 如何在 CSharp 项目文件中检查混淆是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45462716/