I’m working on some new types of SWF file encryption to demonstrate at 360 Flex San Jose. If you’ve read my Inside RIA articles, you know that the main technique used by NitroLM to encrypt swf files is to create a wrapper application and load/decrypt the real application using a SWFLoader. The problem with this technique is that it’s a little bit kludgy and adds deployment complexity. It also has some difficulty in AIR in that if you wrap an <mx:Application> inside an AIR app, you won’t be able use some of the Native AIR functionality.
I’ve been dilligently working on a new technique for encrypting modular applications. Basically, you’ll write your flex or AIR app as you normally would and break up functionality into modules loaded by <mx:ModuleLoader>. You could also put pretty much all of your code in a single module if you wanted to. Then, when you’re ready to deploy, just comment out the <mx:ModuleLoader> tags and replace them with <nitrolm:EncryptedModuleLoader> tags.
There’s a few other steps including encrypting the module SWFs with an AIR application called AssetEncrypter, but the process is much more straightforward than the wrapper technique. It’s also much easier for the developer to code because they don’t have to deal with the keys and decryption themselves. All of the complex functionality has been done for you in the <nitrolm:EncryptedModuleLoader>