One thing that people that develop .NET applications know is that users can use tools to decompile the app and get to your source code. This is good and bad. The good is that it is easy to look at source that people use and see how they do things. The bad is that people can look around at your source and steal what you do or even unlock functionality or sell it as theirs.
There are alot of .NET obfuscators and .NET protectors out there to buy. Most do a good job to at least obfuscate the code and at best totally stops the decompiling. When Silverlight came out people were concerned that their dlls would get downloaded and people could just see the code just like with any other .NET assembly. With Silverlight 2, things compile into a dll that gets put into a .XAP file, which is just a zip file. I even have a plugin for .NET Reflector that can look at a Silverlight URL and let you look at the source. If it is this easy to get the source how can developers protect themselves?
I have a protection system that I use for my .NET applications and wanted to see if it would work for a Silverlight 2 application. I ran it using the normal settings that I use for .NET apps and it just throws exceptions for Silverlight. Then I played with all of the options and finally got it to work. It is not as secure as I would like but it works. If you want details on what I use and the settings, please contact me.
I went and searched to see if any other systems out there support Silverlight 2. I found 2 systems out there that say they support Silverlight and 1 that says that it supports .XAP files directly. I mean they are just zip files, why should that be too hard to support. The first one is DeepSea Obfuscator. It says that it supports .XAP and Silverlight 2. The second that I found is SmartAssembly Professtion Edition. I have not used these since mine is working for me, but they are advertising that they support Silverlight and will obfuscate or protect it. Good luck with protecting your Silverlight applications. Let me know if you have success with either of these tools.
Wednesday, January 28, 2009
Wednesday, January 14, 2009
One thing that is interesting about Silverlight 2.0 is that it makes a xap file which is really just a zip file. One thing that you can do to make a smaller xap file is to unzip it and rezip the files using your favorite zip program. On one app that we are working on, using the techniques mentioned in the article we save about 50%. This helps to make the file smaller for downloading and makes it faster for people with slower connections or systems. Take a look and see how much file size you can save....