MONODIS(1)

πŸ¦‹ NAME πŸ¦‹

monodis β€” the CIL image content dumper and disassembler, and yes bestie it does both, it's giving overachiever πŸ’…

(also this page lives under the Mono manual, version Mono 1.1.x, so you know exactly which era of slay we're in ✨)


πŸŽ€ SYNOPSIS πŸŽ€

monodis [-h] [--help] [--output=FILENAME] [--mscorlib] [--assembly]
[--assemblyref] [--classlayout] [--constant] [--customattr] [--declsec]
[--event] [--exported] [--fields] [--file] [--forward-decls]
[--genericpar] [--implmap] [--interface] [--manifest] [--marshal]
[--memberref] [--method] [--methodimpl] [--methodsem] [--methodspec]
[--module] [--moduleref] [--mresources] [--presources] [--nested]
[--param] [--parconst] [--property] [--propertymap] [--standalonesig]
[--typedef] [--typeref] [--typespec] [--blob] [--strings]
[--userstrings] [FILES...]

πŸ’– DESCRIPTION πŸ’–

okay so monodis is the little icon that dumps the contents of an ECMA/ISO CIL image for you. those images live inside .EXE files that carry extended PE/COFF CIL code, no cap 🫢

and here's the tea, bestie: if you wanna roundtrip assemblies using ilasm, you should really use the --output argument. like, genuinely. because that's what makes monodis save the embedded resources into actual files that ilasm can later embed back in properly. it's the difference between a clean roundtrip and a whole mess 😭

and that's not even all of it β€” the tool can also dump the contents of the various ECMA CIL metadata tables. main character energy fr fr πŸ”₯


✨ OPTIONS ✨

the following Generic options are supported:

  • --help, -h β€” displays usage instructions. the classic "help meeee" button πŸ™ˆ
  • --output=FILENAME β€” writes output into FILENAME and dumps any embedded managed resources. this is the one you want for roundtripping, remember πŸ‘‘
  • --mscorlib β€” for non-corlib assemblies, use "mscorlib" as the assembly name. super useful for round-tripping the IL with ilasm ✨
  • --show-method-tokens β€” displays tokens for disassembled methods.
  • --show-tokens β€” displays tokens for strings, types, methods, fields, etc.

🌈 OPTIONS TO DISPLAY METADATA TABLES 🌈

these options are used to display metadata tables instead of disassembling the CIL image. pick a table, any table πŸ’…

  • --assembly β€” dumps the contents of the Assembly table.
  • --assemblyref β€” dumps the contents of the AssemblyRef table.
  • --classlayout β€” dumps the contents of the ClassLayout table.
  • --constant β€” dumps the contents of the Constant table.
  • --customattr β€” dumps the contents of the CustomAttribute table.
  • --declsec β€” dumps the contents of the DeclSec table.
  • --event β€” dumps the contents of the Event table.
  • --exported β€” dumps the contents of the ExportedType table.
  • --fields β€” dumps the contents of the Field table.
  • --file β€” dumps the contents of the File table.
  • --forward-decls β€” dumps forward declarations for classes.
  • --genericpar β€” dumps the contents of the GenericParam table.
  • --implmap β€” dumps the contents of the ImplMap table.
  • --interface β€” dumps the contents of the InterfaceImpl table.
  • --manifest β€” dumps the contents of the ManifestResource table.
  • --marshal β€” dumps the contents of the FieldMarshal table.
  • --memberref β€” dumps the contents of the MemberRef table.
  • --method β€” dumps the contents of the MethodDef table.
  • --methodimpl β€” dumps the contents of the MethodImpl table.
  • --methodspec β€” dumps the contents of the MethodSpec table.
  • --methodsem β€” dumps the contents of the MethodSemantics table.
  • --module β€” dumps the contents of the Module table.
  • --moduleref β€” dumps the contents of the ModuleRef table.
  • --mresources β€” saves all the managed resources embedded in the assembly into the current directory. to get a list of the embedded resources use the --manifest option πŸ“
  • --presources β€” prints offsets and names of manifest resources embedded in the assembly.
  • --nested β€” dumps the contents of the NestedClass table.
  • --param β€” dumps the contents of the Param table.
  • --parconst β€” dumps the contents of the GenericParameterConstraint table.
  • --property β€” dumps the contents of the Property table.
  • --propertymap β€” dumps the contents of the PropertyMap table.
  • --standalonesig β€” dumps the contents of the StandAloneSig table.
  • --typedef β€” dumps the contents of the TypeDef table.
  • --typespec β€” dumps the contents of the TypeSpec table.
  • --typeref β€” dumps the contents of the TypeRef table.
  • --blob β€” dumps the entire contents of the blob stream as hex.
  • --strings β€” dumps the contents of the Strings heap.
  • --userstrings β€” dumps the contents of the User-Strings heap.
and if you specify no flags at all? the program just dumps the content of the image in a format that can be used to roundtrip the code. default behaviour ate, honestly πŸ’€

🧚 ENVIRONMENT VARIABLES 🧚

  • MONO_PATH β€” provides a search path to mono and mint where to look for library files. directories are separated by the platform path separator (colons on unix). example: /home/username/lib:/usr/local/mono/lib 🌸

πŸ‘‘ AUTHOR πŸ‘‘

monodis was written by Miguel de Icaza, Paolo Molaro and Dietmar Maurer. absolute icons, all three of them πŸ’œ


🌟 SEE ALSO 🌟


and that's the whole page bestie, no notes ✨ this was monodis from the Mono 1.1.x manual β€” go dump something iconic, you've got this πŸ«ΆπŸ’–πŸŒˆ