Easy way to modify IL code


Sometimes I try to write a little bit of IL code or modify bits and pieces here and there (specially modify IL generated from say C# code).

The problem is writing up the complete IL that compiles into an exe is a pain (specially because my usage is to tweak them). To work around this I use the following flow which I thought I'd share

  1. Write C# code that meets the need
  2. Build it
  3. Disassemble the exe by using the following command
    ildasm /out=file.il My.exe 
  4. Tweak the IL inside the file.il file
  5. Assemble it back again with
    ilasm file.il

the neat part is the /out parameter which makes ildasm dump a single IL for the entire code. At the beginning I used to try patching the code up by copy-pasting from ILDASM UI which show separate IL code for every method 🙁

Comments (3)

  1. Sir, I found in a msdn blog , a tool just to incorporate the IL codes into the C# file , while COMPILING.

    http://blogs.msdn.com/jmstall/archive/2005/02/21/377806.aspx

    refer this , interesting clever implementation, but will work only above net 2003.

  2. You should take a look at Cecil:

    http://www.mono-project.com/Cecil

    In their own words: "In simple English, with Cecil, you can load existing managed assemblies, browse all the contained types, modify them on the fly and save back to the disk the modified assembly."

Skip to main content