MDILDump icon indicating copy to clipboard operation
MDILDump copied to clipboard

Dump tool for CLR MDIL assemblies

MDILDump

This is a dump tool to parse the .mdil section in .NET assemblies containing MDIL or "Machine Dependent Intermediate Language".

This work is completely for personal research purposes.

Currently it only supports assemblies generated by CrossGen 4.0.50829.0 in Windows Phone 8 SDK RTM.
Usually it will be installed in %ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\Tools\MDILXAPCompile

System assemblies containing ARM MDIL code are installed in
%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\DeviceNativeLibraries

System assemblies in the WP8 emulation VHD images contain x86 MDIL code, valuable for comparision
%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images\Flash.vhd
[SystemPartition]\Windows\System32\*.ni.dll

About MDIL

Microsft introduced MDIL for CoreCLR with the release of Windows Phone 8 and its SDK.
See https://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-and-Peter-Sollich-Inside-Compiler-in-the-Cloud-and-MDIL

Some of the technical specifications of MDIL can be found in these patents:
Intermediate Language Support For Change Resilience
US Patent 8365156 http://www.freepatentsonline.com/8365156.html
US Patent 8375373 http://www.freepatentsonline.com/8375373.html
or
USPA 20110258615 http://www.freepatentsonline.com/y2011/0258615.html
USPA 20110258616 http://www.freepatentsonline.com/y2011/0258616.html
The information in these documents are a little bit outdated but still very useful and accurate, MDILDump is mainly based on this.

The Bartok compiler in Singularity RDK and Verve OS (the "verify" folder) also supports MDIL but very old and outdated.