Tuesday, June 20, 2006

I've been working late nights and weekends on my pet project for the last several months, and it's high time to see what other people think about it. If you haven't figured it out from the name already, here's what Assemblur is and what it does.

Assemblur (coined from assembly and blur) is yet another obfuscator for the .NET platform. Even though I just wrote 'yet another', I believe Assemblur has enough distinctive features that make it potentially interesting to a wider circle of people.

Assemblur's so called unique value propositions are simplicity and reliability (well, we'll see about that during beta testing). It lacks many features available in advanced obfuscators, but hopefully it does a good job at what's been advertised.

Speaking of which, here's a feature list:

- .NET Framework 2.0 support 
    Obfuscation of generic types and methods
- Managed C++ assembly obfuscation 
    Processing of assemblies that contain unmanaged code
- Cross-assembly obfuscation
    Consistent renaming of identifiers across multiple assemblies
- Flexible exclusion mechanism 
    Exclusion of namespaces, types, methods, fields and even individual properties and events
    Automatic global exclusion of resources, enumerated and serializable types
- Obfuscation preview (simulation)
    Experimenting with different obfuscation settings without having to recompile code
- Full Visual Studio integration (add-in version)
   Automatic detection and use of Visual Studio project settings
   Transparent integration into the Visual Studio build process

Last but not least: Assemblur is (and will be) free for use in software projects consisted of a single compiled assembly.

Currently there's only a Visual Studio 2005 add-in version. The standalone version is a few weeks of work away but it will have to stay a moving target for a while.

Here are some screenshots and an idyllic, 9 MB (12-minute) flash presentation of Assemblur in action, trying to digest Paint.NET (I won't spoil the movie ending):

Assemblies page

Renaming page

Exceptions page
Preview page

If you are interested in beta testing it, where "beta testing" really means "spending considerable time using it on a daily basis and providing feedback", then please contact me.