A small C# source-string encoder for .NET Framework projects. It writes a new .obf.cs file and leaves the input unchanged.
(It was created for a proprietary project called Simorgh, a clone of Logicube Falcon device.)
It rewrites eligible string literals in .cs source files. .dll and .exe files are copied unchanged; they are not currently obfuscated.
- Rewrites eligible C# string literal expressions as fully qualified Base64/UTF-8 decode expressions.
- Uses the C# syntax parser, so comments and character literals are not mistaken for strings, and C# escape sequences are decoded before encoding.
- Copies
.dlland.exeinputs to.obf.dll/.obf.exeunchanged. Assembly identifier rewriting and dead-code injection are disabled because the current implementation cannot safely preserve reflection, references, or virtual/interface contracts.
Base64 is reversible encoding, not encryption, and provides no meaningful secrecy. Interpolated-string text and compile-time constant strings (for example const values, attributes, and optional parameter defaults) are left unchanged to keep the generated source valid. Ordinary string literals inside interpolation expressions are still processed. This tool does not add anti-debugging code to output applications.
- .NET Framework 4.8 Runtime (https://dotnet.microsoft.com/en-us/download/dotnet-framework/net48)
- NuGet restore for the Roslyn C# parser dependency (Microsoft.CodeAnalysis.CSharp)
Run the tool via command line:
SimpleDotNetObfuscator.exe <input_file1> [<input_file2>] ...Example:
SimpleDotNetObfuscator.exe MyApp.dll MyApp.exe MySource.cs.csfiles are saved as.obf.cs- Assembly inputs are copied unchanged with
.obf.dllor.obf.exesuffixes
-
What does this tool do? It applies a lightweight, reversible Base64 encoding to eligible source string literals. It currently does not obfuscate assembly metadata.
-
Is Base64 string encoding encryption? No. Anyone can decode it; it only changes how literals appear in the source file.
-
Are all string literals transformed? No. Interpolated strings and compile-time constant contexts are preserved.
-
Are assemblies renamed or protected? No. They are copied byte-for-byte so signatures and runtime metadata remain intact.
-
Can I obfuscate multiple files at once? Yes. You can pass multiple file paths as arguments when running the tool.
-
Does this tool provide code virtualization? No.
-
How do I install dependencies? Restore the NuGet packages for the solution.
-
Does this provide strong protection against reverse engineering? No. It is a small source transformation utility, not a security boundary or a full obfuscator.
Unit tests are written using MSTest. To run the tests:
dotnet testThis project is licensed under the GPL-3.0. See the LICENSE file for details.
For questions or feedback, please use issues section.