Module index

Module ida_search

Middle-level search functions.

They all are controlled by Search flags

Global variables

var SEARCH_BRK

return BADADDR if the search was cancelled.

var SEARCH_CASE

case-sensitive search (case-insensitive otherwise)

var SEARCH_DEF

find_reg_access: search for a definition (write access)

var SEARCH_DOWN

search towards higher addresses

var SEARCH_IDENT

search for an identifier (text search). it means that the characters before and after the match cannot be is_visible_char().

var SEARCH_NEXT

skip the starting address when searching. this bit is useful only for search(), bin_search(), find_reg_access(). find_.. functions skip the starting address automatically.

var SEARCH_NOBRK

do not test if the user clicked cancel to interrupt the search

var SEARCH_NOSHOW

do not display the search progress/refresh screen

var SEARCH_REGEX

regular expressions in search string (supported only for the text search)

var SEARCH_UP

search towards lower addresses

var SEARCH_USE

find_reg_access: search for a use (read access)

var SEARCH_USESEL

query the UI for a possible current selection to limit the search to

Functions

def find_code(ea: ea_t, sflag: int)

find_code(ea, sflag) -> ea_t Find next code address.

@param ea: (C++: ea_t) @param sflag: (C++: int)

def find_data(ea: ea_t, sflag: int)

find_data(ea, sflag) -> ea_t Find next data address.

@param ea: (C++: ea_t) @param sflag: (C++: int)

def find_defined(ea: ea_t, sflag: int)

find_defined(ea, sflag) -> ea_t Find next ea that is the start of an instruction or data.

@param ea: (C++: ea_t) @param sflag: (C++: int)

def find_error(ea: ea_t, sflag: int)

find_error(ea, sflag) -> ea_t Find next error or problem.

@param ea: (C++: ea_t) @param sflag: (C++: int)

def find_imm(ea: ea_t, sflag: int, search_value: uval_t)

find_imm(ea, sflag, search_value) -> ea_t Find next immediate operand with the given value.

@param ea: (C++: ea_t) @param sflag: (C++: int) @param search_value: (C++: uval_t)

def find_not_func(ea: ea_t, sflag: int)

find_not_func(ea, sflag) -> ea_t Find next code address that does not belong to a function.

@param ea: (C++: ea_t) @param sflag: (C++: int)

def find_notype(ea: ea_t, sflag: int)

find_notype(ea, sflag) -> ea_t Find next operand without any type info.

@param ea: (C++: ea_t) @param sflag: (C++: int)

def find_reg_access(out: reg_access_t, start_ea: ea_t, end_ea: ea_t, regname: char const *, sflag: int)

find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t Find access to a register.

@param out: (C++: struct reg_access_t ) pointer to the output buffer. must be non-null. upon success contains info about the found register. upon failed search for a read access out->range contains the info about the non-redefined parts of the register. @param start_ea: (C++: ea_t) starting address @param end_ea: (C++: ea_t) ending address. BADADDR means that the end limit is missing. otherwise, if the search direction is SEARCH_UP, END_EA must be lower than START_EA. @param regname: (C++: const char ) the register to search for. @param sflag: (C++: int) combination of Search flags bits. @note: This function does not care about the control flow and probes all instructions in the specified range, starting from START_EA. Only direct references to registers are detected. Function calls and system traps are ignored. @return: the found address. BADADDR if not found or error.

def find_suspop(ea: ea_t, sflag: int)

find_suspop(ea, sflag) -> ea_t Find next suspicious operand.

@param ea: (C++: ea_t) @param sflag: (C++: int)

def find_text(start_ea: ea_t, y: int, x: int, ustr: char const *, sflag: int)

find_text(start_ea, y, x, ustr, sflag) -> ea_t See search()

@param start_ea: (C++: ea_t) @param y: (C++: int) @param x: (C++: int) @param ustr: (C++: const char *) char const * @param sflag: (C++: int)

def find_unknown(ea: ea_t, sflag: int)

find_unknown(ea, sflag) -> ea_t Find next unexplored address.

@param ea: (C++: ea_t) @param sflag: (C++: int)

def search_down(sflag: int) ‑> bool

search_down(sflag) -> bool Is the SEARCH_DOWN bit set?

@param sflag: (C++: int)