Query raw ECMA-335 assembly metadata — discover table and heap sections, inspect decoded rows and handles, address table or heap coordinates, and project bounded machine-readable results.
66
80%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill when API views are too high-level and you need the assembly's actual ECMA-335 tables, handles, flags, or heap values. The metadata lens inspects one assembly image and never loads the inspected assembly.
dnx dotnet-inspect -y -- <command>Metadata tables are unbounded and explicit-only: no verbosity or base category
renders them automatically. Structural discovery lists the authored metadata
family without running its producers; add --effective to identify the tables
and heaps that have data for this image:
dnx dotnet-inspect -y -- library MyLib.dll -D @Metadata
dnx dotnet-inspect -y -- library MyLib.dll -D @Metadata --effective
dnx dotnet-inspect -y -- library MyLib.dll -S @Metadata --count
dnx dotnet-inspect -y -- library MyLib.dll -D "Metadata: TypeDef" --effectiveMetadata: Image reports image-level facts. Table sections such as
Metadata: TypeDef, Metadata: MethodDef, and Metadata: MemberRef decode
handles, ranges, heap values, and flags instead of dumping raw integers.
The # column is the real metadata row id. --rows therefore addresses table
rows by displayed, 1-based metadata position rather than by the current page.
Ranges are inclusive, so 100..199 selects 100 rows:
dnx dotnet-inspect -y -- library MyLib.dll \
-S "Metadata: MethodDef" --rows 100..199 --tsv
dnx dotnet-inspect -y -- library MyLib.dll \
-S "Metadata: TypeRef" --columns "Name,Namespace,ResolutionScope" --jsonlTable indices are accepted as input aliases when following a token:
dnx dotnet-inspect -y -- library MyLib.dll -S "Metadata: 0x02"That is the TypeDef table. A full token such as 0x02000015 addresses a row,
not a table, and is rejected by -S.
The heap sections are Metadata: #Strings, Metadata: #Blob,
Metadata: #GUID, and Metadata: #US. Use library coordinate for one exact
coordinate:
dnx dotnet-inspect -y -- library MyLib.dll \
-S "Metadata: #Strings" --rows 20
dnx dotnet-inspect -y -- library coordinate "#Strings:0x1a4" \
--library MyLib.dllHeap addresses are decimal unless prefixed with 0x. String and blob listings
contain distinct values referenced by projected table rows, not a claim of
complete heap enumeration; each listing reports its coverage.
Selecting @Metadata for a package that resolves to several assemblies is
ambiguous and fails. Choose one DLL with library, or use
package Foo --library only when the package has one unambiguous library.
71591ae
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.