And I just switched DF Extractor to use XML to not have to deal with maintaining my own .ini parser
A general description of memory layouts would resemble structs peppered with all kinds of hardcoded data types (stl classes, etc.). Maybe some kind of XML file that describes the memory structures? With a few extra basic types like (1D,2D,3D) arrays and sparse structs it should be doable. There will also have to be either very strict memory management or garbage collection. Not that hard IMHO. Question is if it's pratical to do it this way. In the end, it doesn't really matter if it's XML or C++ code... maybe a set of nice memory r/w access classes would do.
I've got the OS-specific process enumeration and memory offset stuff done. There's functionality for platform-independent memory reading and a model of the DF map for version ~40d with a big part of the extraction stuff already done - basic map structures like in 3dwarf and stone/soil/vein matgloss, which the svn version of khazad already uses.
Next step is to break down the extractor into parts, make it DF version specific (by subclassing... or maybe expanding the DataModel classes) and make the parts writable. Then add more stuff - items, creatures, constructions, ?trees?. I guess you've already got some of those covered and others have the rest