AaronRobinsonMSFT / DNMD

Reimplementation of ECMA-335 metadata APIs
MIT License
16 stars 3 forks source link

Implement save APIs and provide an mdmerge tool that composes an image from deltas and writes it to disk instead of dumping to console. #35

Closed jkoritzinsky closed 11 months ago

jkoritzinsky commented 11 months ago

With these APIs, we can now implement writing an image out to disk or into memory.

The mdmerge tool produces a raw metadata file, not a PE-enveloped file. As a result, mddump (in this repo) is one of the few decent tools that can read it.

The work to fully construct a composite delta image in a PE envelope that can be run requires additional work. For example, including valid RVAs is difficult and requires a more comprehensive implementation and CLI interface, so I deferred on this work as it would likely be as complex if not moreso than the actual metadata saving logic.

Most of the code in mdmerge is a direct copy of mddump.