-
-
Notifications
You must be signed in to change notification settings - Fork 142
Open
Labels
Description
Problem Description
One of the major formats used for storing symbols is PDB v7.0. Symbols are often crucial when it comes to reverse engineering executable files (especially for native binaries containing only machine code). Currently, AsmResolver is not able to read / write these kinds of files.
Proposal
Add read/write support for Windows PDB files, by adding a new package AsmResolver.Symbols.Pdb.
- Low level MSF file support (Basic read/write support for MSF 7.0 files #324).
- Read
- Write
- Lower level support for PDB streams within MSF files.
- PDB Info stream (PDB Info and DBI streams #326)
- Read
- Write
- DBI stream (PDB Info and DBI streams #326)
- Read
- Write
- Modi streams (Read support MODI Streams and typical associated Symbol Records #412)
- Read
- Write
- Global and Public Symbol streams
- Read
- Write
- TPI and IPI streams
- Read
- Write
- PDB Info stream (PDB Info and DBI streams #326)
- Higher level support for CodeView PDB symbols within the PDB streams.
- Leaves
- Read (Read Support Symbol Leaves #411)
- Write
- Symbols
- Read (Read Support for Symbol Records #410)
- Write
- Line number information
- Read
- Write
- Leaves
Alternatives
Alternatives for .NET specifically seem to be lacking.
- There is the official DIA provided by Microsoft, but this depends on native DLLs, prohibiting the use of it on other platforms such as Linux or MacOS.
- Microsoft.Cci comes with a PDB reader and writer, but these are very old libraries and are not maintained any more. Furthermore, Microsoft.Cci.PdbWriter depends on DIA as well.
- Mono.Cecil and dnlib also provide PDB support, but these are limited to only parts of the PDB spec, and focus only on exposing it for .NET binaries.
Additional Context
This is a tracking issue.
Related #297