SmartAssembly is an obfuscator that helps protect your .NET application against reverse-engineering, cracking and modification. If you don't want your C# or VB.NET code exposed internationally, or if your entire business rests on the IP embodied in your software, then obfuscating your code becomes a necessity, not a luxury.
With SmartAssembly, you get access to a comprehensive set of obfuscation features, including name mangling, control flow obfuscation, strings encoding, reference dynamic proxy and declarative obfuscation.
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.
Automated Error Reporting
- Name mangling - changes the names of methods and fields to make it hard to understand their purpose.
- References dynamic proxy - creates a proxy for calls to methods outside of your assembly to make it hard to find external calls.
- Resources compression and encryption - compresses and encrypts managed resources to make them hard to understand and to reduce the size of the assembly.
- 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.
- 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.
- Declarative obfuscation - excludes a member from obfuscation using custom attributes directly in your code.
- Control flow obfuscation - converts the code inside methods to 'spaghetti code' to make it difficult to see how the application works.
- Strings encoding - encodes the strings used in your software to hide such information as passwords and SQL queries.
- Pruning - removes non-useful metadata to make the code harder to reverse-engineer, reduce the size of the assembly and improve loading time.
- 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.
- 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).
Automated Error Reporting is an exception handling mechanism that automatically and silently collects detailed information when errors occur. Although highly customisable, a typical error report consists of a full stack trace and details about the exception context (e.g. values of all the local variables).
- Range of standard templates - send error reports with or without prompting the end user.
- Report categorisation - categorise reports to see the most common errors your users are experiencing.
- System information always sent - the version of Windows, the .NET version and a list of loaded assemblies are sent with the stack trace.
- Collect the end-user's email address - impress your customers by telling them when the problem has been fixed.
- Custom templates (available in SmartAssembly Pro - part of the SDK package) - gives full control over the dialog box displayed to end-users when an exception occurs.
- Shared exception reports - view the exception reports for applications built by any developer or build system in your organisation.
- Attach files to error reports (available in SmartAssembly Pro) - log files, screenshots or any other type of file can be attached to error reports.
- Secure - error reports are encrypted when stored in the web service and are deleted from the server when you download them.
- Web service hosted by Red Gate - no complicated installation - Red Gate hosts the web service that error reports are sent to.
- Custom web service (available in SmartAssembly Pro) - run the web service yourself for maximum flexibility.
You can dramatically simplify your deployment process by using SmartAssembly to merge and embed the code from referenced DLLs into your main assembly.
You can control SmartAssembly's dependency merging and dependencies compression and embedding through the command line, so it is easily integrated into the build process, providing simple, reliable merging of dependencies on every build.