SmartAssembly 6.6 release notes
Published 02 January 2013
January 12th, 2012
This version adds a new form of obfuscation, called Method Parent Obfuscation (SmartAssembly 6.6 Professional and Developer only).
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. Please note that Method Parent Obfuscation may not work with all types of assemblies, so if you have trouble processing an assembly with Method Parent Obfuscation enabled, you should try again without Method Parent Obfuscation.
We have added a new Control Flow Obfuscation mode called 'Unverifiable'. This offers enhanced control flow obfuscation for desktop applications that will have full trust.
SmartAssembly 6.6 also contains numerous bug-fixes, including:
- High memory usage caused OutOfMemory Exceptions with large assemblies (SA-1276)
- When pruning was enabled, MethodImpls of overridden pruned methods were not pruned (SA-846)
- With all SmartAssembly features disabled, custom attributes were not included after processing (SA-1291)
- SmartAssembly crashed when an invalid exclusion was specified (SA-1236)
SmartAssembly 6.6 supports Silverlight 5.
SmartAssembly 6.6 is a recommended update for all users of SmartAssembly 6.5.
Please note: In SmartAssembly 6.6.0, using Method Parent Obfuscation may make stack traces provided by Automated Error Reporting incorrect. This bug should be fixed in the next release but, in the meantime, if you are affected, see SmartAssembly stack trace is invalid when Method Parent Obfuscation is enabled.
SmartAssembly 6.6.1 (February 1st, 2012) fixes the following bugs:
- enabling Method Parent Obfuscation could cause the error reporting stack trace to have the wrong type names
- SmartAssembly crashed with a serializable type in a Silverlight assembly
- attributes were pruned, even when the DoNotPruneType attribute is present
- SmartAssembly worked incorrectly when a referenced assembly was signed with a full public key, rather than the token
In addition, Feature usage reporting will now report Amazon EC2 and Windows Azure in the Platform data.
SmartAssembly 6.6.2 (February 17th, 2012) fixes the following bugs:
- Custom error reporting and custom feature usage reporting dialogs based on the samples in the SDK failed to work when directly referenced.
- Parameters on obfuscated methods were not obfuscated.
- With advanced obfuscation enabled, an assembly with a class implementing two different implementations of the same generic interface would crash.
SmartAssembly 6.6.3 (March 6th, 2012) fixes the following bugs:
- Improved memory usage when building very large assemblies with error reporting
- Improved memory usage when building very large assemblies with PDB files
- An issue in the automatic Check for Updates client
SmartAssembly 6.6.4 (April 12th, 2012) fixes the following bugs:
- In previous versions of SmartAssembly, you could leave dependencies unmerged, which needed to be merged.
For more information, see The assembly is being merged, but the dependent assembly isn't
- FlagsAttribute was pruned
- Syncfusion assemblies could not be merged
- Assemblies where <Module> is not empty could not be merged
- Microsoft.Ink could not be merged
- OutOfMemory exceptions with 64bit-only assemblies
We have also improved support for Windows Phone 7.1 and Windows Phone 7.5, SQL CLR assemblies and assemblies using PostSharp.