1

如何在 Fody.Costura 合并文件之前执行混淆,因为合并的文件没有被混淆,使用 Fody.Costura 压缩或不使用它。

我已经为 obfuscar 下载了https://github.com/obfuscar/example.git项目示例,然后我通过 nuget 安装了 Fody 和 Fody.Costura,但是如果我使用 ILSpy 项目检查它,输出示例不会被混淆。

https://github.com/icsharpcode/ILSpy(ILSpy项目下载压缩文件并查看 dll 代码) https://github.com/G4224T/Fody-Costura-Decompress(解压 fody 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>

在 fody costura 我试过

<Costura DisableCompression="true" />

<Costura DisableCompression="false" />

我想要使​​用这个项目来混淆和合并文件的任何选项,因为它是免费的,谢谢大家

4

1 回答 1

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>

然后在新项目的 Program 类中使用 fody.costura

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

谢谢!

于 2019-07-11T16:58:58.423 回答