|
IDA SDK
|
High level functions that deal with the generation of the disassembled text lines.
This file also contains definitions for the syntax highlighting.
Finally there are functions that deal with anterior/posterior user-defined lines.
Classes | |
| struct | bgcolors_t |
| Structure to keep some background colors configurable in ida.cfg. More... | |
Functions | |
| THREAD_SAFE bool | requires_color_esc (char c) |
| Is the given char a color escape character? | |
| idaman THREAD_SAFE void ida_export | tag_addr (qstring *buf, ea_t ea, bool ins=false) |
| Insert an address mark into a string. More... | |
| idaman THREAD_SAFE const char *ida_export | tag_advance (const char *line, int cnt) |
| Move pointer to a 'line' to 'cnt' positions right. More... | |
| idaman THREAD_SAFE const char *ida_export | tag_skipcodes (const char *line) |
| Move the pointer past all color codes. More... | |
| idaman THREAD_SAFE const char *ida_export | tag_skipcode (const char *line) |
| Skip one color code. More... | |
| idaman THREAD_SAFE ssize_t ida_export | tag_strlen (const char *line) |
| Calculate length of a colored string This function computes the length in unicode codepoints of a line. More... | |
| idaman THREAD_SAFE ssize_t ida_export | tag_remove (qstring *buf, const char *str, int init_level=0) |
| Remove color escape sequences from a string. More... | |
| THREAD_SAFE ssize_t idaapi | tag_remove (qstring *buf, const qstring &str, int init_level=0) |
| THREAD_SAFE ssize_t idaapi | tag_remove (qstring *buf, int init_level=0) |
| idaman color_t ida_export | calc_prefix_color (ea_t ea) |
| Get prefix color for line at 'ea'. More... | |
| idaman bgcolor_t ida_export | calc_bg_color (ea_t ea) |
| Get background color for line at 'ea'. More... | |
Source files | |
IDA can keep information about source files used to create the program. Each source file is represented by a range of addresses. A source file may contain several address ranges. | |
| idaman bool ida_export | add_sourcefile (ea_t ea1, ea_t ea2, const char *filename) |
| Mark a range of address as belonging to a source file. More... | |
| idaman const char *ida_export | get_sourcefile (ea_t ea, range_t *bounds=NULL) |
| Get name of source file occupying the given address. More... | |
| idaman bool ida_export | del_sourcefile (ea_t ea) |
| Delete information about the source file. More... | |
Generation of disassembled text | |
| idaman void ida_export | set_user_defined_prefix (size_t width, void(idaapi *get_user_defined_prefix)( qstring *buf, ea_t ea, int lnnum, int indent, const char *line)) |
| User-defined line-prefixes are displayed just after the autogenerated line prefixes. More... | |
Anterior/Posterior lines | |
| #define | VEL_POST 0x01 |
| #define | VEL_CMT 0x02 |
| idaman bool ida_export | vadd_extra_line (ea_t ea, int vel_flags, const char *format, va_list va) |
| See higher level functions below. | |
| bool | add_extra_line (ea_t ea, bool isprev, const char *format,...) |
| Add anterior/posterior non-comment line(s). More... | |
| bool | add_extra_cmt (ea_t ea, bool isprev, const char *format,...) |
| Add anterior/posterior comment line(s). More... | |
| bool | add_pgm_cmt (const char *format,...) |
| Add anterior comment line(s) at the start of program. More... | |
Macros | |
| #define | COLOR_ON '\1' |
| Escape character (ON). More... | |
| #define | COLOR_OFF '\2' |
| Escape character (OFF). More... | |
| #define | COLOR_ESC '\3' |
| Escape character (Quote next character). More... | |
| #define | COLOR_INV '\4' |
| Escape character (Inverse foreground and background colors). More... | |
| #define | SCOLOR_ON "\1" |
| Escape character (ON) | |
| #define | SCOLOR_OFF "\2" |
| Escape character (OFF) | |
| #define | SCOLOR_ESC "\3" |
| Escape character (Quote next character) | |
| #define | SCOLOR_INV "\4" |
| Escape character (Inverse colors) | |
| #define | COLOR_ADDR_SIZE (sizeof(ea_t)*2) |
| Size of a tagged address (see COLOR_ADDR) | |
| #define | SCOLOR_DEFAULT "\x01" |
| Default. | |
| #define | SCOLOR_REGCMT "\x02" |
| Regular comment. | |
| #define | SCOLOR_RPTCMT "\x03" |
| Repeatable comment (defined not here) | |
| #define | SCOLOR_AUTOCMT "\x04" |
| Automatic comment. | |
| #define | SCOLOR_INSN "\x05" |
| Instruction. | |
| #define | SCOLOR_DATNAME "\x06" |
| Dummy Data Name. | |
| #define | SCOLOR_DNAME "\x07" |
| Regular Data Name. | |
| #define | SCOLOR_DEMNAME "\x08" |
| Demangled Name. | |
| #define | SCOLOR_SYMBOL "\x09" |
| Punctuation. | |
| #define | SCOLOR_CHAR "\x0A" |
| Char constant in instruction. | |
| #define | SCOLOR_STRING "\x0B" |
| String constant in instruction. | |
| #define | SCOLOR_NUMBER "\x0C" |
| Numeric constant in instruction. | |
| #define | SCOLOR_VOIDOP "\x0D" |
| Void operand. | |
| #define | SCOLOR_CREF "\x0E" |
| Code reference. | |
| #define | SCOLOR_DREF "\x0F" |
| Data reference. | |
| #define | SCOLOR_CREFTAIL "\x10" |
| Code reference to tail byte. | |
| #define | SCOLOR_DREFTAIL "\x11" |
| Data reference to tail byte. | |
| #define | SCOLOR_ERROR "\x12" |
| Error or problem. | |
| #define | SCOLOR_PREFIX "\x13" |
| Line prefix. | |
| #define | SCOLOR_BINPREF "\x14" |
| Binary line prefix bytes. | |
| #define | SCOLOR_EXTRA "\x15" |
| Extra line. | |
| #define | SCOLOR_ALTOP "\x16" |
| Alternative operand. | |
| #define | SCOLOR_HIDNAME "\x17" |
| Hidden name. | |
| #define | SCOLOR_LIBNAME "\x18" |
| Library function name. | |
| #define | SCOLOR_LOCNAME "\x19" |
| Local variable name. | |
| #define | SCOLOR_CODNAME "\x1A" |
| Dummy code name. | |
| #define | SCOLOR_ASMDIR "\x1B" |
| Assembler directive. | |
| #define | SCOLOR_MACRO "\x1C" |
| Macro. | |
| #define | SCOLOR_DSTR "\x1D" |
| String constant in data directive. | |
| #define | SCOLOR_DCHAR "\x1E" |
| Char constant in data directive. | |
| #define | SCOLOR_DNUM "\x1F" |
| Numeric constant in data directive. | |
| #define | SCOLOR_KEYWORD "\x20" |
| Keywords. | |
| #define | SCOLOR_REG "\x21" |
| Register name. | |
| #define | SCOLOR_IMPNAME "\x22" |
| Imported name. | |
| #define | SCOLOR_SEGNAME "\x23" |
| Segment name. | |
| #define | SCOLOR_UNKNAME "\x24" |
| Dummy unknown name. | |
| #define | SCOLOR_CNAME "\x25" |
| Regular code name. | |
| #define | SCOLOR_UNAME "\x26" |
| Regular unknown name. | |
| #define | SCOLOR_COLLAPSED "\x27" |
| Collapsed line. | |
| #define | SCOLOR_ADDR "\x28" |
| Hidden address mark. | |
| #define | COLOR_DEFAULT 0x01 |
| Default. | |
| #define | COLOR_SELECTED 0x02 |
| Selected. | |
| #define | COLOR_LIBFUNC 0x03 |
| Library function. | |
| #define | COLOR_REGFUNC 0x04 |
| Regular function. | |
| #define | COLOR_CODE 0x05 |
| Single instruction. | |
| #define | COLOR_DATA 0x06 |
| Data bytes. | |
| #define | COLOR_UNKNOWN 0x07 |
| Unexplored byte. | |
| #define | COLOR_EXTERN 0x08 |
| External name definition segment. | |
| #define | COLOR_CURITEM 0x09 |
| Current item. | |
| #define | COLOR_CURLINE 0x0A |
| Current line. | |
| #define | COLOR_HIDLINE 0x0B |
| Hidden line. | |
| #define | COLOR_LUMFUNC 0x0C |
| Lumina function. | |
| #define | COLOR_BG_MAX 0x0D |
| Max color number. | |
| #define | PALETTE_SIZE (COLOR_FG_MAX+COLOR_BG_MAX) |
| #define | COLSTR(str, tag) SCOLOR_ON tag str SCOLOR_OFF tag |
| This macro is used to build colored string constants (e.g. More... | |
Typedefs | |
| typedef uchar | color_t |
| color tag - see Color tags | |
Variables | |
| const color_t | COLOR_DEFAULT = 0x01 |
| Default. | |
| const color_t | COLOR_REGCMT = 0x02 |
| Regular comment. | |
| const color_t | COLOR_RPTCMT = 0x03 |
| Repeatable comment (comment defined somewhere else) | |
| const color_t | COLOR_AUTOCMT = 0x04 |
| Automatic comment. | |
| const color_t | COLOR_INSN = 0x05 |
| Instruction. | |
| const color_t | COLOR_DATNAME = 0x06 |
| Dummy Data Name. | |
| const color_t | COLOR_DNAME = 0x07 |
| Regular Data Name. | |
| const color_t | COLOR_DEMNAME = 0x08 |
| Demangled Name. | |
| const color_t | COLOR_SYMBOL = 0x09 |
| Punctuation. | |
| const color_t | COLOR_CHAR = 0x0A |
| Char constant in instruction. | |
| const color_t | COLOR_STRING = 0x0B |
| String constant in instruction. | |
| const color_t | COLOR_NUMBER = 0x0C |
| Numeric constant in instruction. | |
| const color_t | COLOR_VOIDOP = 0x0D |
| Void operand. | |
| const color_t | COLOR_CREF = 0x0E |
| Code reference. | |
| const color_t | COLOR_DREF = 0x0F |
| Data reference. | |
| const color_t | COLOR_CREFTAIL = 0x10 |
| Code reference to tail byte. | |
| const color_t | COLOR_DREFTAIL = 0x11 |
| Data reference to tail byte. | |
| const color_t | COLOR_ERROR = 0x12 |
| Error or problem. | |
| const color_t | COLOR_PREFIX = 0x13 |
| Line prefix. | |
| const color_t | COLOR_BINPREF = 0x14 |
| Binary line prefix bytes. | |
| const color_t | COLOR_EXTRA = 0x15 |
| Extra line. | |
| const color_t | COLOR_ALTOP = 0x16 |
| Alternative operand. | |
| const color_t | COLOR_HIDNAME = 0x17 |
| Hidden name. | |
| const color_t | COLOR_LIBNAME = 0x18 |
| Library function name. | |
| const color_t | COLOR_LOCNAME = 0x19 |
| Local variable name. | |
| const color_t | COLOR_CODNAME = 0x1A |
| Dummy code name. | |
| const color_t | COLOR_ASMDIR = 0x1B |
| Assembler directive. | |
| const color_t | COLOR_MACRO = 0x1C |
| Macro. | |
| const color_t | COLOR_DSTR = 0x1D |
| String constant in data directive. | |
| const color_t | COLOR_DCHAR = 0x1E |
| Char constant in data directive. | |
| const color_t | COLOR_DNUM = 0x1F |
| Numeric constant in data directive. | |
| const color_t | COLOR_KEYWORD = 0x20 |
| Keywords. | |
| const color_t | COLOR_REG = 0x21 |
| Register name. | |
| const color_t | COLOR_IMPNAME = 0x22 |
| Imported name. | |
| const color_t | COLOR_SEGNAME = 0x23 |
| Segment name. | |
| const color_t | COLOR_UNKNAME = 0x24 |
| Dummy unknown name. | |
| const color_t | COLOR_CNAME = 0x25 |
| Regular code name. | |
| const color_t | COLOR_UNAME = 0x26 |
| Regular unknown name. | |
| const color_t | COLOR_COLLAPSED = 0x27 |
| Collapsed line. | |
| const color_t | COLOR_FG_MAX = 0x28 |
| Max color number. | |
| const color_t | COLOR_ADDR = COLOR_FG_MAX |
| hidden address marks. More... | |
| const color_t | COLOR_OPND1 = COLOR_ADDR+1 |
| Instruction operand 1. | |
| const color_t | COLOR_OPND2 = COLOR_ADDR+2 |
| Instruction operand 2. | |
| const color_t | COLOR_OPND3 = COLOR_ADDR+3 |
| Instruction operand 3. | |
| const color_t | COLOR_OPND4 = COLOR_ADDR+4 |
| Instruction operand 4. | |
| const color_t | COLOR_OPND5 = COLOR_ADDR+5 |
| Instruction operand 5. | |
| const color_t | COLOR_OPND6 = COLOR_ADDR+6 |
| Instruction operand 6. | |
| const color_t | COLOR_OPND7 = COLOR_ADDR+7 |
| Instruction operand 7. | |
| const color_t | COLOR_OPND8 = COLOR_ADDR+8 |
| Instruction operand 8. | |
| const color_t | COLOR_RESERVED1 = COLOR_ADDR+11 |
| This tag is reserved for internal IDA use. | |
| const color_t | COLOR_LUMINA = COLOR_ADDR+12 |
| Lumina-related, only for the navigation band. | |
| bgcolors_t | bgcolors |
| idaman color_t ida_export calc_prefix_color | ( | ea_t | ea | ) |
Get prefix color for line at 'ea'.
| idaman bgcolor_t ida_export calc_bg_color | ( | ea_t | ea | ) |
Get background color for line at 'ea'.
| idaman bool ida_export add_sourcefile | ( | ea_t | ea1, |
| ea_t | ea2, | ||
| const char * | filename | ||
| ) |
Mark a range of address as belonging to a source file.
An address range may belong only to one source file. A source file may be represented by several address ranges.
| ea1 | linear address of start of the address range |
| ea2 | linear address of end of the address range (excluded) |
| filename | name of source file. |
| idaman const char* ida_export get_sourcefile | ( | ea_t | ea, |
| range_t * | bounds = NULL |
||
| ) |
Get name of source file occupying the given address.
| ea | linear address |
| bounds | pointer to the output buffer with the address range for the current file. May be NULL. |
| idaman bool ida_export del_sourcefile | ( | ea_t | ea | ) |
Delete information about the source file.
| ea | linear address |
| idaman void ida_export set_user_defined_prefix | ( | size_t | width, |
| void(idaapi *)( qstring *buf, ea_t ea, int lnnum, int indent, const char *line) | get_user_defined_prefix | ||
| ) |
User-defined line-prefixes are displayed just after the autogenerated line prefixes.
In order to use them, the plugin should call the following function to specify its width and contents.
| width | the width of the user-defined prefix |
| get_user_defined_prefix | a callback to get the contents of the prefix. Its arguments:
|
In order to remove the callback before unloading the plugin, specify the width or the callback == NULL.
|
inline |
Add anterior/posterior non-comment line(s).
| ea | linear address |
| isprev | do we add anterior lines? (0-no, posterior) |
| format | printf() style format string. may contain \n to denote new lines. |
|
inline |
Add anterior/posterior comment line(s).
| ea | linear address |
| isprev | do we add anterior lines? (0-no, posterior) |
| format | printf() style format string. may contain \n to denote new lines. The resulting string should not contain comment characters (;), the kernel will add them automatically. |
|
inline |
Add anterior comment line(s) at the start of program.
| format | printf() style format string. may contain \n to denote new lines. The resulting string should not contain comment characters (;), the kernel will add them automatically. |
1.8.9.1