IDA SDK
Functions | Macros
search.hpp File Reference

Detailed Description

Middle-level search functions.

They all are controlled by Search flags

Functions

bool search_down (int sflag)
 Is the SEARCH_DOWN bit set?
 
idaman int ida_export search (void *ud, place_t *start, const place_t *end, int *startx, const char *str, int sflag)
 Search for a text substring (low level function). More...
 
find_... functions
Parameters
eastart ea
sflagcombination of Search flags
[out]opnumfilled with operand number whenever relevant
Returns
first ea at which the search criteria is met
idaman ea_t ida_export find_error (ea_t ea, int sflag, int *opnum=NULL)
 Find next error or problem.
 
idaman ea_t ida_export find_notype (ea_t ea, int sflag, int *opnum=NULL)
 Find next operand without any type info.
 
idaman ea_t ida_export find_unknown (ea_t ea, int sflag)
 Find next unexplored address.
 
idaman ea_t ida_export find_defined (ea_t ea, int sflag)
 Find next ea that is the start of an instruction or data.
 
idaman ea_t ida_export find_suspop (ea_t ea, int sflag, int *opnum=NULL)
 Find next suspicious operand.
 
idaman ea_t ida_export find_data (ea_t ea, int sflag)
 Find next data address.
 
idaman ea_t ida_export find_code (ea_t ea, int sflag)
 Find next code address.
 
idaman ea_t ida_export find_not_func (ea_t ea, int sflag)
 Find next code address that does not belong to a function.
 
idaman ea_t ida_export find_imm (ea_t newEA, int sflag, uval_t srchValue, int *opnum=NULL)
 Find next immediate operand with the given value.
 
idaman ea_t ida_export find_text (ea_t start_ea, int y, int x, const char *ustr, int sflag)
 See search()
 

Macros

#define SEARCH_UP   0x000
 search towards lower addresses
 
#define SEARCH_DOWN   0x001
 search towards higher addresses
 
#define SEARCH_NEXT   0x002
 useful only for search() and find_binary(). More...
 
#define SEARCH_CASE   0x004
 case-sensitive search (case-insensitive otherwise)
 
#define SEARCH_REGEX   0x008
 regular expressions in search string (only supported for txt search)
 
#define SEARCH_NOBRK   0x010
 don't test for ctrl-break to interrupt the search
 
#define SEARCH_NOSHOW   0x020
 don't display the search progress/refresh screen
 
#define SEARCH_IDENT   0x080
 search for an identifier (text search). More...
 
#define SEARCH_BRK   0x100
 return BADADDR if Ctrl-Break wass pressed during search
 

Function Documentation

idaman int ida_export search ( void *  ud,
place_t start,
const place_t end,
int *  startx,
const char *  str,
int  sflag 
)

Search for a text substring (low level function).

Parameters
udline array parameter
[in,out]startpointer to starting place:
  • start->ea: starting address
  • start->lnnum: starting Y coordinate
endpointer to ending place:
  • end->ea: ending address
  • end->lnnum: ending Y coordinate
[in,out]startxpointer to starting X coordinate
strsubstring to search for.
sflagSearch flags
Return values
0substring not found
1substring found. The matching position is returned in:
  • start->ea: address
  • start->lnnum: Y coordinate
  • *startx: X coordinate
2search was cancelled by ctrl-break. The farthest searched address is returned in the same manner as in the successful return (1).
3the input regular expression is bad. The error message was displayed.