You probably know how easy it is to disassemble .NET code and it took quite a while for Microsoft to come with a solution. This has been a reason why some companies have not made their applications using .NET code. Obfuscating the code has not been good enough. Actually it was another company that came with a solution. Back in January 2007 Microsoft acquired Secured Dimensions and now they are starting to introduce it as a Microsoft service. Take a look at the new website www.microsoft.com/SLPS. SLP Services is about IP protection, license handling.
SLP Code Protector- Microsoft SLP Code Protector helps protect .NET code against disassembling and decompilation. Helps to protect .NET code from being hacked and reverse engineered.
I evaluated Code Protector a few months ago and it was easy and quick to get it working. It just took an hour or two to get familiar with the procedures and to be able to protect the first application. In the version I tried, it was not easy to protect DLL code that for example is to be used in-process like a DLL that needs to be loaded with NETLOAD in AutoCAD. There were workarounds for it I didn't care to try and it might be solved by now.
SLP Server 2008 - SLP Server 2008 enables software vendors and publishers to more flexibly and effectively monetize their software. With a new concept Microsoft call “SKU Agility,” the ISV can create multiple offers based on a single image of the software simply by creating digital licenses that map to pre-defined features. Features can be sold individually or accumulated into a set to create SKUs.
Licensing and Activation - are tools to help prevent piracy and serves multiple purposes – protection, license delivery, upselling, and customer service.
A while ago I got a survey from PreEmptive that got me thinking they would come up with a new solution. I now see that PreEmptive Solutions is one of the resellers for SLPS. Dotfuscator has also been extended to instrument (inject) SLPS software into .NET applications.
For more information: The SLPS blog is here and SLPS on MSDN.