Выполнить Obfuscar перед Fody.Costura Объединить файлы - PullRequest
0 голосов
/ 10 июля 2019

Как я могу выполнить Obfuscar перед Fody.Costura Объединить файлы, потому что объединенные файлы не запутываются, используя сжатие Fody.Costura или без него.

Я скачал https://github.com/obfuscar/example.git пример проекта для obfuscar, затем я установил Fody и Fody.Costura с помощью nuget, но выходной пример не будет запутан, если я проверю его с проектом ILSpy.

https://github.com/icsharpcode/ILSpy (проект ILSpy для загрузки сжатых файлов и просмотра кода DLL) https://github.com/G4224T/Fody-Costura-Decompress (Для распаковки поддельных файлов 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 голосов
/ 11 июля 2019

Я нашел обходной путь для этого и должен был создать новый проект формы в решении, которое ссылается на ofuscated dll и exe, а затем в этом новом проекте установить пакет nuget для fody.costura, после чего вам нужно изменить некоторую конфигурацию.и код:

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клон https://juandrn@bitbucket.org/juandrn/obfuscatorbeforefodycostura.git

Спасибо!

...