我想试试这个程序,但我无法弄清楚如何使用它.
我在作者的网站https://github.com/yck1509/ConfuserEx上搜索,但这个网站上的例子对于像我这样的编程新手来说还不够清晰.
所以我在这里发布我的问题,希望有人能告诉我如何用简单的英语和一些例子来使用它.它会非常棒,非常值得赞赏.
Nas*_*ter 62
从这里获取最新的二进制版本:https: //github.com/yck1509/ConfuserEx/releases
Confuser.CLI.exe myProjectFile.crproj
Run Code Online (Sandbox Code Playgroud)
项目文件示例:
<?xml version="1.0" encoding="utf-8"?>
<project baseDir="c:\" outputDir="c:\Confused" xmlns="http://confuser.codeplex.com">
<rule preset="none" pattern="true">
<protection id="anti debug" />
<protection id="anti dump" />
<protection id="anti ildasm" />
<protection id="anti tamper" />
<protection id="constants" />
<protection id="ctrl flow" />
<protection id="invalid metadata" />
<protection id="ref proxy" />
<protection id="rename" />
<protection id="resources" />
</rule>
<module path="ICSharpCode.AvalonEdit.dll" />
<module path="ICSharpCode.Decompiler.dll" />
<module path="ICSharpCode.NRefactory.dll" />
<module path="ICSharpCode.NRefactory.CSharp.dll" />
<module path="ICSharpCode.NRefactory.VB.dll" />
<module path="ICSharpCode.TreeView.dll" />
<module path="ILSpy.BamlDecompiler.Plugin.dll" />
<module path="ILSpy.exe" />
<module path="ILSpy.SharpDevelop.LGPL.dll" />
<module path="Mono.Cecil.dll" />
<module path="Mono.Cecil.Pdb.dll" />
</project>
Run Code Online (Sandbox Code Playgroud)

配置文件格式:https://github.com/yck1509/ConfuserEx/blob/master/docs/ProjectFormat.md

此答案涵盖了以下情况:您的解决方案具有 (A) 多个可能相互引用的项目,以及 (B) 您希望在 Visual Studio 安装项目中自动进行混淆处理。
1) 直接在项目文件夹中为每个项目添加一个 Confuser.crproj 文本文件。在此文件夹中,您应该会看到“bin”、“ob”、“resources”等文件夹。有没有必要将这些文件附加到在Visual Studio解决方案。文本文件应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<project baseDir="obj\Release" outputDir="..\Release" xmlns="http://confuser.codeplex.com">
<rule preset="none" pattern="true">
<protection id="anti debug" />
<protection id="anti dump" />
<protection id="anti ildasm" />
<protection id="anti tamper" />
<protection id="constants" />
<protection id="ctrl flow" />
<protection id="invalid metadata" />
<protection id="ref proxy" />
<protection id="resources" />
</rule>
<module path="MyLibrary.dll" />
<probePath>..\..\bin\Release</probePath>
</project>
Run Code Online (Sandbox Code Playgroud)
将 MyLibrary.dll 替换为项目的输出。(如果它是可执行文件,请将 .dll 替换为 .exe。)
ConfuserEX 为相对路径选择不同的起点,这就是为什么路径在文件中看起来很奇怪。
此步骤的关键要素是混淆每个项目的“obj”输出。这是为了帮助您的 Windows 安装项目选择混淆的版本。
2) 在每个项目的 post-build 事件中,添加如下的 post-build 事件:
if "$(ConfigurationName)" == "Release" $(SolutionDir)..\ConfuserEX\Confuser.CLI.exe $(ProjectDir)Confuser.crproj
Run Code Online (Sandbox Code Playgroud)
第一个条件是仅在 Release 中构建时才进行混淆。在这里,您需要调整路径以匹配 Confuser.CLI.exe 的路径。我在解决方案的根文件夹旁边有我的 ConfuserEX 文件夹。
3) 在您的安装项目中,我们需要解决的问题是确保打包能够获取您的混淆版本。安装程序有一些模糊的逻辑来决定从哪个文件夹中选取每个程序集。我们将强制它选择正确的。为此,您必须:
(3a) 将所有项目添加为“项目输出”,这可确保“obj”文件夹中的混淆文件将其添加到包中。
(3b) 检查安装项目的“检测到的依赖项”部分。每当您看到由您的项目之一生成的依赖项时,请转到其属性并将其标记为 Exclude=True。这可确保您的包中的混淆版本不会因推理过程而被非混淆版本替换。
| 归档时间: |
|
| 查看次数: |
36749 次 |
| 最近记录: |