Case study: Protection without sacrificing speed
Constantin Tivis was nervous, and who could blame him?
A software architect for Progeneric Systems, he was trying to obfuscate a generic and parallel C# library for .NET developers. The library contained thousands of methods built up over several years. Tivis had spent hours on each method to debug, test, and improve the library's speed, and didn't want anything messing with the integrity of his code.
Tivis' apprehension was reinforced by the initial obfuscator products he evaluated.
One of them broke his library completely by altering the access modifiers of his methods. Others couldn't pass his rigorous verification process comprising 30,000 test cases. The few obfuscators that passed unit tests failed miserably on his benchmarks; on average, obfuscated code was three times slower than the original.
Technical support people for the obfuscator products didn't help. Tivis says,
Almost everyone from technical support asked me to exclude the methods that caused the problems, but with more than 6,400 methods in my library, this was definitely not an option for me.
The no-compromise alternative
Obfuscating his library with SmartAssembly from Red Gate was a revelation for Tivis.
He needed to perform only one or two tweaks on the SmartAssembly interface, and then sign and build his library. All of his unit tests passed immediately. He checked the obfuscated code with two decompilers, and it looked good.
He ran the benchmark tests and two hours later compared results line by line. Not only was the time spent by each method the same, but in quite a few instances it was better.
Tivis' original library was optimized for speed and built for a specific target, so he definitely couldn't sacrifice quality for code protection. He says he hasn't had to make compromises with SmartAssembly.
Bottom line, the SmartAssembly product not only protects your code, it preserves your software integrity and quality. It's professional and high-quality, and I recommend it highly.
Try SmartAssembly for yourself:
SmartAssembly can protect your Winforms, Silverlight, Windows Phone 7, ASP.NET applications and more. It can also be integrated into build processes using MS Build or the command-line.