replay_prototypes_changes

summary: record and replay changes in function prototypes

description:

This is a sample script, that will record (in memory) all changes in functions prototypes, in order to re-apply them later.

To use this script:
  • open an IDB (say, “test.idb”)

  • modify some functions prototypes (e.g., by triggering the ‘Y’ shortcut when the cursor is placed on the first address of a function)

  • reload that IDB, without saving it first

  • call rpc.replay(), to re-apply the modifications.

Note: ‘ti_changed’ is also called for changes to the function frames, but we’ll only record function prototypes changes.

level: intermediate

Attributes

rpc

Classes

replay_prototypes_changes_t

Module Contents

class replay_prototypes_changes.replay_prototypes_changes_t

Bases: ida_idp.IDB_Hooks

memo = []
replaying = False
ti_changed(ea, typ, fields)

An item typestring (c/c++ prototype) has been changed.

Parameters:
  • ea – (::ea_t)

  • type – (const type_t *)

  • fnames – (const p_list *)

replay()
replay_prototypes_changes.rpc