# obfuscar/obfuscar

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/obfuscar-obfuscar).**

3,007 stars · 449 forks · C# · mit

## Links

- GitHub: https://github.com/obfuscar/obfuscar
- Homepage: https://www.obfuscar.com
- awesome-repositories: https://awesome-repositories.com/repository/obfuscar-obfuscar.md

## Topics

`c-sharp` `dotnet` `dotnet-framework` `obfuscate` `obfuscation` `obfuscator`

## Description

Obfuscar is a .NET assembly obfuscator and managed code protector designed to prevent reverse engineering of compiled binaries. It functions as a binary metadata compressor and security tool that renames symbols and encodes strings to protect intellectual property.

The project distinguishes itself by altering the Common Intermediate Language structure and modifying assembly metadata tables to hide implementation details. It provides string-to-buffer encoding to prevent plain-text analysis of constants and includes a strong-name re-signing mechanism to ensure modified assemblies remain valid and trusted.

Its broader capabilities include member-level obfuscation based on accessibility, the preservation of compiler-generated code to prevent runtime failures, and the generation of symbol mapping files for debugging. It also supports XML-driven configuration for defining inclusion and exclusion rules and can be integrated into build pipelines for automated security transformations.

## Tags

### Part of an Awesome List

- [Assembly Obfuscators](https://awesome-repositories.com/f/awesome-lists/security/reverse-engineering-and-decompilation/assembly-obfuscators.md) — Provides a tool to obfuscate .NET assemblies by renaming metadata identifiers to prevent reverse engineering. ([source](https://cdn.jsdelivr.net/gh/obfuscar/obfuscar@master/README.md))
- [CIL Structure Manipulation](https://awesome-repositories.com/f/awesome-lists/devtools/assembly-manipulation/cil-structure-manipulation.md) — Alters the Common Intermediate Language structure to hide implementation details without changing program logic.

### Security & Cryptography

- [.NET Binary Protection](https://awesome-repositories.com/f/security-cryptography/net-binary-protection.md) — Prevents reverse engineering of compiled assemblies by renaming symbols and altering the structure of the executable.
- [String Literal Obfuscation](https://awesome-repositories.com/f/security-cryptography/code-obfuscation-protections/string-literal-obfuscation.md) — Replaces static string constants with calls to an encoded buffer to prevent plain-text analysis. ([source](https://docs.obfuscar.com/getting-started/configuration.html))
- [.NET Assembly Obfuscators](https://awesome-repositories.com/f/security-cryptography/net-assembly-obfuscators.md) — Renames symbols and encodes strings in compiled .NET binaries to prevent reverse engineering.
- [Binary Structure Obfuscation](https://awesome-repositories.com/f/security-cryptography/security/utilities/security-hardening-and-protection/binary-structure-obfuscation.md) — Alters the structure of compiled assemblies and renames symbols to protect intellectual property. ([source](https://docs.obfuscar.com/getting-started/index.html))
- [Source Code Protection](https://awesome-repositories.com/f/security-cryptography/source-code-protection.md) — Alters the structure of compiled assemblies to hide implementation details and protect intellectual property.
- [Assembly Re-signing](https://awesome-repositories.com/f/security-cryptography/code-signing/signing-key-rotation/assembly-re-signing.md) — Applies a cryptographic key to assemblies after modification to ensure the binary remains valid and trusted.
- [Symbol Mapping Files](https://awesome-repositories.com/f/security-cryptography/de-obfuscation-tools/symbol-mapping-files.md) — Translates obfuscated names back to their original form to make exception call stacks readable during debugging. ([source](https://docs.obfuscar.com/getting-started/ecosystem.html))
- [Mobile Assembly Obfuscation](https://awesome-repositories.com/f/security-cryptography/mobile-application-security/mobile-assembly-obfuscation.md) — Secures compiled assemblies for mobile platforms before they are packaged and distributed to end users.
- [Automated Security Pipelines](https://awesome-repositories.com/f/security-cryptography/security-automation-integrations/automated-security-pipelines.md) — Integrates code obfuscation into a build pipeline to ensure every release is secured without manual intervention.
- [Compiler-Generated Code Preservation](https://awesome-repositories.com/f/security-cryptography/security/utilities/security-hardening-and-protection/code-obfuscators/obfuscating-compilers/compiler-generated-code-preservation.md) — Prevents runtime failures by avoiding the renaming of types and members flagged by the compiler. ([source](https://docs.obfuscar.com/getting-started/configuration.html))
- [Strong Name Re-signing](https://awesome-repositories.com/f/security-cryptography/strong-name-re-signing.md) — Applies key files or containers to maintain the validity of strongly named assemblies after modification. ([source](https://docs.obfuscar.com/getting-started/configuration.html))

### Software Engineering & Architecture

- [Binary Intellectual Property Protection](https://awesome-repositories.com/f/software-engineering-architecture/behavioral-design-patterns/internal-member-protection/binary-intellectual-property-protection.md) — Hides internal implementation details and string constants to make decompiled code difficult for others to read.
- [Obfuscation and Shrinking Rules](https://awesome-repositories.com/f/software-engineering-architecture/obfuscation-and-shrinking-rules.md) — Implements configuration rules to prevent critical namespaces, types, or methods from being renamed during obfuscation. ([source](https://docs.obfuscar.com/getting-started/configuration.html))
- [String Obfuscation Encodings](https://awesome-repositories.com/f/software-engineering-architecture/string-validation-and-normalization/string-encodings/string-obfuscation-encodings.md) — Replaces static string constants with calls to an encoded buffer to prevent plain-text analysis of binary data.
- [Symbol Renamers](https://awesome-repositories.com/f/software-engineering-architecture/symbol-renamers.md) — Replaces human-readable identifiers with minimal characters by modifying the assembly metadata table.
- [Obfuscation Exclusion Markers](https://awesome-repositories.com/f/software-engineering-architecture/api-documentation-generators/element-exclusion/obfuscation-exclusion-markers.md) — Provides a mechanism to skip obfuscation for specific code members using custom metadata markers.
- [Configuration-Driven Rule Engines](https://awesome-repositories.com/f/software-engineering-architecture/configuration-driven-rule-engines.md) — Uses external XML schema files to define inclusion and exclusion rules for the renaming process.
- [Binary Footprint Optimizers](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/application-performance-tuning/application-performance-optimization/binary-footprint-optimizers.md) — Reduces the final size of compiled files by shortening metadata identifiers and shrinking the overall storage footprint.
- [Obfuscation Build Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/reproducible-builds/deterministic-obfuscation-builds/obfuscation-build-pipelines.md) — Automates the code obfuscation process by triggering security transformations during project build events. ([source](https://docs.obfuscar.com/tutorials/basics.html))
- [Source Map Resolution](https://awesome-repositories.com/f/software-engineering-architecture/stacks/stack-trace-formatters/source-map-resolution.md) — Generates mapping files to translate obfuscated identifiers back to original names for debugging call stacks.

### Development Tools & Productivity

- [Metadata Compression](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugging-and-inspection-tools/runtime-debugging/debug-symbol-stripping/binary-metadata-stripping/metadata-compression.md) — Reduces the size of executable files by shortening metadata identifiers and renaming internal symbols.
- [Build Tool Integrations](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-tools/build-task-automation/build-pipeline-integrations/build-pipeline-integrators/build-tool-integrations.md) — Integrates obfuscation as a native task into build systems during the compilation process.

### Operating Systems & Systems Programming

- [Binary Size Reduction](https://awesome-repositories.com/f/operating-systems-systems-programming/assembly-metadata-editors/binary-size-reduction.md) — Shrinks the total storage footprint of compiled executables by shortening metadata identifiers. ([source](https://docs.obfuscar.com/getting-started/basics.html))
- [Security Configuration Schemas](https://awesome-repositories.com/f/operating-systems-systems-programming/xml-configuration-schemas/security-configuration-schemas.md) — Allows defining specific security rules and obfuscation settings in external XML files to control the protection process. ([source](https://docs.obfuscar.com/tutorials/basics.html))

### Programming Languages & Runtimes

- [Member-Level Obfuscation](https://awesome-repositories.com/f/programming-languages-runtimes/class-member-access/member-level-obfuscation.md) — Secures private items by renaming types and members based on accessibility levels while preserving public APIs. ([source](https://docs.obfuscar.com/getting-started/configuration.html))
