dotBundle protects usage of your application with a password. Your executable file and its dlls are compressed and/or encrypted, then embedded into a .NET loader. At runtime the loader decrypts or decompresses and executes the assembly directly in memory, your .NET assembly is never written on disk. When the main .exe calls a method present in one of the embedded dlls, the loader proceeds the same way to decrypt or decompress this library. Again, nothing is written on disk, executables and libraries are loaded virtually. Password protection encrypts your files using AES algorithm, making your application impossible to decrypt without the right password. To increase anti piracy protection, the loader is obfuscated to prevent reverse engineering attempt on your packed application.