我想试试这个程序,但我无法弄清楚如何使用它。
我搜索了作者的网站https://github.com/yck1509/ConfuserEx但是这个网站上的示例对于像我这样的编程新手来说还不够明确。
所以我在这里发布我的问题,希望有人能告诉我如何用简单的英语和一些例子来使用它。它会非常棒,非常受欢迎。
答案 0 :(得分:61)
从这里获取最新的二进制版本: https://github.com/yck1509/ConfuserEx/releases
Confuser.CLI.exe myProjectFile.crproj
项目文件示例:
<?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>
配置文件格式:https://github.com/yck1509/ConfuserEx/blob/master/docs/ProjectFormat.md
答案 1 :(得分:2)
对于其他遇到问题的人: 我下载了它,主人错过了dnlib。您可以单独下载dnlib将其复制到dnlib文件夹中,然后进行编译。
这应该适用于大多数人,但对我来说,对我的exe,它给了一个&#34;不正确的dos格式&#34;任何exe都有错误。想到可能因为我已经更新到vs2015和4.5.3(.net 5或6或者他们现在想要的任何东西)。我想也许就是这样。但它不是(最高编译为4.5)。
在Google上看我的假设是它无法更新文件所以花了1小时+将元组从你的类转换为.net 4元组。并将所有项目更新为4.5。
如果可以,你们需要检查你的github fork并点击下载然后编译..它应该从网站编译而不是。我相信这是一个很棒的产品。有点粗糙,因为它不适合青少年使用。也许你可以只有EXE的链接?这可能有助于人们不处理编译问题。
顺便说一下,看起来好像很多东西,即使付费的东西也只是学习上的一点曲线。
另一个注意事项看起来你有一个RuntimeEnvironment.GetSystemVersion()[1] == 4
它应该是(有一些解析)RuntimeEnvironment.GetSystemVersion()[1] > 3.9
所以你得到4和4.5
**更新。更新到4.5并拖放停止工作,仍然如上所述。 与4.5.3一起使用但你没有使用任何新功能。
我最终得到了什么,我将稍后编辑,说明它是否有效。 https://onedrive.live.com/redir?resid=88D92E4D40C0593C%21105
继续上面。
答案 2 :(得分:2)
这个答案涵盖了以下情况:(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>
将MyLibrary.dll替换为项目的输出。 (如果它是可执行文件,则将.dll替换为.exe。)
ConfuserEX为相对路径选择不同的起点,这就是文件中路径看起来很奇怪的原因。
此步骤的关键元素是混淆每个项目的“obj”输出。这是为了帮助您的Windows安装项目获取混淆版本。
2)在每个项目的构建后事件中,添加如下所示的构建后事件:
if "$(ConfigurationName)" == "Release" $(SolutionDir)..\ConfuserEX\Confuser.CLI.exe $(ProjectDir)Confuser.crproj
第一个条件是仅在Release中构建时进行模糊处理。在这里,您需要调整路径以匹配Confuser.CLI.exe的路径。我有我的ConfuserEX文件夹和解决方案的根文件夹。
3)在您的安装项目中,我们需要解决的问题是确保包装能够提取您的模糊版本。安装程序有一些模糊的逻辑来决定从哪个文件夹中拾取每个程序集。我们将强迫它选择正确的。为此,你必须:
(3a)将所有项目添加为“项目输出”,这样可以确保“obj”文件夹中的模糊文件成为包。
(3b)检查安装项目的“检测到的依赖关系”部分。每当您看到由其中一个项目生成的依赖项时,请转到其属性并将其标记为Exclude = True。这可以确保由于推理过程,包中的模糊版本不会被非模糊版本替换。
答案 3 :(得分:0)
对我来说,这种方法效果最好:
定义crproj:
<?xml version="1.0" encoding="utf-8"?>
<project baseDir="c:\program files\confuserex" outputDir="c:\program files\confuserex\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="C:\Temp\dlhsoft\DlhSoft.HierarchicalData.LightWPF.Controls.dll" />
<module path="C:\Temp\dlhsoft\DlhSoft.ProjectData.GanttChart.LightWPF.Controls.dll" />
<module path="C:\Temp\dlhsoft\DlhSoft.ProjectData.PertChart.LightWPF.Controls.dll" />
</project>
并使用以下命令从命令行调用该文件:
"c:\program files\confuserex\confuserex.exe" "c:\program files\confuserex\myprojectfile.crproj"