Skip to content

MSBuild for Obfuscar with Obfuscar.GlobalTool.

License

Notifications You must be signed in to change notification settings

hsu-net/obfuscar

Repository files navigation

Hsu.Obfuscar.DotNetTool

dev preview main Obfuscar Nuke Build windows linux

Use Obfuscar.GlobalTool to obfuscate .NET code.

Package Version

Name Source Stable Preview
Hsu.Obfuscar.DotNetTool Nuget NuGet NuGet
Hsu.Obfuscar.DotNetTool MyGet MyGet MyGet

Usage

Install Obfuscar.GlobalTool

Global installation:

dotnet tool install --global Obfuscar.GlobalTool --version 2.2.38

Local installation:

dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Obfuscar.GlobalTool --version 2.2.38

Install Hsu.Obfuscar.DotNetTool

See NuGet.

Configuration

  • Add AssemblySearchPath file:

       <PropertyGroup>
           <ObfuscarAssembliesInclude>true</ObfuscarAssembliesInclude>
       </PropertyGroup>

    When you build the project, the obfuscar.xml file will be created to the root folder of project and obfuscar.assemblies.xml will be created to the output folder of project.

  • Default obfuscar.xml contents

    <?xml version="1.0"?>
    <Obfuscator>
      <!-- https://docs.obfuscar.com/getting-started/configuration -->
      <!-- https://github.com/obfuscar/obfuscar/blob/master/Obfuscar/Settings.cs -->
      
      <Var name="InPath" value="." />
      <Var name="OutPath" value="obfuscated" />
      <Var name="RenameFields" value="true" />
      <Var name="RenameProperties" value="true" />
      <Var name="RenameEvents" value="true" />
      <Var name="KeepPublicApi" value="true" />
      <Var name="HidePrivateApi" value="true" />
      <Var name="ReuseNames" value="true" />
      <Var name="UseUnicodeNames" value="false" />
      <Var name="UseKoreanNames" value="false" />
      <Var name="HideStrings" value="false" />
      <Var name="OptimizeMethods" value="true" />
      <Var name="SuppressIldasm" value="false" />
    
      <Module file="ConsoleSample.dll">
        <SkipEnums value="true" />
      </Module>
      
      <!-- <Include path="obfuscar.assemblies.xml" /> -->
      <Include path="obfuscar.assemblies.xml" />
    </Obfuscator>
  • Default obfuscar.assemblies.xml contents

    <?xml version="1.0"?>
    <Include>
        <AssemblySearchPath path='.' />
    </Include>

    You can also modify the obfuscar.xml file to change the default values.

    You can also modify the AssemblySearchNames property will auto gen AssemblySearchPath in obfuscar.assemblies.xml file.

  • AssemblySearchNames

    <PropertyGroup>
        <AssemblySearchNames>Microsoft.CodeAnalysis.dll;Microsoft.CodeAnalysis.CSharp.dll</AssemblySearchNames>
    </PropertyGroup>
  • obfuscar.assemblies.xml

    <?xml version="1.0"?>
    <Include>
        <AssemblySearchPath path='C:\Users\Administrator\.nuget\packages\microsoft.codeanalysis.csharp\4.7.0\lib\netstandard2.0' />
        <AssemblySearchPath path='C:\Users\Administrator\.nuget\packages\microsoft.codeanalysis.common\4.7.0\lib\netstandard2.0' />
    </Include>

License

MIT