A Cross-Platform .NET Obfuscator for C# and VB.NET
ArmDot is a .NET obfuscator to protect software written in .NET.
Using the full arsenal of obfuscation techniques, starting with common, but very effective renaming of metadata: names of classes, methods, and properties, and ending with the most modern approach – code virtualization, which makes deobfuscation incredibly difficult.
Get Started with ArmDot
Contact us for a demo, product resources, and formal quotation.

Key Features
- Supports .NET Framework, .NET Core, and Mono.
- Obfuscates any kind of applications, including Windows Forms, WPF, and Xamarin.
- Provides a comprehensive API for issuing, blocking, and checking serial keys.
- Embeds any kind of file,s including managed and unmanaged DLLs, data files, and other assets into a .NET assembly.
- ArmDot is a real cross-platform .NET obfuscator written in .NET Core that works on Windows, Linux, and macOS.
Wide Range of Obfuscation Features
ArmDot provides the full range of obfuscation approaches:
- changing the names of types, methods, fields, and properties;
- control flow obfuscation;
- code virtualization;
- embedded resources encryption;
- string literals encryption.
Supports legacy and modern .NET Runtimes
ArmDot fully supports both legacy runtimes like .NET Framework 2.0 and modern .NET 7.
The following runtimes are supported:
- .NET: 9.0, 8.0, 7.0, 6.0, 5.0.
- .NET Core: 3.1, 3.0, 2.2, 2.1, 2.0, 1.1, 1.0.
- .NET Framework: 4.8.1, 4.8, 4.7.2, 4.7.1, 4.7, 4.6.2, 4.6.1, 4.6, 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0.
Licensing API
ArmDot provides a rich API to generate license keys, check their state, and extract data stored in license keys, including user name, email, expiration, and max build date.
What does ArmDot offer?
- Virtual Machine that makes code completely incomprehensible. The goal is to convert the original code into an illegible form. ArmDot has a proven approach that is widely used for the unmanaged code: the original code is converted into an array of bytes that is interpreted by special virtual machine. Each time you apply ArmDot, it creates a new version of virtual machine and uses a new set of instructions to represent the original code.
- Mix Code is a technique that makes extracting license code checking very complicated. The license key checking code is mixed with the original code and it’s really hard to separate one code from another one cause both use the same variables and their instructions overlap.
Embed files with the help of ArmDot
It’s easy to add dependencies: managed and unmanaged DLLs, data files and other assets to the output .NET assembly.
If a .NET code requires an unmanaged DLL, just add the DLL to Assembly Directory and build the project.
After building the project, the output .NET assembly will function as if the embedded DLL were actually present.
In other cases, one may need to hide assets: videos, images, and other files. Embedded files are not stored on a disk, but in the process memory instead; it’s hard to extract them.

