Resources for Information on Writing an IL Disassembler

I'll keep ading to this list as I find more stuff.  Other than the documents located on your harddrive under “C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\docs“, this is what I have found for resources:

Blogs
http://blogs.msdn.com/joelpob/default.aspx
http://pzsolt.blogspot.com/
http://blogs.msdn.com/matt_pietrek/default.aspx

Websites
http://sourceforge.net/projects/dile/
http://vijaymukhi.com/documents/books/metadata/contents.htm
http://vijaymukhi.com/documents/books/ildasm/ildasm.htm
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconInsideNETFramework.asp
http://www.ecma-international.org/publications/standards/Ecma-335.htm
http://www.mono-project.com/Cecil (added 1/29/06)

Articles
http://blogs.msdn.com/joelpob/archive/2004/09/22/233121.aspx
http://www.codeproject.com/dotnet/asmex.asp
http://bschwehn.de/ICeeFileGenPart1.html
http://msdn.microsoft.com/msdnmag/issues/1000/metadata/default.aspx
http://msdn.microsoft.com/msdnmag/issues/02/02/PE/default.aspx
http://www.blong.com/Conferences/DCon2003/ReverseEngineering/ReverseEngineering.htm
http://wiki.cs.uiuc.edu/cs427/.Net+CLR+Internals#CoReMet
http://www.zyloid.com/recomposer/files/diss.pdf

Newsgroups
http://www.gotdotnet.com/Community/MessageBoard/MessageBoard.aspx?id=2838 (added 1/29/06)- MSIL

Presentations
http://www.iunknown.com/Files/metadata_internals.pdf - Metadata Internals, by John Lam
http://www.clevelanddotnet.info/presentations/UnderstandingMSIL.ppt - Understanding MSIL, by Sam Nasr
http:/www.migang.org/LinkClick.aspx?link=obfuscation2.ppt&mid=354 - Creating a .Net Obfuscator: File Structure, IL, Obfuscation and Fingerprinting in .Net Executables, Godfrey Nolan
http://pllab.cs.nthu.edu.tw/cs3404/slides/MSIL_CLR_20050602.ppt - MSIL & CLI, by Kuen-Yuan Shieh
http:/www.msakademik.net/academicdays2005/Serge_Lidin.ppt  - IL Assembler Today and Tomorrow, Serge Lidin

Books
Applied Microsoft .Net Framework - Jeffrey Richter
Inside Microsoft .Net IL Assembler - Serge Lidin
Shared Source CLI Essentials - David Stutz, Ted Neward, Geoff Shilling
CIL Programming: Under the Hood of .Net - Jason Bock (added 9/10/05)
Reversing: Secrets of Reverse Engineering - Eldad Eilam (added 9/10/05)
Decompiling Java (added 1/29/06)

Disassemblers/Decompilers/Explorers/Browsers (most found via - SharpTool Box and Proogram-Transformation.org)
http://sourceforge.net/projects/dile - DILE
http://www.aisto.com/roeder/dotnet/ - Reflector
http://www.strangelights.com/Fsharp/callgraph.aspx - Assembly Explorer
http://www.oaklandsoftware.com/product_1.html - .Net Component Inspector
http://www.remotesoft.com/dotexplorer/ - Remotesoft .Net Explorer
http://www.lesser-software.com/en/content/products/LSW%20DotNet-Tools/LSW_DotNet_Reflection_Browser.htm - LSW DotNet- Reflection - Browser
http://www.jbrowse.com/products/asmex/ - ASMEX
http://www.solishine.com/Home/Products/SoliNav/tabid/54/Default.aspx - SoliNav
http://www.codeproject.com/csharp/controlinspector.asp - ControlInspector
http://www.sliver.com/dotnet/statebrowser/ - Object State Browser
http://www.netdecompiler.com/ - Dis#
http://www.smidgeonsoft.prohosting.com/pebrowse-pro-interactive-debugger.html - PEBrowse Professional Interactive Debugger
Mono's IL disassembler - monodis - Has some nice command line parameters that allow you to only output specific metadata table contents
http://www.remotesoft.com/salamander/ - Remotesoft .Net Decompiler
http://www.saurik.com/net/exemplar/ - Anakrino (the original open source .Net Decompiler, which I don't believe is active right now ...)
http://www.9rays.net/cgi-bin/components.cgi?act=1&cid=86 - Spices.Net

posted on Sunday, July 24, 2005 4:26 AM

Feedback

# Added some new stuff to the Disassembler Resources listing

9/10/2005 9:57 AM | Jason Haley

# Add more stuff to the IL Dissasembler resources listing

9/17/2005 4:33 AM | Jason Haley

# Added more stuff to the IL Dissasembler resources listing

9/17/2005 11:13 AM | Jason Haley

# Thanks (+ a few potential additions to your list)

Thanks, your list gave me a small idea about my new project.

Below are some additional PE/metadata-related libraries, in case you wish to add them to your list:

http://dotnethook.sourceforge.net/
http://dotnet.di.unipi.it/MultipleContentView.aspx?code=103
http://gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=F5939CF8-3FB7-4D6D-B00C-B5F8DFA29DD3

Vladimir
9/26/2005 7:17 AM | Vladimir Klisic

# Added some more stuff to the IL disassembler Resources listing

10/8/2005 6:54 AM | Jason Haley

# re: Resources for Information on Writing an IL Disassembler

Just apply for a Canon Developer program and you'll get it

# Tufad

thank you very much
4/15/2008 6:25 AM | tufad

Post Comment

Title  
Name  
Url
Comment   
Please enter the following code into the box below to stop spammers

  
Enter Code Here *