ida_lines ========= .. py:module:: ida_lines .. autoapi-nested-parse:: 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. Attributes ---------- .. autoapisummary:: ida_lines.SWIG_PYTHON_LEGACY_BOOL ida_lines.COLOR_ON ida_lines.COLOR_OFF ida_lines.COLOR_ESC ida_lines.COLOR_INV ida_lines.SCOLOR_ON ida_lines.SCOLOR_OFF ida_lines.SCOLOR_ESC ida_lines.SCOLOR_INV ida_lines.SCOLOR_DEFAULT ida_lines.SCOLOR_REGCMT ida_lines.SCOLOR_RPTCMT ida_lines.SCOLOR_AUTOCMT ida_lines.SCOLOR_INSN ida_lines.SCOLOR_DATNAME ida_lines.SCOLOR_DNAME ida_lines.SCOLOR_DEMNAME ida_lines.SCOLOR_SYMBOL ida_lines.SCOLOR_CHAR ida_lines.SCOLOR_STRING ida_lines.SCOLOR_NUMBER ida_lines.SCOLOR_VOIDOP ida_lines.SCOLOR_CREF ida_lines.SCOLOR_DREF ida_lines.SCOLOR_CREFTAIL ida_lines.SCOLOR_DREFTAIL ida_lines.SCOLOR_ERROR ida_lines.SCOLOR_PREFIX ida_lines.SCOLOR_BINPREF ida_lines.SCOLOR_EXTRA ida_lines.SCOLOR_ALTOP ida_lines.SCOLOR_HIDNAME ida_lines.SCOLOR_LIBNAME ida_lines.SCOLOR_LOCNAME ida_lines.SCOLOR_CODNAME ida_lines.SCOLOR_ASMDIR ida_lines.SCOLOR_MACRO ida_lines.SCOLOR_DSTR ida_lines.SCOLOR_DCHAR ida_lines.SCOLOR_DNUM ida_lines.SCOLOR_KEYWORD ida_lines.SCOLOR_REG ida_lines.SCOLOR_IMPNAME ida_lines.SCOLOR_SEGNAME ida_lines.SCOLOR_UNKNAME ida_lines.SCOLOR_CNAME ida_lines.SCOLOR_UNAME ida_lines.SCOLOR_COLLAPSED ida_lines.SCOLOR_ADDR ida_lines.COLOR_SELECTED ida_lines.COLOR_LIBFUNC ida_lines.COLOR_REGFUNC ida_lines.COLOR_CODE ida_lines.COLOR_DATA ida_lines.COLOR_UNKNOWN ida_lines.COLOR_EXTERN ida_lines.COLOR_CURITEM ida_lines.COLOR_CURLINE ida_lines.COLOR_HIDLINE ida_lines.COLOR_LUMFUNC ida_lines.COLOR_BG_MAX ida_lines.cvar ida_lines.COLOR_DEFAULT ida_lines.COLOR_REGCMT ida_lines.COLOR_RPTCMT ida_lines.COLOR_AUTOCMT ida_lines.COLOR_INSN ida_lines.COLOR_DATNAME ida_lines.COLOR_DNAME ida_lines.COLOR_DEMNAME ida_lines.COLOR_SYMBOL ida_lines.COLOR_CHAR ida_lines.COLOR_STRING ida_lines.COLOR_NUMBER ida_lines.COLOR_VOIDOP ida_lines.COLOR_CREF ida_lines.COLOR_DREF ida_lines.COLOR_CREFTAIL ida_lines.COLOR_DREFTAIL ida_lines.COLOR_ERROR ida_lines.COLOR_PREFIX ida_lines.COLOR_BINPREF ida_lines.COLOR_EXTRA ida_lines.COLOR_ALTOP ida_lines.COLOR_HIDNAME ida_lines.COLOR_LIBNAME ida_lines.COLOR_LOCNAME ida_lines.COLOR_CODNAME ida_lines.COLOR_ASMDIR ida_lines.COLOR_MACRO ida_lines.COLOR_DSTR ida_lines.COLOR_DCHAR ida_lines.COLOR_DNUM ida_lines.COLOR_KEYWORD ida_lines.COLOR_REG ida_lines.COLOR_IMPNAME ida_lines.COLOR_SEGNAME ida_lines.COLOR_UNKNAME ida_lines.COLOR_CNAME ida_lines.COLOR_UNAME ida_lines.COLOR_COLLAPSED ida_lines.COLOR_FG_MAX ida_lines.COLOR_ADDR ida_lines.COLOR_OPND1 ida_lines.COLOR_OPND2 ida_lines.COLOR_OPND3 ida_lines.COLOR_OPND4 ida_lines.COLOR_OPND5 ida_lines.COLOR_OPND6 ida_lines.COLOR_OPND7 ida_lines.COLOR_OPND8 ida_lines.COLOR_RESERVED1 ida_lines.COLOR_LUMINA ida_lines.VEL_POST ida_lines.VEL_CMT ida_lines.GDISMF_AS_STACK ida_lines.GDISMF_ADDR_TAG ida_lines.GDISMF_REMOVE_TAGS ida_lines.GDISMF_UNHIDE ida_lines.GENDSM_FORCE_CODE ida_lines.GENDSM_MULTI_LINE ida_lines.GENDSM_REMOVE_TAGS ida_lines.GENDSM_UNHIDE ida_lines.COLOR_ADDR_SIZE ida_lines.SCOLOR_FG_MAX ida_lines.cvar ida_lines.SCOLOR_OPND1 ida_lines.SCOLOR_OPND2 ida_lines.SCOLOR_OPND3 ida_lines.SCOLOR_OPND4 ida_lines.SCOLOR_OPND5 ida_lines.SCOLOR_OPND6 ida_lines.SCOLOR_UTF8 ida_lines.PALETTE_SIZE ida_lines.E_PREV ida_lines.E_NEXT Classes ------- .. autoapisummary:: ida_lines.user_defined_prefix_t Functions --------- .. autoapisummary:: ida_lines.tag_strlen ida_lines.calc_prefix_color ida_lines.calc_bg_color ida_lines.add_sourcefile ida_lines.get_sourcefile ida_lines.del_sourcefile ida_lines.install_user_defined_prefix ida_lines.add_extra_line ida_lines.add_extra_cmt ida_lines.add_pgm_cmt ida_lines.generate_disasm_line ida_lines.get_first_free_extra_cmtidx ida_lines.update_extra_cmt ida_lines.del_extra_cmt ida_lines.get_extra_cmt ida_lines.delete_extra_cmts ida_lines.create_encoding_helper ida_lines.tag_remove ida_lines.tag_addr ida_lines.tag_skipcode ida_lines.tag_skipcodes ida_lines.tag_advance ida_lines.generate_disassembly ida_lines.requires_color_esc ida_lines.COLSTR Module Contents --------------- .. py:data:: SWIG_PYTHON_LEGACY_BOOL .. py:data:: COLOR_ON Escape character (ON). Followed by a color code (color_t). .. py:data:: COLOR_OFF Escape character (OFF). Followed by a color code (color_t). .. py:data:: COLOR_ESC Escape character (Quote next character). This is needed to output '\1' and '\2' characters. .. py:data:: COLOR_INV Escape character (Inverse foreground and background colors). This escape character has no corresponding COLOR_OFF. Its action continues until the next COLOR_INV or end of line. .. py:data:: SCOLOR_ON Escape character (ON) .. py:data:: SCOLOR_OFF Escape character (OFF) .. py:data:: SCOLOR_ESC Escape character (Quote next character) .. py:data:: SCOLOR_INV Escape character (Inverse colors) .. py:data:: SCOLOR_DEFAULT Default. .. py:data:: SCOLOR_REGCMT Regular comment. .. py:data:: SCOLOR_RPTCMT Repeatable comment (defined not here) .. py:data:: SCOLOR_AUTOCMT Automatic comment. .. py:data:: SCOLOR_INSN Instruction. .. py:data:: SCOLOR_DATNAME Dummy Data Name. .. py:data:: SCOLOR_DNAME Regular Data Name. .. py:data:: SCOLOR_DEMNAME Demangled Name. .. py:data:: SCOLOR_SYMBOL Punctuation. .. py:data:: SCOLOR_CHAR Char constant in instruction. .. py:data:: SCOLOR_STRING String constant in instruction. .. py:data:: SCOLOR_NUMBER Numeric constant in instruction. .. py:data:: SCOLOR_VOIDOP Void operand. .. py:data:: SCOLOR_CREF Code reference. .. py:data:: SCOLOR_DREF Data reference. .. py:data:: SCOLOR_CREFTAIL Code reference to tail byte. .. py:data:: SCOLOR_DREFTAIL Data reference to tail byte. .. py:data:: SCOLOR_ERROR Error or problem. .. py:data:: SCOLOR_PREFIX Line prefix. .. py:data:: SCOLOR_BINPREF Binary line prefix bytes. .. py:data:: SCOLOR_EXTRA Extra line. .. py:data:: SCOLOR_ALTOP Alternative operand. .. py:data:: SCOLOR_HIDNAME Hidden name. .. py:data:: SCOLOR_LIBNAME Library function name. .. py:data:: SCOLOR_LOCNAME Local variable name. .. py:data:: SCOLOR_CODNAME Dummy code name. .. py:data:: SCOLOR_ASMDIR Assembler directive. .. py:data:: SCOLOR_MACRO Macro. .. py:data:: SCOLOR_DSTR String constant in data directive. .. py:data:: SCOLOR_DCHAR Char constant in data directive. .. py:data:: SCOLOR_DNUM Numeric constant in data directive. .. py:data:: SCOLOR_KEYWORD Keywords. .. py:data:: SCOLOR_REG Register name. .. py:data:: SCOLOR_IMPNAME Imported name. .. py:data:: SCOLOR_SEGNAME Segment name. .. py:data:: SCOLOR_UNKNAME Dummy unknown name. .. py:data:: SCOLOR_CNAME Regular code name. .. py:data:: SCOLOR_UNAME Regular unknown name. .. py:data:: SCOLOR_COLLAPSED Collapsed line. .. py:data:: SCOLOR_ADDR Hidden address mark. .. py:data:: COLOR_SELECTED Selected. .. py:data:: COLOR_LIBFUNC Library function. .. py:data:: COLOR_REGFUNC Regular function. .. py:data:: COLOR_CODE Single instruction. .. py:data:: COLOR_DATA Data bytes. .. py:data:: COLOR_UNKNOWN Unexplored byte. .. py:data:: COLOR_EXTERN External name definition segment. .. py:data:: COLOR_CURITEM Current item. .. py:data:: COLOR_CURLINE Current line. .. py:data:: COLOR_HIDLINE Hidden line. .. py:data:: COLOR_LUMFUNC Lumina function. .. py:data:: COLOR_BG_MAX Max color number. .. py:function:: tag_strlen(line: str) -> ssize_t Calculate length of a colored string This function computes the length in unicode codepoints of a line :returns: the number of codepoints in the line, or -1 on error .. py:function:: calc_prefix_color(ea: ida_idaapi.ea_t) -> color_t Get prefix color for line at 'ea' :returns: Line prefix colors .. py:function:: calc_bg_color(ea: ida_idaapi.ea_t) -> bgcolor_t Get background color for line at 'ea' :returns: RGB color .. py:function:: add_sourcefile(ea1: ida_idaapi.ea_t, ea2: ida_idaapi.ea_t, filename: str) -> bool .. py:function:: get_sourcefile(ea: ida_idaapi.ea_t, bounds: range_t = None) -> str .. py:function:: del_sourcefile(ea: ida_idaapi.ea_t) -> bool .. py:function:: install_user_defined_prefix(*args) -> bool .. py:class:: user_defined_prefix_t(*args) Bases: :py:obj:`object` .. py:attribute:: thisown .. py:method:: get_user_defined_prefix(ea: ida_idaapi.ea_t, insn: insn_t const &, lnnum: int, indent: int, line: str) -> None This callback must be overridden by the derived class. :param ea: the current address :param insn: the current instruction. if the current item is not an instruction, then insn.itype is zero. :param lnnum: number of the current line (each address may have several listing lines for it). 0 means the very first line for the current address. :param indent: see explanations for gen_printf() :param line: the line to be generated. the line usually contains color tags. this argument can be examined to decide whether to generate the prefix. .. py:data:: cvar .. py:data:: COLOR_DEFAULT Default. .. py:data:: COLOR_REGCMT Regular comment. .. py:data:: COLOR_RPTCMT Repeatable comment (comment defined somewhere else) .. py:data:: COLOR_AUTOCMT Automatic comment. .. py:data:: COLOR_INSN Instruction. .. py:data:: COLOR_DATNAME Dummy Data Name. .. py:data:: COLOR_DNAME Regular Data Name. .. py:data:: COLOR_DEMNAME Demangled Name. .. py:data:: COLOR_SYMBOL Punctuation. .. py:data:: COLOR_CHAR Char constant in instruction. .. py:data:: COLOR_STRING String constant in instruction. .. py:data:: COLOR_NUMBER Numeric constant in instruction. .. py:data:: COLOR_VOIDOP Void operand. .. py:data:: COLOR_CREF Code reference. .. py:data:: COLOR_DREF Data reference. .. py:data:: COLOR_CREFTAIL Code reference to tail byte. .. py:data:: COLOR_DREFTAIL Data reference to tail byte. .. py:data:: COLOR_ERROR Error or problem. .. py:data:: COLOR_PREFIX Line prefix. .. py:data:: COLOR_BINPREF Binary line prefix bytes. .. py:data:: COLOR_EXTRA Extra line. .. py:data:: COLOR_ALTOP Alternative operand. .. py:data:: COLOR_HIDNAME Hidden name. .. py:data:: COLOR_LIBNAME Library function name. .. py:data:: COLOR_LOCNAME Local variable name. .. py:data:: COLOR_CODNAME Dummy code name. .. py:data:: COLOR_ASMDIR Assembler directive. .. py:data:: COLOR_MACRO Macro. .. py:data:: COLOR_DSTR String constant in data directive. .. py:data:: COLOR_DCHAR Char constant in data directive. .. py:data:: COLOR_DNUM Numeric constant in data directive. .. py:data:: COLOR_KEYWORD Keywords. .. py:data:: COLOR_REG Register name. .. py:data:: COLOR_IMPNAME Imported name. .. py:data:: COLOR_SEGNAME Segment name. .. py:data:: COLOR_UNKNAME Dummy unknown name. .. py:data:: COLOR_CNAME Regular code name. .. py:data:: COLOR_UNAME Regular unknown name. .. py:data:: COLOR_COLLAPSED Collapsed line. .. py:data:: COLOR_FG_MAX Max color number. .. py:data:: COLOR_ADDR Hidden address marks. the address is represented as 16-digit hex number: 01234567ABCDEF00. it doesn't have the COLOR_OFF pair. .. py:data:: COLOR_OPND1 Instruction operand 1. .. py:data:: COLOR_OPND2 Instruction operand 2. .. py:data:: COLOR_OPND3 Instruction operand 3. .. py:data:: COLOR_OPND4 Instruction operand 4. .. py:data:: COLOR_OPND5 Instruction operand 5. .. py:data:: COLOR_OPND6 Instruction operand 6. .. py:data:: COLOR_OPND7 Instruction operand 7. .. py:data:: COLOR_OPND8 Instruction operand 8. .. py:data:: COLOR_RESERVED1 This tag is reserved for internal IDA use. .. py:data:: COLOR_LUMINA Lumina-related, only for the navigation band. .. py:data:: VEL_POST append posterior line .. py:data:: VEL_CMT append comment line .. py:function:: add_extra_line(*args) -> bool .. py:function:: add_extra_cmt(*args) -> bool .. py:function:: add_pgm_cmt(*args) -> bool .. py:data:: GDISMF_AS_STACK .. py:data:: GDISMF_ADDR_TAG .. py:data:: GDISMF_REMOVE_TAGS .. py:data:: GDISMF_UNHIDE .. py:function:: generate_disasm_line(ea: ida_idaapi.ea_t, flags: int = 0) -> str .. py:data:: GENDSM_FORCE_CODE .. py:data:: GENDSM_MULTI_LINE .. py:data:: GENDSM_REMOVE_TAGS .. py:data:: GENDSM_UNHIDE .. py:function:: get_first_free_extra_cmtidx(ea: ida_idaapi.ea_t, start: int) -> int .. py:function:: update_extra_cmt(ea: ida_idaapi.ea_t, what: int, str: update_extra_cmt.str) -> bool .. py:function:: del_extra_cmt(ea: ida_idaapi.ea_t, what: int) -> bool .. py:function:: get_extra_cmt(ea: ida_idaapi.ea_t, what: int) -> int .. py:function:: delete_extra_cmts(ea: ida_idaapi.ea_t, what: int) -> None .. py:function:: create_encoding_helper(*args) -> encoder_t * .. py:function:: tag_remove(nonnul_instr: str) -> str Remove color escape sequences from a string. :returns: length of resulting string, -1 if error .. py:function:: tag_addr(ea: ida_idaapi.ea_t) -> str Insert an address mark into a string. :param ea: address to include .. py:function:: tag_skipcode(line: str) -> int Skip one color code. This function should be used if you are interested in color codes and want to analyze all of them. Otherwise tag_skipcodes() function is better since it will skip all colors at once. This function will skip the current color code if there is one. If the current symbol is not a color code, it will return the input. :returns: moved pointer .. py:function:: tag_skipcodes(line: str) -> int Move the pointer past all color codes. :param line: can't be nullptr :returns: moved pointer, can't be nullptr .. py:function:: tag_advance(line: str, cnt: int) -> int Move pointer to a 'line' to 'cnt' positions right. Take into account escape sequences. :param line: pointer to string :param cnt: number of positions to move right :returns: moved pointer .. py:function:: generate_disassembly(ea, max_lines, as_stack, notag, include_hidden: Boolean = False) Generate disassembly lines (many lines) and put them into a buffer :param ea: address to generate disassembly for :param max_lines: how many lines max to generate :param as_stack: Display undefined items as 2/4/8 bytes :param notag: remove color tags :param include_hidden: automatically unhide hidden objects :returns: tuple(most_important_line_number, list(lines)) : Returns a tuple containing the most important line number and a list of generated lines :returns: None on failure .. py:data:: COLOR_ADDR_SIZE :value: 16 Size of a tagged address (see COLOR_ADDR) .. py:data:: SCOLOR_FG_MAX :value: '(' .. py:data:: cvar .. py:data:: SCOLOR_OPND1 .. py:data:: SCOLOR_OPND2 .. py:data:: SCOLOR_OPND3 .. py:data:: SCOLOR_OPND4 .. py:data:: SCOLOR_OPND5 .. py:data:: SCOLOR_OPND6 .. py:data:: SCOLOR_UTF8 .. py:data:: PALETTE_SIZE .. py:function:: requires_color_esc(c) Is the given char a color escape character? .. py:function:: COLSTR(str, tag) Utility function to create a colored line :param str: The string :param tag: Color tag constant. One of SCOLOR_XXXX .. py:data:: E_PREV .. py:data:: E_NEXT