We just shipped the latest update to Dotfuscator, the 4.5.1200 version. This release adds beta support for integration with Visual Studio 2010 Beta 1 as well as the ability to obfuscate and instrument .NET 4.0 assemblies.
Also in this release, we have added the ability to add expiration behavior to Compact Framework applications via Shelf Life.
We now support obfuscating Silverlight 3 assemblies. In addition we have made numerous enhancements, especially to our Smart Obfuscation technology that analyzes assemblies and detects items that should be automatically excluded from renaming or removal. We also expanded our built in rules, that provide you with an easy to use way to add preconfigured renaming and removal exclusion rules that match your situation.
We added the ability for Dotfuscator PRO to insert the SuppressIldasmAttribute into your output assemblies, thus preventing them from being disassembled by Microsoft’s Ildasm utility. In addition, if you use Dotfuscator to create PDB’s for your application you now have greater flexibility in selecting the sequence points in your PDB and JIT optimizations for your assemblies.
We have also made many usability enhancements, including the option to have Dotfuscator search the User Defined Assembly Load Paths first rather than last when resolving references. New preprocessing analysis has also been added to better discern cases where an already obfuscated assembly is added as an input assembly as well as enhancements to the build process.
As with any release we have resolved several customer and product issues. One of the most interesting issues was that the analysis of large (> 1MB) methods with significant branching was failing on x64 machines with a StackOverflowException. We build Dotfuscator targeting the AnyCPU platform so that it will run as a 64 bit application on x64 operating systems and as a 32 bit application on non-x64 systems. We found that we could reproduce the exception on an x64 test system but if we changed our executable to force it to 32 bit mode the exception did not occur. This is unusual behavior, as normally pure managed code provides a great abstraction from the data size of the underlying operating system. In this case the issue may have been caused by the larger sized data in x64 depleting the allocated stack space more rapidly than 32 bit sized data. Luckily, our crack team of developers was able to alter our algorithm to work around this situation so that we can continue to compile as AnyCPU and take full advantage of the easily available extra address space of x64 systems.
For a summary of the changes in Dotfuscator 4.5.1200 check out the change log here or subscribe to the change log in your RSS reader here .
This update is available to all customers who are current with their maintenance. Download it here , give it a try, and let us know what you think.