Ildasm is a companion tool to the NGWS Runtime IL Assembler (ilasm.exe). Ildasm takes a portable executable (PE) file containing IL code and creates a text file suitable as input to the IL Assembler. This ability to round trip code can be useful, for example, when compiling code in a programming language that doesn’t support all of the runtime metadata attributes. The code can be compiled, then the output run through ildasm, and the resulting IL text file can be hand edited to add the missing attributes. This can then be run through the IL Assembler to produce a final runnable file.
Note Note that at the present time, PE files produced by Visual C++ can't be round-tripped using ildasm.
ildasm [options] PEfilename [options]
Options for .exe, .dll, .obj, and .lib files:
Option | Description |
---|---|
/OUT=filename | Creates a file (with the specified filename) for output, rather than simply presenting the output results in a dialog box. |
/TEXT | Presents the output results in a console window, rather than a file or a dialog box. |
Additional options for .exe and .dll files:
Option | Description |
---|---|
/OWNER=ownername | Sets the owner's name to disassemble a protected file. The owner's name is required if the name was set when the file was assembled (using the Ilasm tool). |
/BYTES | Show actual bytes, in hex, as instruction comments. |
/RAWEH | Show exception handling clauses in raw form. |
/TOKENS | Show metadata tokens of classes and members. |
/SOURCE | Show original source lines as comments. |
/LINENUM | Include references to original source lines. |
/VISIBILITY=vis [+vis …] | Only disassembles types or members with the specified visibility. Valid values for vis are: PUB, PRI, FAM, ASM, FAA, FOA, and PSC. |
/PUBONLY | Only disassembles public types and members. Equivalent to /VISIBILITY=PUB. |
/QUOTEALLNAMES | Include all names in single quotes. |
/NOBAR | Suppress disassembly progress bar pop-up. |
For .exe and .dll files, console output only (if /OUT is specified):
Option | Description |
---|---|
/NOIL | Suppress IL assembly code output. |
/HEADER | Include file header information in the output. |
/ALL | Combination of /HEADER, /BYTES, /TOKENS. |
For .exe, dll, .obj, and .lib files, console output only (if /OUT is specified):
Option | Description |
---|---|
/ITEM=class [::method sig] | Disassembles the specified item only. |
For .lib files, console output only (if /OUT is specified):
Option | Description |
---|---|
/OBJECTFILE=filename | Show metadata of a specific object file in a library. |
Option key is '-' or '/'.
All ILASM and ILDASM options are recognized by first three letters, so /NOL equals /NOLISTING, /RES=myresfile.res equals /RESOURCE=myresfile.res, etc. The options are case-insensitive.