在Fody.Costura合并文件之前执行Obfuscar

时间:2019-07-10 20:03:27

标签: fody-costura obfuscar

在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" />

我想要使用此项目来混淆和合并文件的任何选项,因为它们是免费的,谢谢

1 个答案:

答案 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

谢谢!