Obfy 1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet tool install --global Obfy --version 1.0.0
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local Obfy --version 1.0.0
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Obfy&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package Obfy --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Obfy
Professional .NET obfuscation tool for protecting C# assemblies and source code.
Installation
# Install as a global tool
dotnet tool install --global Obfy
# Or install locally in a project
dotnet new tool-manifest
dotnet tool install Obfy
Usage
# Basic obfuscation
obfy input.dll -o output/
# With specific protection level
obfy input.dll -l aggressive -o output/
# With configuration file
obfy input.dll -c obfy.json -o output/
# Multiple files
obfy file1.dll file2.dll -o output/
Protection Levels
| Level | Description |
|---|---|
minimal |
Symbol renaming only |
standard |
String encryption + symbol renaming + metadata removal |
aggressive |
All protections enabled at maximum intensity |
custom |
Configure individual settings via flags or config file |
Features
Assembly Obfuscation (dnlib)
- String Encryption - Encrypts string literals with AES-256 or XOR
- Control Flow - Flattens control flow with switch dispatchers
- Symbol Renaming - Renames types, methods, fields, properties
- Anti-Debug - Injects debugger detection checks
- Metadata Removal - Strips debug info and custom attributes
Source Code Obfuscation (Roslyn)
- String Encryption - Encrypts string literals in source code
- Symbol Renaming - Renames identifiers using semantic analysis
- Control Flow - Transforms control flow with opaque predicates
CLI Options
obfy <input> [options]
Arguments:
<input> Input file(s) to obfuscate
Options:
-o, --output <dir> Output directory
-l, --level <level> Protection level (minimal|standard|aggressive|custom)
-c, --config <file> Configuration file path
--string-encrypt Enable string encryption
--control-flow Enable control flow obfuscation
--rename Enable symbol renaming
--anti-debug Enable anti-debugging
--strip-metadata Remove debug metadata
--preserve-public Preserve public API names
-v, --verbose Enable verbose output
--version Show version
-?, -h, --help Show help
Configuration File
Create obfy.json:
{
"level": "aggressive",
"stringEncryption": {
"enabled": true,
"algorithm": "Aes256"
},
"controlFlow": {
"enabled": true,
"mode": "SwitchDispatcher",
"intensity": 75
},
"symbolRenaming": {
"enabled": true,
"mode": "Unreadable",
"preservePublicApi": true
},
"antiDebug": {
"enabled": true
},
"metadataRemoval": {
"enabled": true,
"removeDebugInfo": true
}
}
License
MIT License - see LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.