Use Obfuscar.GlobalTool to obfuscate .NET code.
Name | Source | Stable | Preview |
---|---|---|---|
Hsu.Obfuscar.DotNetTool | Nuget | ||
Hsu.Obfuscar.DotNetTool | MyGet |
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
See NuGet.
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>
MIT