Skip to content

ramikg/tdinfo-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TDInfo Parser for IDA

An IDAPython script which parses Turbo/Borland symbolic debug information (aka TDInfo) and imports it into your IDA database.

Inspired by the pwnable.kr challenge dos4fun.
Written with DOS in mind.

Requirements

  • IDA 7.0+ & Python 2/3
  • pip install -Ur requirements.txt

Components

  • tdinfo_structs.py: construct definitions of the different TDInfo structs.
    This file is independent of IDA, and may be utilized to import the symbols into other programs which support Python.
  • tdinfo_parser.py: An IDAPython script which parses the executable (using said definitions) and imports its symbols into the IDA database.

Usage

  1. Consider applying FLIRT signatures (see below).
  2. Press Alt+F7 to load tdinfo_parser.py into IDA.
  3. Call TdinfoParser().apply().

Some Turbo Tips

I'm usually not one for documentations going out of scope, but hey, if you're reading this then you're probably already plucking forgotten pieces of information from arcane niches of the Internet; why shouldn't I chip in?

The following pointers may help get you near your goal:

  • IDA's entry point analysis may fail to recognize that an executable was compiled with a Turbo/Borland compiler.
    You can still import IDA's TCC/BCC symbols manually by loading the compiler's signature file (File -> Load file -> FLIRT signature file...).

  • TD (Turbo Debugger for DOS) – apart from being a decent debugger – automatically parses TDInfo symbols.

  • TDump (Turbo Dump) may be used for a more complete parsing of the debug information.

About

Turbo/Borland debug information parser for IDA

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages