Skip to content

LibreCrops/cdef

Repository files navigation

cdef (formerly entitled PdbReader)

Build status

Recover C language structures from Microsoft PDB files.

Help us test this app!

What it is

cdef is a software / software library that recovers structure definitions, which are of help in some low-level programming, from Microsoft PDB files with resort to DIA.

It's designed to be friendly to automation and further development, see the dedicated section below on producers and consumers for more information.

For Users

It won't function without DIA. But if you have Visual Studio development environment installed, it is most likely that you also have DIA installed.

Demonstration

See http://librecrops.github.io/lost-sdk/.

But that's merely a demonstration of cdef.

For further development upon structures or any other customized requirements, you'd better use cdef directly.

Some Comparison

EXCEPTION_REGISTRATION_RECORD

The first structure of NT_TIB.

From NirSoft.

From MoonSols.

From cdef.

PdbReader.exe Usage

usage: PdbReader action file [args]

actions:
list    output types list
xml     output xml data
def     output type definitions

Explore and discover it yourself for the time being.

For Developers

Implementation Details

To be added later.

But now feel free to look at the source code in C# as well as the demo implementation in the Scheme programming language.

Producers & Consumers

cdef understands that DIA can't be made cross-platform with ease, and therefore it will produce an intermediate representation of structures using XML.

That representation can be consumed in any programming languages , as long as someone implements a consumer.

Our consumer in Python is currently under construction, but it is of help when you want to write your own consumer.

Detailed specification of the representation may be added later.

Documentation