我刚刚完成了我的C#项目(WPF),但现在我遇到了使用“obfuscar”的问题(如果更容易使用,欢迎使用另一个应用程序)。
当然我已经在互联网上寻找它,但没有找到“新手”的文档......
我还尝试使用github提供的obfuscar提供的BasicExempleExe,然后还剩下一些问题:
可以请一些人帮忙吗?这不是我现在做的那么大的项目,但我想学习如何做到这一点,从昨天起我什么都听不懂,这就是为什么我最终决定发布在这里。
答案 0 :(得分:22)
除了exe之外,创建普通的文本文件(例如config.xml),内容可以非常简单:
<?xml version='1.0'?>
<Obfuscator>
<Var name="InPath" value=".\input folder name" />
<Var name="OutPath" value=".\output folder name" />
<Module file="$(InPath)\BasicExemple.exe" />
</Obfuscator>
运行cmd,cd到exe的目录,然后运行Obfuscar.Console.exe config.xml
输出文件夹将包含已处理的二进制文件。
答案 1 :(得分:9)
我刚刚为Obfuscar创建了一个扩展配置文件,想要分享它。可用参数的完整列表here
<?xml version='1.0'?>
<Obfuscator>
<Var name="InPath" value="." />
<Var name="OutPath" value=".\Obfuscator_Output" />
<Var name="KeepPublicApi" value="false" />
<Var name="HidePrivateApi" value="true" />
<Var name="RenameProperties" value="true" />
<Var name="RenameEvents" value="true" />
<Var name="RenameFields" value="true" />
<Var name="UseUnicodeNames" value="true" />
<Var name="HideStrings" value="true" />
<Var name="OptimizeMethods" value="true" />
<Var name="SuppressIldasm" value="true" />
<Module file="$(InPath)\MyApplication.exe" />
</Obfuscator>
答案 2 :(得分:2)
我将其设置为在Visual Studio中的Post Build事件上运行。
将obfuscar.xml文件添加到您的项目,然后更改“复制到输出目录:始终”。 有关XML示例,请参见vinsa在该线程上发表的文章。我必须在“ InPath”变量中包含项目的完整路径。然后,混淆文件夹位于bin / [debug / release]下。
在Visual Studio发布后的事件中输入:“ $(Obfuscar)” obfuscar.xml
答案 3 :(得分:2)
要在.Net Core 2.1控制台应用程序上使用它,可以执行以下操作:
1-通过在控制台窗口中执行以下命令来安装Obfuscar:
dotnet工具安装--global Obfuscar.GlobalTool-版本2.2.18
(您可以在此处查看最新版本:https://www.nuget.org/packages/Obfuscar.GlobalTool)
2-将一个名为obfuscar.xml的XML文件添加到要混淆的项目中,其内容如下(来自@vinsa回答):
<?xml version='1.0'?>
<Obfuscator>
<Var name="InPath" value=".\bin\Release\netcoreapp2.1\linux-arm\publish" />
<Var name="OutPath" value="$(InPath)\ReadyForDeployment" />
<Var name="KeepPublicApi" value="false" />
<Var name="HidePrivateApi" value="true" />
<Var name="RenameProperties" value="true" />
<Var name="RenameEvents" value="true" />
<Var name="RenameFields" value="true" />
<Var name="UseUnicodeNames" value="true" />
<Var name="HideStrings" value="true" />
<Var name="OptimizeMethods" value="true" />
<Var name="SuppressIldasm" value="true" />
<Module file="$(InPath)\YourProject.dll" />
</Obfuscator>
3-最后,右键单击您的项目,然后依次单击“属性”,“构建事件”,然后在“构建后事件”文本框中添加以下行:
if $(ConfigurationName) == Release obfuscar.console .\obfuscar.xml
答案 4 :(得分:1)
从PowerShell作为管理员:
PS> Install-Package Obfuscar
这会将Obfuscar.Console.exe可执行文件放在目录中:
C:\Program Files\PackageManagement\NuGet\Packages\Obfuscar.2.2.9\tools
相应地更改目录名中的版本号。
答案 5 :(得分:1)
必须将这些设置用于 .NET MVC Web 应用程序(非核心)。我在没有更改公共和私有 API 变量的情况下收到默认文档错误。假设从解决方案根目录下“包”中的 NuGet 创建的文件夹运行。
<?xml version='1.0'?>
<Obfuscator>
<Var name="InPath" value="..\..\..\MyWebApp.WebApp\bin\" />
<Var name="OutPath" value="..\..\..\MyWebApp.WebApp\bin\obfuscar" />
<Var name="KeepPublicApi" value="true" /><!--Keep true for web app.-->
<Var name="HidePrivateApi" value="false" /><!--Keep false for web app.-->
<Var name="RenameProperties" value="true" />
<Var name="RenameEvents" value="true" />
<Var name="RenameFields" value="true" />
<Var name="UseUnicodeNames" value="true" />
<Var name="HideStrings" value="true" />
<Var name="OptimizeMethods" value="true" />
<Var name="SuppressIldasm" value="true" />
<Module file="$(InPath)\MyWebApp.DataAccess.dll" />
<Module file="$(InPath)\MyWebApp.Helpers.dll" />
<Module file="$(InPath)\MyWebApp.Models.dll" />
<Module file="$(InPath)\MyWebApp.WebApp.dll" />
</Obfuscator>