在Fody.Costura合并文件之前,由于未混淆合并的文件,如何使用Fody.Costura压缩或不使用它来执行Obfuscar。
我已经下载了https://github.com/obfuscar/example.git的obfuscar项目示例,然后通过nuget安装了Fody和Fody.Costura,但是如果我通过ILSpy项目进行检查,则不会混淆输出示例。
https://github.com/icsharpcode/ILSpy(ILSpy项目,用于下载压缩文件并查看dll代码) https://github.com/G4224T/Fody-Costura-Decompress(用于解压缩fost costura文件)。
我的混淆器配置为
<?xml version='1.0'?>
<Obfuscator>
<Var name="InPath" value="." />
<Var name="OutPath" value=".\Obfuscator_Output" />
<Var name="HidePrivateApi" value="true" />
<Var name="KeepPublicApi" value="false" />
<Var name="KeyFile" value=".\test.snk" />
<Module file="$(InPath)\BasicExampleExe.exe" />
<!--<Module file="$(InPath)\BasicExampleLibrary.dll" />-->
</Obfuscator>
在我尝试过的科蒂古拉舞中
<Costura DisableCompression="true" />
和
<Costura DisableCompression="false" />
我想要使用此项目来混淆和合并文件的任何选项,因为它们是免费的,谢谢
答案 0 :(得分:0)
我已经找到了解决方法,并打算在解决方案中创建一个新表单项目,该项目引用已废除的dll和exe,然后在此新项目中安装fody.costura nuget软件包,在此之后您需要更改一些配置和代码:
obsfucar.xml
<Obfuscator>
<Var name="InPath" value="." />
<Var name="OutPath" value=".\Obfuscator_Output" />
<Var name="HidePrivateApi" value="true" />
<Var name="KeepPublicApi" value="false" />
<Var name="KeyFile" value=".\test.snk" />
<Module file="$(InPath)\BasicExampleExe.exe">
<!-- You need to ommit afuscate startup form to call it from new project with fody.costura -->
<SkipType name="BasicExampleExe.ExampleUI" />
</Module>
<Module file="$(InPath)\BasicExampleLibrary.dll" />
</Obfuscator>
然后使用fody.costura在新项目的Program类中
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ObfuscatorBeforeFodyCostura
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new BasicExampleExe.ExampleUI());//Edit this part with the ofuscated form.
}
}
}
这里解决方案项目已编辑: git clone https://juandrn@bitbucket.org/juandrn/obfuscatorbeforefodycostura.git
谢谢!