jump_tables

This module defines common relations for jump tables.

jump_table_candidate(EA:address, DataEA:address, DataSize:unsigned, TargetEA:address)

A candidate entry in a jump table (may contain absolute or relative addresses)

Calculated prior to code inference.

Attributes:

  • EA: The address of the instruction from which the jump occurs.

  • DataEA: The address at which the actual data entry of the jump table resides.

  • DataSize: The size of the jump table entry

  • TargetEA: The target of the jump.

invalid_jump_table_candidate(DataEA:address, DataSize:unsigned)

A jump table data entry is overlapped by code

jump_table_candidate_refined(EA:address, DataEA:address, TargetEA:address)

Subset of jump_table_candidate that appears to be valid after code inference.

Attributes:

  • EA: The address of the instruction from which the jump occurs.

  • DataEA: The address at which the actual data entry of the jump table resides.

  • TargetEA: The target of the jump.

jump_table_target(EA:address, Dest:address)

CFG edges formed by jump tables using the best available information during value analysis.

Attributes:

  • EA: address where the jump occurs

  • Dest: a potential destintation address