.NET Anwendungen können ganz einfach demontiert werden, wenn Sie nicht verschleiert wurden. SmartAssembly ist ein Quelltextverschleierer, der Ihre Anwendungen gegen Reverse Engeneering und Modifikation schützt, indem er den Zugang auf Ihren Quellcode für Dritte erschwert.
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.
.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.
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.
Obfuscation can be integrated into build processes using MS Build or command-line, and supports .NET 2.0 to 4.5, Silverlight 2.0 to 5.0, XNA, and Windows Phone 7, with some exceptions.
Only one thing's worse than finding out your software has bugs: never finding out.
Most users won't bother to report bugs: it's tricky and technically challenging to remember and relate the details. It would be easier for everyone if you let your users just give you the whole story in one quick click, wouldn't it?
Automated Error Reporting is an exception handling mechanism that automatically and silently collects detailed information when errors occur. Although highly customizable, a typical error report consists of a full stack trace and details about the exception context (e.g. values of all the local variables).
There are two main circumstances where Automated Error Reporting is particularly useful:
1.In the pre-release phase (e.g. beta testing), when you want lots of early user feedback to help you ship a stable application.
2.In post-release maintenance, when you want to streamline and speed up the process of debugging and fixing your software.
Using the SDK, you can also package any data you want with the exception report, e.g. a log file or a screenshot taken at the time of the crash. You can even customize your exception handling dialog and ask the user for more information, or contact details so you can contact them when a fix is released.
If you track bugs with JIRA, SmartAssembly Sync for JIRA can save you even more time during the error-fixing process. It moves error reports across to your bug-tracking system automatically and even groups duplicate reports together. Find out more on the JIRA blog.
And if you're using SmartAssembly's obfuscation functionality in your development, we've got you covered – SmartAssembly can decode obfuscated stack traces.
Addition of Automated Error Reporting functionality can be integrated into build processes using MS Build or command-line, and supports .NET 1.1 to 4.0, Silverlight 2.0 to 4.0, XNA, and Windows Phone 7, with some exceptions.
Compiling .NET code often results in multiple assembly files being created, including satellite DLLs, all of which are required for the program to run. While this is a non-issue during development, when it comes to deployment it often means an unwanted stage of users having to unzip files, or additional steps in the installer as DLLs are moved to specific places.
You can dramatically simplify your deployment process by using SmartAssembly to merge and embed the code from referenced DLLs into your main assembly
Dependency merging takes all the DLLs and merges dependencies into the main assembly so you don't have to load lots of DLL files. When a dependency is merged, it becomes a part of the main assembly and the code from a merged dependency can therefore be obfuscated and pruned as well as code from the main assembly.
Dependencies Compression & Embedding
Dependencies compression and embedding allows referenced DLLs to be embedded into the main assembly as resources, instead of being merged into the main assembly's contents. This feature also compresses these resources and dynamically uncompresses them at runtime.
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.