LucienMP / idapro_m68k

Extends existing support in IDA for the m68k by adding gdb step-over and type information support

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

idapro_m68k

Extension of the existing IDA processor module for the Motorola 68000 processor family

Several versions of the programmers reference manual can be found online, below is the main source used in this module:

Python was chosen because it doesnt need the SDK, compiler, or other overhead and is simpler to work with initially for beginners. However performance maybe worse than C, some functionality maybe impossible or difficult, and the API varies from that of the standard C api a little and can lead to confusion.

This is a sample plugin for extending gdb support for step-over for the M68K, and to enable type information support so you can press "y" on functions and have the parameters propagate inside and back out of the funciton.

When you install a hook in the HT_IDP category, it will be called before the processor module's notify() function, so if you return non-zero, your results will be used.

Steps used to implement these features are:

  1. Add GDB style XML files for the CPU register descriptions to $IDA_HOME/cfg/
  2. Add to the section in $IDA_HOME/cfg/dbg_gdb.cfg that integrates that XML for GDB CONFIGURATIONS = { "M68K" : ... IDA_FEATURES = { "m68k" : ... NOT NEEDED> ARCH_MAP = { "m68k" : ... NOT NEEDED> FEATURE_MAP = ...
  3. Add function to handle step-over understanding around branches The ev_calc_step_over interprets the current instruction. If it is a JSR/BSR routine call then it will advance the IP to the next instruction. In all other cases it will advance to the next insturction by passing back BADADDR
  4. Add function to handle type info (funciton name, and paramater propagation) To enable type support you must set PR_TYPEINFO in ph.flag and implement most of the related callbacks (see "START OF TYPEINFO CALLBACKS" in idp.hpp from the IDA SDK).

Many thanks to Ilfak Guilfanov @ Hey-Rays for all his help.

Usage

Copy the various files into the IDA installation. Create a m68k based deubg db, and set the gdb remote connection.

Known Issues

Authoring information

Lucien Murray-Pitts (lucienmp_antispam@yahoo.com)

History

2019-02-28 v1.0 (c) Lucien Murray-Pitts - Initial version to support step-over in ida v7.2

License

GNU v3.0

About

Extends existing support in IDA for the m68k by adding gdb step-over and type information support

License:GNU General Public License v3.0


Languages

Language:Python 100.0%