Any one who programs in .NET is well aware of Lutz Roeder's .NET Reflector.  It is a tool which allows you to disassemble .NET assemblies in to IL, C#, Visual Basic and several other languages.    This tool also supports many add-ins which add cool features to it.  Today I came across one that I had been wanting for a while.  It is called Reflexil and it allows you to modify the code of an existing assembly.  You can modify any of the IL and it even is beginning to support rewriting in C# or VB parts of the existing assembly. 

image

 

Really cool!