How to Inspect the Internal Structure of a .NET Executable


Challenge

Analyze a .NET executable to identify dependencies upon other assemblies.

The executable in this example was created from Java .class files using the Jblmp utility; the procedure for doing so is covered in a separate item, "How to Convert Java .class Files to .NET Executables."


Solution

Use the IL DASM tool, which is supplied with the .NET Framework SDK. The following command will run IL DASM to inspect the file FirstDotNetApplication.exe:

            ildasm FirstDotNetApplication.exe

 

The following figure shows IL DASM examining the FirstDotNetApplication.exe file:



JbImp preserves the names and types used in the original Java program. The only thing displayed that is not part of the original Java program is the Manifest at the top of the window. The manifest contains the metadata that makes the executable self-describing. You can use IL DASM to inspect the manifest contents (simply double click the word MANIFEST) as shown below:



As this figure illustrates, FirstDotNetApplication.exe depends on three other assemblies: mscorlib (containing core .NET functionality), vjscore, and vjslib (Java language and library functionality). These assemblies are supplied with the .NET Framework SDK and Visual J# .NET.

Using the Jblmp utility to translate working sets of .class files into assemblies and to combine .NET assemblies and Java .class files into a .NET executable or assembly is covered in a separate item, "How to Share and Reference .NET Assemblies."


Source

Integrating Java* and Microsoft .NET*

 


For more complete information about compiler optimizations, see our Optimization Notice.