Protect your .NET code and IP with SmartAssembly

  • Protect intellectual property through obfuscation and encryption
  • Secure .NET Framework, .NET Core, and .NET Standard assemblies
  • Automatically report usage and exceptions
Download 14-day free trial

Introduction to SmartAssembly

Redgate's .NET obfuscator

SmartAssembly is an obfuscator that helps protect your application against reverse-engineering or modification, by making it difficult for a third-party to access your source code.

If your entire business rests on the IP embodied in your software or you don't want your C# or VB.NET code exposed internationally, then obfuscating your code becomes a necessity, not a luxury.

With SmartAssembly, you get a comprehensive set of obfuscation features, including name mangling, control flow obfuscation, strings encoding, reference dynamic proxy, and declarative obfuscation.

1 Year Subscription

SmartAssembly

$62.25 per license/per month (billed per term)

Protect your .NET code and Intellectual Property with a full set of obfuscation features.

Buy now

SmartAssembly Pro

$95.25 per license/per month (billed per term)

Protect your .NET code and Intellectual Property with powerful obfuscation, and receive error reports whenever your application crashes in the wild.

Buy now

An example of obfuscation

Before obfuscation

Before obfuscation

After obfuscation

After obfuscation

3 ways SmartAssembly will improve your software

Obfuscation

.NET applications can be easy to disassemble if they haven't been obfuscated, which can be a problem if you've invested time, effort, and money in your code. Obfuscating your code is easy to do and adds a barrier of protection against reverse-engineering and modification.

Multiple forms of obfuscation and optimization

Code obfuscation makes your application hard to reverse-engineer, removes non-useful code, and compresses dependencies, protecting and compacting your application with a minimum of fuss.

Key features

Name mangling

Changes the names of methods and fields to make it hard to understand their purpose.

Control flow obfuscation

Converts the code inside methods to 'spaghetti code' to make it difficult to see how the application works.

References dynamic proxy

Creates a proxy for calls to methods outside of your assembly to make it hard to find external calls.

Strings encoding

Encodes the strings used in your software to hide such information as passwords and SQL queries.

Resources compression and encryption

Compresses and encrypts managed resources to make them hard to understand, and to reduce the size of the assembly.

Pruning

Removes non-useful metadata to make the code harder to reverse-engineer, reduce the size of the assembly, and improve loading time.

Dependencies merging

Takes all the DLLs and merges dependencies into the main assembly, so you don't have to load lots of DLL files, and so that they can also be obfuscated.

Dependencies compression and embedding

Compresses and embeds your dependencies into your main assembly, simplifying the deployment of your software and reducing the size of your program.

Method parent obfuscation

Moves methods in your code by changing the class they are in, making it harder to understand how methods and classes relate to each other.

Strong name signing with tamper protection

Signs your assembly and helps to protect it against modification (the additional tamper protection is not available in the Standard edition).

Declarative obfuscation

Excludes a member from obfuscation using custom attributes directly in your code.

Debugging

SmartAssembly decodes obfuscated stack traces and generates .pdb files containing debugging information. This enables you to debug your assembly into your IDE, and get the full stack trace when an exception occurs. SmartAssembly even helps to ensure that you're automatically releasing unneeded memory.

Integration and Support

Obfuscation can be integrated into build processes using MS Build or command-line, and supports .NET 2.0 to 4.7, including .NET Core and .NET Standard, and XNA, with some exceptions.

Full list of features

Releasing applicationsStandardProPersonal
Allows you to process assemblies for release to end-users
Code obfuscationStandardProPersonal
Name mangling, control flow obfuscation, strings encoding, references dynamic proxy, pruning, re-signing strong named assemblies, declarative obfuscation, obfuscation of satellite DLLs, sign assemblies
Tamper Protection
Method Parent Obfuscation
Application size reduction and speed improvementStandardProPersonal
Pruning, resource compression and encryption, dependencies compression and embedding, dependencies merging, declarative pruning
Automated error reportingStandardProPersonal
Error Reporting
Jump to source code from the stack trace
Report categorization
Store error reports in a local SQLite database
Store error reports in SQL Server, allowing you to share the reports with colleagues
Custom web service
SDK to access your exception reports programmatically and to manually pass exceptions to SmartAssembly if you wish to
Custom templates for customizing the error reporting dialog and capturing additional data with exception reports (e.g. a log file)
Feature usage reportingStandardProPersonal
Feature Usage Reporting
Export reports to CSV
Configuration reporting
Store feature usage reports in a local SQLite database
Store feature usage reports in SQL Server, allowing you to share the reports with colleagues
Custom web service
Custom templates for customizing the dialog box that your end-users see when they are asked to consent to feature usage reporting

Supported technologies and licensing

Supported technologies

SmartAssembly can protect your Winforms and ASP.NET applications and more.

It can also be integrated into build processes using MS Build or the command-line.

Standard and Pro Licensing

SmartAssembly is licensed per machine, meaning per build server or per production machine (any machine you use to produce release builds) and is available in two editions (Standard and Pro).

Learn more about the purchasing options

Personal edition

SmartAssembly Personal edition is a free to use version of SmartAssembly which can only be used for testing builds and viewing error reports.

It cannot be used to create builds for distribution.

If you're using a free trial of SmartAssembly, it will revert to SmartAssembly Personal edition at the end of the trial period.