Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 165.40 KB | None | 0 0
  1. Python>help(idc)
  2. Help on module idc:
  3.  
  4. NAME
  5. idc - IDC compatibility module
  6.  
  7. FILE
  8. c:\program files\ida 7.0\python\idc.py
  9.  
  10. DESCRIPTION
  11. This file contains IDA built-in function declarations and internal bit
  12. definitions. Each byte of the program has 32-bit flags (low 8 bits keep
  13. the byte value). These 32 bits are used in get_full_flags/get_flags functions.
  14.  
  15. This file is subject to change without any notice.
  16. Future versions of IDA may use other definitions.
  17.  
  18. CLASSES
  19. exceptions.Exception(exceptions.BaseException)
  20. DeprecatedIDCError
  21.  
  22. class DeprecatedIDCError(exceptions.Exception)
  23. | Exception for deprecated function calls
  24. |
  25. | Method resolution order:
  26. | DeprecatedIDCError
  27. | exceptions.Exception
  28. | exceptions.BaseException
  29. | __builtin__.object
  30. |
  31. | Data descriptors defined here:
  32. |
  33. | __weakref__
  34. | list of weak references to the object (if defined)
  35. |
  36. | ----------------------------------------------------------------------
  37. | Methods inherited from exceptions.Exception:
  38. |
  39. | __init__(...)
  40. | x.__init__(...) initializes x; see help(type(x)) for signature
  41. |
  42. | ----------------------------------------------------------------------
  43. | Data and other attributes inherited from exceptions.Exception:
  44. |
  45. | __new__ = <built-in method __new__ of type object>
  46. | T.__new__(S, ...) -> a new object with type S, a subtype of T
  47. |
  48. | ----------------------------------------------------------------------
  49. | Methods inherited from exceptions.BaseException:
  50. |
  51. | __delattr__(...)
  52. | x.__delattr__('name') <==> del x.name
  53. |
  54. | __getattribute__(...)
  55. | x.__getattribute__('name') <==> x.name
  56. |
  57. | __getitem__(...)
  58. | x.__getitem__(y) <==> x[y]
  59. |
  60. | __getslice__(...)
  61. | x.__getslice__(i, j) <==> x[i:j]
  62. |
  63. | Use of negative indices is not supported.
  64. |
  65. | __reduce__(...)
  66. |
  67. | __repr__(...)
  68. | x.__repr__() <==> repr(x)
  69. |
  70. | __setattr__(...)
  71. | x.__setattr__('name', value) <==> x.name = value
  72. |
  73. | __setstate__(...)
  74. |
  75. | __str__(...)
  76. | x.__str__() <==> str(x)
  77. |
  78. | __unicode__(...)
  79. |
  80. | ----------------------------------------------------------------------
  81. | Data descriptors inherited from exceptions.BaseException:
  82. |
  83. | __dict__
  84. |
  85. | args
  86. |
  87. | message
  88.  
  89. FUNCTIONS
  90. AddSeg(startea, endea, base, use32, align, comb)
  91.  
  92. AddStrucMember = add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, reftype=2L)
  93. Add structure member
  94.  
  95. @param sid: structure type ID
  96. @param name: name of the new member
  97. @param offset: offset of the new member
  98. -1 means to add at the end of the structure
  99. @param flag: type of the new member. Should be one of
  100. FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA
  101. @param typeid: if isStruc(flag) then typeid specifies the structure id for the member
  102. if is_off0(flag) then typeid specifies the offset base.
  103. if is_strlit(flag) then typeid specifies the string type (STRTYPE_...).
  104. if is_stroff(flag) then typeid specifies the structure id
  105. if is_enum(flag) then typeid specifies the enum id
  106. if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16)
  107. Otherwise typeid should be -1.
  108. @param nbytes: number of bytes in the new member
  109.  
  110. @param target: target address of the offset expr. You may specify it as
  111. -1, ida will calculate it itself
  112. @param tdelta: offset target delta. usually 0
  113. @param reftype: see REF_... definitions
  114.  
  115. @note: The remaining arguments are allowed only if is_off0(flag) and you want
  116. to specify a complex offset expression
  117.  
  118. @return: 0 - ok, otherwise error code (one of STRUC_ERROR_*)
  119.  
  120. ApplyType = apply_type(ea, py_type, flags=1)
  121. Apply the specified type to the address
  122.  
  123. @param ea: the address of the object
  124. @param py_type: typeinfo tuple (type, fields) as get_tinfo() returns
  125. or tuple (name, type, fields) as parse_decl() returns
  126. or None
  127. if specified as None, then the
  128. item associated with 'ea' will be deleted.
  129. @param flags: combination of TINFO_... constants or 0
  130. @return: Boolean
  131.  
  132. AutoMark(ea, qtype)
  133. Plan to analyze an address
  134.  
  135. ClearTraceFile = clear_trace(filename)
  136. Clear the current trace buffer
  137.  
  138. CompileEx(inp, isfile)
  139. #--------------------------------------------------------------------------
  140. # Compatibility macros (non-auto-generated part)
  141.  
  142. EVAL_FAILURE(code)
  143. Check the result of eval_idc() for evaluation failures
  144.  
  145. @param code: result of eval_idc()
  146.  
  147. @return: True if there was an evaluation error
  148.  
  149. Eval = eval_idc(expr)
  150. Evaluate an IDC expression
  151.  
  152. @param expr: an expression
  153.  
  154. @return: the expression value. If there are problems, the returned value will be "IDC_FAILURE: xxx"
  155. where xxx is the error description
  156.  
  157. @note: Python implementation evaluates IDC only, while IDC can call other registered languages
  158.  
  159. FindBinary = find_binary(ea, flag, searchstr, radix=16)
  160. @param ea: start address
  161. @param flag: combination of SEARCH_* flags
  162. @param searchstr: a string as a user enters it for Search Text in Core
  163. @param radix: radix of the numbers (default=16)
  164.  
  165. @return: ea of result or BADADDR if not found
  166.  
  167. @note: Example: "41 42" - find 2 bytes 41h,42h (radix is 16)
  168.  
  169. GetCommentEx(ea, repeatable)
  170. Get regular indented comment
  171.  
  172. @param ea: linear address
  173.  
  174. @param repeatable: 1 to get the repeatable comment, 0 to get the normal comment
  175.  
  176. @return: string or None if it fails
  177.  
  178. GetDisasm(ea)
  179. Get disassembly line
  180.  
  181. @param ea: linear address of instruction
  182.  
  183. @return: "" - could not decode instruction at the specified location
  184.  
  185. @note: this function may not return exactly the same mnemonics
  186. as you see on the screen.
  187.  
  188. GetDouble(ea)
  189. Get value of a floating point number (8 bytes)
  190. This function assumes number stored using IEEE format
  191. and in the same endianness as integers.
  192.  
  193. @param ea: linear address
  194.  
  195. @return: double
  196.  
  197. GetFlags = get_full_flags(ea)
  198. Get internal flags
  199.  
  200. @param ea: linear address
  201.  
  202. @return: 32-bit value of internal flags. See start of IDC.IDC file
  203. for explanations.
  204.  
  205. GetFloat(ea)
  206. Get value of a floating point number (4 bytes)
  207. This function assumes number stored using IEEE format
  208. and in the same endianness as integers.
  209.  
  210. @param ea: linear address
  211.  
  212. @return: float
  213.  
  214. GetLocalType(ordinal, flags)
  215. Retrieve a local type declaration
  216. @param flags: any of PRTYPE_* constants
  217. @return: local type as a C declaration or ""
  218.  
  219. GetManyBytes = get_bytes(ea, size, use_dbg=False)
  220. Return the specified number of bytes of the program
  221.  
  222. @param ea: linear address
  223.  
  224. @param size: size of buffer in normal 8-bit bytes
  225.  
  226. @param use_dbg: if True, use debugger memory, otherwise just the database
  227.  
  228. @return: None on failure
  229. otherwise a string containing the read bytes
  230.  
  231. GetString = get_strlit_contents(ea, length=-1, strtype=0)
  232. Get string contents
  233. @param ea: linear address
  234. @param length: string length. -1 means to calculate the max string length
  235. @param strtype: the string type (one of STRTYPE_... constants)
  236.  
  237. @return: string contents or empty string
  238.  
  239. LoadFile(filepath, pos, ea, size)
  240. Load file into IDA database
  241.  
  242. @param filepath: path to input file
  243. @param pos: position in the file
  244. @param ea: linear address to load
  245. @param size: number of bytes to load
  246.  
  247. @return: 0 - error, 1 - ok
  248.  
  249. MakeFunction(start, end=18446744073709551615L)
  250.  
  251. MakeVar(ea)
  252. Mark the location as "variable"
  253.  
  254. @param ea: address to mark
  255.  
  256. @return: None
  257.  
  258. @note: All that IDA does is to mark the location as "variable".
  259. Nothing else, no additional analysis is performed.
  260. This function may disappear in the future.
  261.  
  262. Message = msg(message)
  263. Display an UTF-8 string in the message window
  264.  
  265. The result of the stringification of the arguments
  266. will be treated as an UTF-8 string.
  267.  
  268. @param message: message to print (formatting is done in Python)
  269.  
  270. This function can be used to debug IDC scripts
  271.  
  272. NextHead = next_head(ea, maxea=18446744073709551615L)
  273. Get next defined item (instruction or data) in the program
  274.  
  275. @param ea: linear address to start search from
  276. @param maxea: the search will stop at the address
  277. maxea is not included in the search range
  278.  
  279. @return: BADADDR - no (more) defined items
  280.  
  281. ParseTypes = parse_decls(inputtype, flags=0)
  282. Parse type declarations
  283.  
  284. @param inputtype: file name or C declarations (depending on the flags)
  285. @param flags: combination of PT_... constants or 0
  286.  
  287. @return: number of parsing errors (0 no errors)
  288.  
  289. PrevHead = prev_head(ea, minea=0)
  290. Get previous defined item (instruction or data) in the program
  291.  
  292. @param ea: linear address to start search from
  293. @param minea: the search will stop at the address
  294. minea is included in the search range
  295.  
  296. @return: BADADDR - no (more) defined items
  297.  
  298. ProcessUiAction = process_ui_action(name, flags=0)
  299. Invokes an IDA UI action by name
  300.  
  301. @param name: Command name
  302. @param flags: Reserved. Must be zero
  303. @return: Boolean
  304.  
  305. ResumeProcess = resume_process()
  306.  
  307. SaveBase = save_database(idbname, flags=0)
  308. Save current database to the specified idb file
  309.  
  310. @param idbname: name of the idb file. if empty, the current idb
  311. file will be used.
  312. @param flags: combination of ida_loader.DBFL_... bits or 0
  313.  
  314. SaveFile(filepath, pos, ea, size)
  315. Save from IDA database to file
  316.  
  317. @param filepath: path to output file
  318. @param pos: position in the file
  319. @param ea: linear address to save from
  320. @param size: number of bytes to save
  321.  
  322. @return: 0 - error, 1 - ok
  323.  
  324. SendDbgCommand = send_dbg_command(cmd)
  325. Sends a command to the debugger module and returns the output string.
  326. An exception will be raised if the debugger is not running or the current debugger does not export
  327. the 'send_dbg_command' IDC command.
  328.  
  329. SetMemberType = set_member_type(sid, member_offset, flag, typeid, nitems, target=-1, tdelta=0, reftype=2L)
  330. Change structure member type
  331.  
  332. @param sid: structure type ID
  333. @param member_offset: offset of the member
  334. @param flag: new type of the member. Should be one of
  335. FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA
  336. @param typeid: if isStruc(flag) then typeid specifies the structure id for the member
  337. if is_off0(flag) then typeid specifies the offset base.
  338. if is_strlit(flag) then typeid specifies the string type (STRTYPE_...).
  339. if is_stroff(flag) then typeid specifies the structure id
  340. if is_enum(flag) then typeid specifies the enum id
  341. if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16)
  342. Otherwise typeid should be -1.
  343. @param nitems: number of items in the member
  344.  
  345. @param target: target address of the offset expr. You may specify it as
  346. -1, ida will calculate it itself
  347. @param tdelta: offset target delta. usually 0
  348. @param reftype: see REF_... definitions
  349.  
  350. @note: The remaining arguments are allowed only if is_off0(flag) and you want
  351. to specify a complex offset expression
  352.  
  353. @return: !=0 - ok.
  354.  
  355. SetPrcsr(processor)
  356.  
  357. SetType(ea, newtype)
  358. Set type of function/variable
  359.  
  360. @param ea: the address of the object
  361. @param newtype: the type string in C declaration form.
  362. Must contain the closing ';'
  363. if specified as an empty string, then the
  364. item associated with 'ea' will be deleted.
  365.  
  366. @return: 1-ok, 0-failed.
  367.  
  368. SizeOf(typestr)
  369. Returns the size of the type. It is equivalent to IDC's sizeof().
  370. Use name, tp, fld = idc.parse_decl() ; SizeOf(tp) to retrieve the size
  371. @return: -1 if typestring is not valid otherwise the size of the type
  372.  
  373. UMessage = msg(message)
  374. Display an UTF-8 string in the message window
  375.  
  376. The result of the stringification of the arguments
  377. will be treated as an UTF-8 string.
  378.  
  379. @param message: message to print (formatting is done in Python)
  380.  
  381. This function can be used to debug IDC scripts
  382.  
  383. WriteExe(filepath)
  384.  
  385. WriteMap(filepath)
  386.  
  387. WriteTxt(filepath, ea1, ea2)
  388.  
  389. add_auto_stkpnt(func_ea, ea, delta)
  390. Add automatical SP register change point
  391. @param func_ea: function start
  392. @param ea: linear address where SP changes
  393. usually this is the end of the instruction which
  394. modifies the stack pointer (insn.ea+insn.size)
  395. @param delta: difference between old and new values of SP
  396. @return: 1-ok, 0-failed
  397.  
  398. add_bpt(ea, size=0, bpttype=12)
  399. Add a new breakpoint
  400.  
  401. @param ea: any address in the process memory space:
  402. @param size: size of the breakpoint (irrelevant for software breakpoints):
  403. @param bpttype: type of the breakpoint (one of BPT_... constants)
  404.  
  405. @return: success
  406.  
  407. @note: Only one breakpoint can exist at a given address.
  408.  
  409. add_cref(From, To, flowtype)
  410.  
  411. add_default_til(name)
  412. Load a type library
  413.  
  414. @param name: name of type library.
  415. @return: 1-ok, 0-failed.
  416.  
  417. add_dref(From, To, drefType)
  418. Create Data Ref
  419.  
  420. add_entry(ordinal, ea, name, makecode)
  421. Add entry point
  422.  
  423. @param ordinal: entry point number
  424. if entry point doesn't have an ordinal
  425. number, 'ordinal' should be equal to 'ea'
  426. @param ea: address of the entry point
  427. @param name: name of the entry point. If null string,
  428. the entry point won't be renamed.
  429. @param makecode: if 1 then this entry point is a start
  430. of a function. Otherwise it denotes data bytes.
  431.  
  432. @return: 0 - entry point with the specifed ordinal already exists
  433. 1 - ok
  434.  
  435. add_enum(idx, name, flag)
  436. Add a new enum type
  437.  
  438. @param idx: serial number of the new enum.
  439. If another enum with the same serial number
  440. exists, then all enums with serial
  441. numbers >= the specified idx get their
  442. serial numbers incremented (in other words,
  443. the new enum is put in the middle of the list of enums).
  444.  
  445. If idx >= get_enum_qty() or idx == idaapi.BADNODE
  446. then the new enum is created at the end of
  447. the list of enums.
  448.  
  449. @param name: name of the enum.
  450. @param flag: flags for representation of numeric constants
  451. in the definition of enum.
  452.  
  453. @return: id of new enum or BADADDR
  454.  
  455. add_enum_member(enum_id, name, value, bmask)
  456. Add a member of enum - a symbolic constant
  457.  
  458. @param enum_id: id of enum
  459. @param name: name of symbolic constant. Must be unique in the program.
  460. @param value: value of symbolic constant.
  461. @param bmask: bitmask of the constant
  462. ordinary enums accept only ida_enum.DEFMASK as a bitmask
  463. all bits set in value should be set in bmask too
  464.  
  465. @return: 0-ok, otherwise error code (one of ENUM_MEMBER_ERROR_*)
  466.  
  467. add_func(start, end=18446744073709551615L)
  468. Create a function
  469.  
  470. @param start: function bounds
  471. @param end: function bounds
  472.  
  473. If the function end address is BADADDR, then
  474. IDA will try to determine the function bounds
  475. automatically. IDA will define all necessary
  476. instructions to determine the function bounds.
  477.  
  478. @return: !=0 - ok
  479.  
  480. @note: an instruction should be present at the start address
  481.  
  482. add_hidden_range(start, end, description, header, footer, color)
  483. Hide a range
  484.  
  485. Hidden ranges - address ranges which can be replaced by their descriptions
  486.  
  487. @param start: range start
  488. @param end: range end
  489. @param description: description to display if the range is collapsed
  490. @param header: header lines to display if the range is expanded
  491. @param footer: footer lines to display if the range is expanded
  492. @param color: RGB color code (-1 means default color)
  493.  
  494. @returns: !=0 - ok
  495.  
  496. add_idc_hotkey(hotkey, idcfunc)
  497. Add hotkey for IDC function
  498.  
  499. @param hotkey: hotkey name ('a', "Alt-A", etc)
  500. @param idcfunc: IDC function name
  501.  
  502. @return: None
  503.  
  504. add_segm_ex(startea, endea, base, use32, align, comb, flags)
  505. Create a new segment
  506.  
  507. @param startea: linear address of the start of the segment
  508. @param endea: linear address of the end of the segment
  509. this address will not belong to the segment
  510. 'endea' should be higher than 'startea'
  511. @param base: base paragraph or selector of the segment.
  512. a paragraph is 16byte memory chunk.
  513. If a selector value is specified, the selector should be
  514. already defined.
  515. @param use32: 0: 16bit segment, 1: 32bit segment, 2: 64bit segment
  516. @param align: segment alignment. see below for alignment values
  517. @param comb: segment combination. see below for combination values.
  518. @param flags: combination of ADDSEG_... bits
  519.  
  520. @return: 0-failed, 1-ok
  521.  
  522. add_sourcefile(ea1, ea2, filename)
  523. Mark a range of address as belonging to a source file
  524. An address range may belong only to one source file.
  525. A source file may be represented by several address ranges.
  526.  
  527. @param ea1: linear address of start of the address range
  528. @param ea2: linear address of end of the address range
  529. @param filename: name of source file.
  530.  
  531. @return: 1-ok, 0-failed.
  532.  
  533. @note: IDA can keep information about source files used to create the program.
  534. Each source file is represented by a range of addresses.
  535. A source file may contains several address ranges.
  536.  
  537. add_struc(index, name, is_union)
  538. Define a new structure type
  539.  
  540. @param index: index of new structure type
  541. If another structure has the specified index,
  542. then index of that structure and all other
  543. structures will be incremented, freeing the specifed
  544. index. If index is == -1, then the biggest index
  545. number will be used.
  546. See get_first_struc_idx() for the explanation of
  547. structure indices and IDs.
  548. @param name: name of the new structure type.
  549. @param is_union: 0: structure
  550. 1: union
  551.  
  552. @return: -1 if can't define structure type because of
  553. bad structure name: the name is ill-formed or is
  554. already used in the program.
  555. otherwise returns ID of the new structure type
  556.  
  557. add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, reftype=2L)
  558. Add structure member
  559.  
  560. @param sid: structure type ID
  561. @param name: name of the new member
  562. @param offset: offset of the new member
  563. -1 means to add at the end of the structure
  564. @param flag: type of the new member. Should be one of
  565. FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA
  566. @param typeid: if isStruc(flag) then typeid specifies the structure id for the member
  567. if is_off0(flag) then typeid specifies the offset base.
  568. if is_strlit(flag) then typeid specifies the string type (STRTYPE_...).
  569. if is_stroff(flag) then typeid specifies the structure id
  570. if is_enum(flag) then typeid specifies the enum id
  571. if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16)
  572. Otherwise typeid should be -1.
  573. @param nbytes: number of bytes in the new member
  574.  
  575. @param target: target address of the offset expr. You may specify it as
  576. -1, ida will calculate it itself
  577. @param tdelta: offset target delta. usually 0
  578. @param reftype: see REF_... definitions
  579.  
  580. @note: The remaining arguments are allowed only if is_off0(flag) and you want
  581. to specify a complex offset expression
  582.  
  583. @return: 0 - ok, otherwise error code (one of STRUC_ERROR_*)
  584.  
  585. add_user_stkpnt(ea, delta)
  586. Add user-defined SP register change point.
  587.  
  588. @param ea: linear address where SP changes
  589. @param delta: difference between old and new values of SP
  590.  
  591. @return: 1-ok, 0-failed
  592.  
  593. append_func_tail(funcea, ea1, ea2)
  594. Append a function chunk to the function
  595.  
  596. @param funcea: any address in the function
  597. @param ea1: start of function tail
  598. @param ea2: end of function tail
  599. @return: 0 if failed, 1 if success
  600.  
  601. @note: If a chunk exists at the specified addresses, it must have exactly
  602. the specified boundaries
  603.  
  604. apply_type(ea, py_type, flags=1)
  605. Apply the specified type to the address
  606.  
  607. @param ea: the address of the object
  608. @param py_type: typeinfo tuple (type, fields) as get_tinfo() returns
  609. or tuple (name, type, fields) as parse_decl() returns
  610. or None
  611. if specified as None, then the
  612. item associated with 'ea' will be deleted.
  613. @param flags: combination of TINFO_... constants or 0
  614. @return: Boolean
  615.  
  616. ask_seg(defval, prompt)
  617. Ask the user to enter a segment value
  618.  
  619. @param defval: the default value. This value
  620. will appear in the dialog box.
  621. @param prompt: the prompt to display in the dialog box
  622.  
  623. @return: the entered segment selector or BADSEL.
  624.  
  625. ask_yn(defval, prompt)
  626. Ask the user a question and let him answer Yes/No/Cancel
  627.  
  628. @param defval: the default answer. This answer will be selected if the user
  629. presses Enter. -1:cancel,0-no,1-ok
  630. @param prompt: the prompt to display in the dialog box
  631.  
  632. @return: -1:cancel,0-no,1-ok
  633.  
  634. atoa(ea)
  635. Convert address value to a string
  636. Return address in the form 'seg000:1234'
  637. (the same as in line prefixes)
  638.  
  639. @param ea: address to format
  640.  
  641. atol(s)
  642.  
  643. attach_process(pid, event_id)
  644. Attach the debugger to a running process
  645.  
  646. @param pid: PID of the process to attach to. If NO_PROCESS, a dialog box
  647. will interactively ask the user for the process to attach to.
  648. @param event_id: reserved, must be -1
  649.  
  650. @return:
  651. - -2: impossible to find a compatible process
  652. - -1: impossible to attach to the given process (process died, privilege
  653. needed, not supported by the debugger plugin, ...)
  654. - 0: the user cancelled the attaching to the process
  655. - 1: the debugger properly attached to the process
  656. @note: See the important note to the step_into() function
  657.  
  658. auto_mark_range(start, end, queuetype)
  659. Plan to perform an action in the future.
  660. This function will put your request to a special autoanalysis queue.
  661. Later IDA will retrieve the request from the queue and process
  662. it. There are several autoanalysis queue types. IDA will process all
  663. queries from the first queue and then switch to the second queue, etc.
  664.  
  665. auto_unmark(start, end, queuetype)
  666. Remove range of addresses from a queue.
  667.  
  668. auto_wait()
  669. Process all entries in the autoanalysis queue
  670. Wait for the end of autoanalysis
  671.  
  672. @note: This function will suspend execution of the calling script
  673. till the autoanalysis queue is empty.
  674.  
  675. batch(batch)
  676. Enable/disable batch mode of operation
  677.  
  678. @param batch: batch mode
  679. 0 - ida will display dialog boxes and wait for the user input
  680. 1 - ida will not display dialog boxes, warnings, etc.
  681.  
  682. @return: old balue of batch flag
  683.  
  684. begin_type_updating(utp)
  685. Begin type updating. Use this function if you
  686. plan to call AddEnumConst or similar type modification functions
  687. many times or from inside a loop
  688.  
  689. @param utp: one of UTP_xxxx consts
  690. @return: None
  691.  
  692. byte_value(F)
  693. Get byte value from flags
  694. Get value of byte provided that the byte is initialized.
  695. This macro works ok only for 8-bit byte machines.
  696.  
  697. calc_gtn_flags(fromaddr, ea)
  698. Calculate flags for get_name() function
  699.  
  700. @param fromaddr: the referring address. May be BADADDR.
  701. @param ea: linear address
  702.  
  703. @return: success
  704.  
  705. call_system(command)
  706. Execute an OS command.
  707.  
  708. @param command: command line to execute
  709.  
  710. @return: error code from OS
  711.  
  712. @note:
  713. IDA will wait for the started program to finish.
  714. In order to start the command in parallel, use OS methods.
  715. For example, you may start another program in parallel using
  716. "start" command.
  717.  
  718. can_exc_continue()
  719. Can it continue after EXCEPTION event?
  720.  
  721. @return: boolean
  722.  
  723. check_bpt(ea)
  724. Check a breakpoint
  725.  
  726. @param ea: address in the process memory space
  727.  
  728. @return: one of BPTCK_... constants
  729.  
  730. choose_func(title)
  731. Ask the user to select a function
  732.  
  733. Arguments:
  734.  
  735. @param title: title of the dialog box
  736.  
  737. @return: -1 - user refused to select a function
  738. otherwise returns the selected function start address
  739.  
  740. clear_trace(filename)
  741. Clear the current trace buffer
  742.  
  743. create_align(ea, count, align)
  744. Convert the current item to an alignment directive
  745.  
  746. @param ea: linear address
  747. @param count: number of bytes to convert
  748. @param align: 0 or 1..32
  749. if it is 0, the correct alignment will be calculated
  750. by the kernel
  751.  
  752. @return: 1-ok, 0-failure
  753.  
  754. create_array(name)
  755. Create array.
  756.  
  757. @param name: The array name.
  758.  
  759. @return: -1 in case of failure, a valid array_id otherwise.
  760.  
  761. create_byte(ea)
  762. Convert the current item to a byte
  763.  
  764. @param ea: linear address
  765.  
  766. @return: 1-ok, 0-failure
  767.  
  768. create_custom_data(ea, size, dtid, fid)
  769. Convert the item at address to custom data.
  770.  
  771. @param ea: linear address.
  772. @param size: custom data size in bytes.
  773. @param dtid: data type ID.
  774. @param fid: data format ID.
  775.  
  776. @return: 1-ok, 0-failure
  777.  
  778. create_data(ea, flags, size, tid)
  779. Create a data item at the specified address
  780.  
  781. @param ea: linear address
  782. @param flags: FF_BYTE..FF_PACKREAL
  783. @param size: size of item in bytes
  784. @param tid: for FF_STRUCT the structure id
  785.  
  786. @return: 1-ok, 0-failure
  787.  
  788. create_double(ea)
  789. Convert the current item to a double floating point (8 bytes)
  790.  
  791. @param ea: linear address
  792.  
  793. @return: 1-ok, 0-failure
  794.  
  795. create_dword(ea)
  796. Convert the current item to a double word (4 bytes)
  797.  
  798. @param ea: linear address
  799.  
  800. @return: 1-ok, 0-failure
  801.  
  802. create_float(ea)
  803. Convert the current item to a floating point (4 bytes)
  804.  
  805. @param ea: linear address
  806.  
  807. @return: 1-ok, 0-failure
  808.  
  809. create_insn(ea)
  810. Create an instruction at the specified address
  811.  
  812. @param ea: linear address
  813.  
  814. @return: 0 - can not create an instruction (no such opcode, the instruction
  815. would overlap with existing items, etc) otherwise returns length of the
  816. instruction in bytes
  817.  
  818. create_oword(ea)
  819. Convert the current item to an octa word (16 bytes/128 bits)
  820.  
  821. @param ea: linear address
  822.  
  823. @return: 1-ok, 0-failure
  824.  
  825. create_pack_real(ea)
  826. Convert the current item to a packed real (10 or 12 bytes)
  827.  
  828. @param ea: linear address
  829.  
  830. @return: 1-ok, 0-failure
  831.  
  832. create_qword(ea)
  833. Convert the current item to a quadro word (8 bytes)
  834.  
  835. @param ea: linear address
  836.  
  837. @return: 1-ok, 0-failure
  838.  
  839. create_strlit(ea, endea)
  840. Create a string.
  841.  
  842. This function creates a string (the string type is determined by the
  843. value of get_inf_attr(INF_STRTYPE))
  844.  
  845. @param ea: linear address
  846. @param endea: ending address of the string (excluded)
  847. if endea == BADADDR, then length of string will be calculated
  848. by the kernel
  849.  
  850. @return: 1-ok, 0-failure
  851.  
  852. @note: The type of an existing string is returned by get_str_type()
  853.  
  854. create_struct(ea, size, strname)
  855. Convert the current item to a structure instance
  856.  
  857. @param ea: linear address
  858. @param size: structure size in bytes. -1 means that the size
  859. will be calculated automatically
  860. @param strname: name of a structure type
  861.  
  862. @return: 1-ok, 0-failure
  863.  
  864. create_tbyte(ea)
  865. Convert the current item to a tbyte (10 or 12 bytes)
  866.  
  867. @param ea: linear address
  868.  
  869. @return: 1-ok, 0-failure
  870.  
  871. create_word(ea)
  872. Convert the current item to a word (2 bytes)
  873.  
  874. @param ea: linear address
  875.  
  876. @return: 1-ok, 0-failure
  877.  
  878. create_yword(ea)
  879. Convert the current item to a ymm word (32 bytes/256 bits)
  880.  
  881. @param ea: linear address
  882.  
  883. @return: 1-ok, 0-failure
  884.  
  885. define_exception(code, name, desc, flags)
  886. Add exception handling information
  887.  
  888. @param code: exception code
  889. @param name: exception name
  890. @param desc: exception description
  891. @param flags: exception flags (combination of EXC_...)
  892.  
  893. @return: failure description or ""
  894.  
  895. define_local_var(start, end, location, name)
  896. Create a local variable
  897.  
  898. @param start: start of address range for the local variable
  899. @param end: end of address range for the local variable
  900. @param location: the variable location in the "[bp+xx]" form where xx is
  901. a number. The location can also be specified as a
  902. register name.
  903. @param name: name of the local variable
  904.  
  905. @return: 1-ok, 0-failure
  906.  
  907. @note: For the stack variables the end address is ignored.
  908. If there is no function at 'start' then this function.
  909. will fail.
  910.  
  911. del_array_element(tag, array_id, idx)
  912. Delete an array element.
  913.  
  914. @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR
  915. @param array_id: The array ID.
  916. @param idx: Index of an element.
  917.  
  918. @return: 1 in case of success, 0 otherwise.
  919.  
  920. del_bpt(ea)
  921. Delete breakpoint
  922.  
  923. @param ea: any address in the process memory space:
  924.  
  925. @return: success
  926.  
  927. del_cref(From, To, undef)
  928. Unmark exec flow 'from' 'to'
  929.  
  930. @param undef: make 'To' undefined if no more references to it
  931.  
  932. @returns: 1 - planned to be made undefined
  933.  
  934. del_dref(From, To)
  935. Unmark Data Ref
  936.  
  937. del_enum(enum_id)
  938. Delete enum type
  939.  
  940. @param enum_id: id of enum
  941.  
  942. @return: None
  943.  
  944. del_enum_member(enum_id, value, serial, bmask)
  945. Delete a member of enum - a symbolic constant
  946.  
  947. @param enum_id: id of enum
  948. @param value: value of symbolic constant.
  949. @param serial: serial number of the constant in the
  950. enumeration. See op_enum() for for details.
  951. @param bmask: bitmask of the constant ordinary enums accept
  952. only ida_enum.DEFMASK as a bitmask
  953.  
  954. @return: 1-ok, 0-failed
  955.  
  956. del_extra_cmt(ea, n)
  957. Delete an extra comment line
  958.  
  959. @param ea: linear address
  960. @param n: number of anterior additional line (0..MAX_ITEM_LINES)
  961.  
  962. @return: None
  963.  
  964. To delete anterior line #n use (E_PREV + n)
  965. To delete posterior line #n use (E_NEXT + n)
  966.  
  967. del_fixup(ea)
  968. Delete fixup information
  969.  
  970. @param ea: address to delete fixup information about
  971.  
  972. @return: None
  973.  
  974. del_func(ea)
  975. Delete a function
  976.  
  977. @param ea: any address belonging to the function
  978.  
  979. @return: !=0 - ok
  980.  
  981. del_hash_string(hash_id, key)
  982. Delete a hash element.
  983.  
  984. @param hash_id: The hash ID.
  985. @param key: Key of an element
  986.  
  987. @return: 1 upon success, 0 otherwise.
  988.  
  989. del_hidden_range(ea)
  990. Delete a hidden range
  991.  
  992. @param ea: any address belonging to the hidden range
  993. @returns: != 0 - ok
  994.  
  995. del_idc_hotkey(hotkey)
  996. Delete IDC function hotkey
  997.  
  998. @param hotkey: hotkey code to delete
  999.  
  1000. del_items(ea, flags=0, size=1)
  1001. Convert the current item to an explored item
  1002.  
  1003. @param ea: linear address
  1004. @param flags: combination of DELIT_* constants
  1005. @param size: size of the range to undefine
  1006.  
  1007. @return: None
  1008.  
  1009. del_segm(ea, flags)
  1010. Delete a segment
  1011.  
  1012. @param ea: any address in the segment
  1013. @param flags: combination of SEGMOD_* flags
  1014.  
  1015. @return: boolean success
  1016.  
  1017. del_selector(sel)
  1018. Delete a selector
  1019.  
  1020. @param sel: the selector number to delete
  1021.  
  1022. @return: None
  1023.  
  1024. @note: if the selector is found, it will be deleted
  1025.  
  1026. del_source_linnum(ea)
  1027. Delete information about source line number
  1028.  
  1029. @param ea: linear address
  1030.  
  1031. @return: None
  1032.  
  1033. del_sourcefile(ea)
  1034. Delete information about the source file
  1035.  
  1036. @param ea: linear address belonging to the source file
  1037.  
  1038. @return: NULL - source file information is not found
  1039. otherwise returns pointer to file name
  1040.  
  1041. del_stkpnt(func_ea, ea)
  1042. Delete SP register change point
  1043.  
  1044. @param func_ea: function start
  1045. @param ea: linear address
  1046. @return: 1-ok, 0-failed
  1047.  
  1048. del_struc(sid)
  1049. Delete a structure type
  1050.  
  1051. @param sid: structure type ID
  1052.  
  1053. @return: 0 if bad structure type ID is passed
  1054. 1 otherwise the structure type is deleted. All data
  1055. and other structure types referencing to the
  1056. deleted structure type will be displayed as array
  1057. of bytes.
  1058.  
  1059. del_struc_member(sid, member_offset)
  1060. Delete structure member
  1061.  
  1062. @param sid: structure type ID
  1063. @param member_offset: offset of the member
  1064.  
  1065. @return: != 0 - ok.
  1066.  
  1067. @note: IDA allows 'holes' between members of a
  1068. structure. It treats these 'holes'
  1069. as unnamed arrays of bytes.
  1070.  
  1071. delete_all_segments()
  1072. Delete all segments, instructions, comments, i.e. everything
  1073. except values of bytes.
  1074.  
  1075. delete_array(array_id)
  1076. Delete array, by its ID.
  1077.  
  1078. @param array_id: The ID of the array to delete.
  1079.  
  1080. demangle_name(name, disable_mask)
  1081. demangle_name a name
  1082.  
  1083. @param name: name to demangle
  1084. @param disable_mask: a mask that tells how to demangle the name
  1085. it is a good idea to get this mask using
  1086. get_inf_attr(INF_SHORT_DN) or get_inf_attr(INF_LONG_DN)
  1087.  
  1088. @return: a demangled name
  1089. If the input name cannot be demangled, returns None
  1090.  
  1091. detach_process()
  1092. Detach the debugger from the debugged process.
  1093.  
  1094. @return: success
  1095.  
  1096. diff_trace_file(filename)
  1097. Diff current trace buffer against given trace
  1098. @param filename: trace file
  1099.  
  1100. enable_bpt(ea, enable)
  1101. Enable/disable breakpoint
  1102.  
  1103. @param ea: any address in the process memory space
  1104.  
  1105. @return: success
  1106.  
  1107. @note: Disabled breakpoints are not written to the process memory
  1108.  
  1109. enable_tracing(trace_level, enable)
  1110. Enable step tracing
  1111.  
  1112. @param trace_level: what kind of trace to modify
  1113. @param enable: 0: turn off, 1: turn on
  1114.  
  1115. @return: success
  1116.  
  1117. end_type_updating(utp)
  1118. End type updating. Refreshes the type system
  1119. at the end of type modification operations
  1120.  
  1121. @param utp: one of ida_typeinf.UTP_xxxx consts
  1122. @return: None
  1123.  
  1124. error(format)
  1125. Display a fatal message in a message box and quit IDA
  1126.  
  1127. @param format: message to print
  1128.  
  1129. eval_idc(expr)
  1130. Evaluate an IDC expression
  1131.  
  1132. @param expr: an expression
  1133.  
  1134. @return: the expression value. If there are problems, the returned value will be "IDC_FAILURE: xxx"
  1135. where xxx is the error description
  1136.  
  1137. @note: Python implementation evaluates IDC only, while IDC can call other registered languages
  1138.  
  1139. exit_process()
  1140. Stop the debugger
  1141. Kills the currently debugger process and returns to the disassembly mode
  1142.  
  1143. @return: success
  1144.  
  1145. expand_struc(sid, offset, delta, recalc)
  1146. Expand or shrink a structure type
  1147. @param id: structure type ID
  1148. @param offset: offset in the structure
  1149. @param delta: how many bytes to add or remove
  1150. @param recalc: recalculate the locations where the structure
  1151. type is used
  1152. @return: != 0 - ok
  1153.  
  1154. fclose(handle)
  1155.  
  1156. fgetc(handle)
  1157.  
  1158. filelength(handle)
  1159.  
  1160. find_binary(ea, flag, searchstr, radix=16)
  1161. @param ea: start address
  1162. @param flag: combination of SEARCH_* flags
  1163. @param searchstr: a string as a user enters it for Search Text in Core
  1164. @param radix: radix of the numbers (default=16)
  1165.  
  1166. @return: ea of result or BADADDR if not found
  1167.  
  1168. @note: Example: "41 42" - find 2 bytes 41h,42h (radix is 16)
  1169.  
  1170. find_code(ea, flag)
  1171.  
  1172. find_data(ea, flag)
  1173.  
  1174. find_defined(ea, flag)
  1175.  
  1176. find_func_end(ea)
  1177. Determine a new function boundaries
  1178.  
  1179. @param ea: starting address of a new function
  1180.  
  1181. @return: if a function already exists, then return its end address.
  1182. If a function end cannot be determined, the return BADADDR
  1183. otherwise return the end address of the new function
  1184.  
  1185. find_imm(ea, flag, value)
  1186.  
  1187. find_selector(val)
  1188. Find a selector which has the specifed value
  1189.  
  1190. @param val: value to search for
  1191.  
  1192. @return: the selector number if found,
  1193. otherwise the input value (val & 0xFFFF)
  1194.  
  1195. @note: selector values are always in paragraphs
  1196.  
  1197. find_suspop(ea, flag)
  1198. # returns BADADDR - not found
  1199.  
  1200. find_text(ea, flag, y, x, searchstr)
  1201. @param ea: start address
  1202. @param flag: combination of SEARCH_* flags
  1203. @param y: number of text line at ea to start from (0..MAX_ITEM_LINES)
  1204. @param x: coordinate in this line
  1205. @param searchstr: search string
  1206.  
  1207. @return: ea of result or BADADDR if not found
  1208.  
  1209. find_unknown(ea, flag)
  1210.  
  1211. first_func_chunk(funcea)
  1212. Get the first function chunk of the specified function
  1213.  
  1214. @param funcea: any address in the function
  1215.  
  1216. @return: the function entry point or BADADDR
  1217.  
  1218. @note: This function returns the first (main) chunk of the specified function
  1219.  
  1220. fopen(f, mode)
  1221. #----------------------------------------------------------------------------
  1222. # F I L E I / O
  1223. #----------------------------------------------------------------------------
  1224.  
  1225. force_bl_call(ea)
  1226. Force BL instruction to be a call
  1227.  
  1228. @param ea: address of the BL instruction
  1229.  
  1230. @return: 1-ok, 0-failed
  1231.  
  1232. force_bl_jump(ea)
  1233. Some ARM compilers in Thumb mode use BL (branch-and-link)
  1234. instead of B (branch) for long jumps, since BL has more range.
  1235. By default, IDA tries to determine if BL is a jump or a call.
  1236. You can override IDA's decision using commands in Edit/Other menu
  1237. (Force BL call/Force BL jump) or the following two functions.
  1238.  
  1239. Force BL instruction to be a jump
  1240.  
  1241. @param ea: address of the BL instruction
  1242.  
  1243. @return: 1-ok, 0-failed
  1244.  
  1245. form(format, *args)
  1246.  
  1247. fprintf(handle, format, *args)
  1248.  
  1249. fputc(byte, handle)
  1250.  
  1251. fseek(handle, offset, origin)
  1252.  
  1253. ftell(handle)
  1254.  
  1255. func_contains(func_ea, ea)
  1256. Does the given function contain the given address?
  1257.  
  1258. @param func_ea: any address belonging to the function
  1259. @param ea: linear address
  1260.  
  1261. @return: success
  1262.  
  1263. gen_file(filetype, path, ea1, ea2, flags)
  1264. Generate an output file
  1265.  
  1266. @param filetype: type of output file. One of OFILE_... symbols. See below.
  1267. @param path: the output file path (will be overwritten!)
  1268. @param ea1: start address. For some file types this argument is ignored
  1269. @param ea2: end address. For some file types this argument is ignored
  1270. @param flags: bit combination of GENFLG_...
  1271.  
  1272. @returns: number of the generated lines.
  1273. -1 if an error occured
  1274. OFILE_EXE: 0-can't generate exe file, 1-ok
  1275.  
  1276. gen_flow_graph(outfile, title, ea1, ea2, flags)
  1277. Generate a flow chart GDL file
  1278.  
  1279. @param outfile: output file name. GDL extension will be used
  1280. @param title: graph title
  1281. @param ea1: beginning of the range to flow chart
  1282. @param ea2: end of the range to flow chart.
  1283. @param flags: combination of CHART_... constants
  1284.  
  1285. @note: If ea2 == BADADDR then ea1 is treated as an address within a function.
  1286. That function will be flow charted.
  1287.  
  1288. gen_simple_call_chart(outfile, title, flags)
  1289. Generate a function call graph GDL file
  1290.  
  1291. @param outfile: output file name. GDL extension will be used
  1292. @param title: graph title
  1293. @param flags: combination of CHART_GEN_GDL, CHART_WINGRAPH, CHART_NOLIBFUNCS
  1294.  
  1295. generate_disasm_line(ea, flags)
  1296. Get disassembly line
  1297.  
  1298. @param ea: linear address of instruction
  1299.  
  1300. @param flags: combination of the GENDSM_ flags, or 0
  1301.  
  1302. @return: "" - could not decode instruction at the specified location
  1303.  
  1304. @note: this function may not return exactly the same mnemonics
  1305. as you see on the screen.
  1306.  
  1307. get_array_element(tag, array_id, idx)
  1308. Get value of array element.
  1309.  
  1310. @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR
  1311. @param array_id: The array ID.
  1312. @param idx: Index of an element.
  1313.  
  1314. @return: Value of the specified array element. Note that
  1315. this function may return char or long result. Unexistent
  1316. array elements give zero as a result.
  1317.  
  1318. get_array_id(name)
  1319. Get array array_id, by name.
  1320.  
  1321. @param name: The array name.
  1322.  
  1323. @return: -1 in case of failure (i.e., no array with that
  1324. name exists), a valid array_id otherwise.
  1325.  
  1326. get_bmask_cmt(enum_id, bmask, repeatable)
  1327. Get bitmask comment (only for bitfields)
  1328.  
  1329. @param enum_id: id of enum
  1330. @param bmask: bitmask of the constant
  1331. @param repeatable: type of comment, 0-regular, 1-repeatable
  1332.  
  1333. @return: comment attached to bitmask or None
  1334.  
  1335. get_bmask_name(enum_id, bmask)
  1336. Get bitmask name (only for bitfields)
  1337.  
  1338. @param enum_id: id of enum
  1339. @param bmask: bitmask of the constant
  1340.  
  1341. @return: name of bitmask or None
  1342.  
  1343. get_bookmark(slot)
  1344. Get marked position
  1345.  
  1346. @param slot: slot number: 1..1024 if the specifed value is <= 0
  1347. range, IDA will ask the user to select slot.
  1348.  
  1349. @return: BADADDR - the slot doesn't contain a marked address
  1350. otherwise returns the marked address
  1351.  
  1352. get_bookmark_desc(slot)
  1353. Get marked position comment
  1354.  
  1355. @param slot: slot number: 1..1024
  1356.  
  1357. @return: None if the slot doesn't contain a marked address
  1358. otherwise returns the marked address comment
  1359.  
  1360. get_bpt_attr(ea, bptattr)
  1361. Get the characteristics of a breakpoint
  1362.  
  1363. @param ea: any address in the breakpoint range
  1364. @param bptattr: the desired attribute code, one of BPTATTR_... constants
  1365.  
  1366. @return: the desired attribute value or -1
  1367.  
  1368. get_bpt_ea(n)
  1369. Get breakpoint address
  1370.  
  1371. @param n: number of breakpoint, is in range 0..get_bpt_qty()-1
  1372.  
  1373. @return: address of the breakpoint or BADADDR
  1374.  
  1375. get_bpt_qty()
  1376. Get number of breakpoints.
  1377.  
  1378. @return: number of breakpoints
  1379.  
  1380. get_bpt_tev_ea(tev)
  1381. Return the address of the specified TEV_BPT event
  1382. @param tev: event number
  1383.  
  1384. get_bytes(ea, size, use_dbg=False)
  1385. Return the specified number of bytes of the program
  1386.  
  1387. @param ea: linear address
  1388.  
  1389. @param size: size of buffer in normal 8-bit bytes
  1390.  
  1391. @param use_dbg: if True, use debugger memory, otherwise just the database
  1392.  
  1393. @return: None on failure
  1394. otherwise a string containing the read bytes
  1395.  
  1396. get_call_tev_callee(tev)
  1397. Return the address of the callee for the specified event
  1398. @param tev: event number
  1399.  
  1400. get_cmt(ea, repeatable)
  1401. Get regular indented comment
  1402.  
  1403. @param ea: linear address
  1404.  
  1405. @param repeatable: 1 to get the repeatable comment, 0 to get the normal comment
  1406.  
  1407. @return: string or None if it fails
  1408.  
  1409. get_color(ea, what)
  1410. Get item color
  1411.  
  1412. @param ea: address of the item
  1413. @param what: type of the item (one of CIC_* constants)
  1414.  
  1415. @return: color code in RGB (hex 0xBBGGRR)
  1416.  
  1417. get_curline()
  1418. Get the disassembly line at the cursor
  1419.  
  1420. @return: string
  1421.  
  1422. get_current_thread()
  1423. Get current thread ID
  1424.  
  1425. @return: -1 if failure
  1426.  
  1427. get_db_byte(ea)
  1428. Get one byte (8-bit) of the program at 'ea' from the database even if the debugger is active
  1429.  
  1430. @param ea: linear address
  1431.  
  1432. @return: byte value. If the byte has no value then 0xFF is returned.
  1433.  
  1434. @note: If the current byte size is different from 8 bits, then the returned value may have more 1's.
  1435. To check if a byte has a value, use is_loaded()
  1436.  
  1437. get_debugger_event_cond()
  1438. Return the debugger event condition
  1439.  
  1440. get_entry(ordinal)
  1441. Retrieve entry point address
  1442.  
  1443. @param ordinal: entry point number
  1444. it is returned by GetEntryPointOrdinal()
  1445.  
  1446. @return: BADADDR if entry point doesn't exist
  1447. otherwise entry point address.
  1448. If entry point address is equal to its ordinal
  1449. number, then the entry point has no ordinal.
  1450.  
  1451. get_entry_name(ordinal)
  1452. Retrieve entry point name
  1453.  
  1454. @param ordinal: entry point number, ass returned by GetEntryPointOrdinal()
  1455.  
  1456. @return: entry point name or None
  1457.  
  1458. get_entry_ordinal(index)
  1459. Retrieve entry point ordinal number
  1460.  
  1461. @param index: 0..get_entry_qty()-1
  1462.  
  1463. @return: 0 if entry point doesn't exist
  1464. otherwise entry point ordinal
  1465.  
  1466. get_entry_qty()
  1467. Retrieve number of entry points
  1468.  
  1469. @returns: number of entry points
  1470.  
  1471. get_enum(name)
  1472. Get enum ID by the name of enum
  1473.  
  1474. Arguments:
  1475. name - name of enum
  1476.  
  1477. returns: ID of enum or -1 if no such enum exists
  1478.  
  1479. get_enum_cmt(enum_id, repeatable)
  1480. Get comment of enum
  1481.  
  1482. @param enum_id: ID of enum
  1483. @param repeatable: 0:get regular comment
  1484. 1:get repeatable comment
  1485.  
  1486. @return: comment of enum
  1487.  
  1488. get_enum_flag(enum_id)
  1489. Get flag of enum
  1490.  
  1491. @param enum_id: ID of enum
  1492.  
  1493. @return: flags of enum. These flags determine representation
  1494. of numeric constants (binary,octal,decimal,hex)
  1495. in the enum definition. See start of this file for
  1496. more information about flags.
  1497. Returns 0 if enum_id is bad.
  1498.  
  1499. get_enum_idx(enum_id)
  1500. Get serial number of enum by its ID
  1501.  
  1502. @param enum_id: ID of enum
  1503.  
  1504. @return: (0..get_enum_qty()-1) or -1 if error
  1505.  
  1506. get_enum_member(enum_id, value, serial, bmask)
  1507. Get id of constant
  1508.  
  1509. @param enum_id: id of enum
  1510. @param value: value of constant
  1511. @param serial: serial number of the constant in the
  1512. enumeration. See op_enum() for details.
  1513. @param bmask: bitmask of the constant
  1514. ordinary enums accept only ida_enum.DEFMASK as a bitmask
  1515.  
  1516. @return: id of constant or -1 if error
  1517.  
  1518. get_enum_member_bmask(const_id)
  1519. Get bit mask of symbolic constant
  1520.  
  1521. @param const_id: id of symbolic constant
  1522.  
  1523. @return: bitmask of constant or 0
  1524. ordinary enums have bitmask = -1
  1525.  
  1526. get_enum_member_by_name(name)
  1527. Get member of enum - a symbolic constant ID
  1528.  
  1529. @param name: name of symbolic constant
  1530.  
  1531. @return: ID of constant or -1
  1532.  
  1533. get_enum_member_cmt(const_id, repeatable)
  1534. Get comment of a constant
  1535.  
  1536. @param const_id: id of const
  1537. @param repeatable: 0:get regular comment, 1:get repeatable comment
  1538.  
  1539. @return: comment string
  1540.  
  1541. get_enum_member_enum(const_id)
  1542. Get id of enum by id of constant
  1543.  
  1544. @param const_id: id of symbolic constant
  1545.  
  1546. @return: id of enum the constant belongs to.
  1547. -1 if const_id is bad.
  1548.  
  1549. get_enum_member_name(const_id)
  1550. Get name of a constant
  1551.  
  1552. @param const_id: id of const
  1553.  
  1554. Returns: name of constant
  1555.  
  1556. get_enum_member_value(const_id)
  1557. Get value of symbolic constant
  1558.  
  1559. @param const_id: id of symbolic constant
  1560.  
  1561. @return: value of constant or 0
  1562.  
  1563. get_enum_name(enum_id)
  1564. Get name of enum
  1565.  
  1566. @param enum_id: ID of enum
  1567.  
  1568. @return: name of enum or empty string
  1569.  
  1570. get_enum_qty()
  1571. Get number of enum types
  1572.  
  1573. @return: number of enumerations
  1574.  
  1575. get_enum_size(enum_id)
  1576. Get size of enum
  1577.  
  1578. @param enum_id: ID of enum
  1579.  
  1580. @return: number of constants in the enum
  1581. Returns 0 if enum_id is bad.
  1582.  
  1583. get_enum_width(enum_id)
  1584. Get width of enum elements
  1585.  
  1586. @param enum_id: ID of enum
  1587.  
  1588. @return: size of enum elements in bytes
  1589. (0 if enum_id is bad or the width is unknown).
  1590.  
  1591. get_event_bpt_hea()
  1592. Get hardware address for BREAKPOINT event
  1593.  
  1594. @return: hardware address
  1595.  
  1596. get_event_ea()
  1597. Get ea for debug event
  1598.  
  1599. @return: ea
  1600.  
  1601. get_event_exc_code()
  1602. Get exception code for EXCEPTION event
  1603.  
  1604. @return: exception code
  1605.  
  1606. get_event_exc_ea()
  1607. Get address for EXCEPTION event
  1608.  
  1609. @return: adress of exception
  1610.  
  1611. get_event_exc_info()
  1612. Get info for EXCEPTION event
  1613.  
  1614. @return: info string
  1615.  
  1616. get_event_exit_code()
  1617. Get exit code for debug event
  1618.  
  1619. @return: exit code for PROCESS_EXIT, THREAD_EXIT events
  1620.  
  1621. get_event_id()
  1622. Get ID of debug event
  1623.  
  1624. @return: event ID
  1625.  
  1626. get_event_info()
  1627. Get debug event info
  1628.  
  1629. @return: event info: for LIBRARY_UNLOAD (unloaded library name)
  1630. for INFORMATION (message to display)
  1631.  
  1632. get_event_module_base()
  1633. Get module base for debug event
  1634.  
  1635. @return: module base
  1636.  
  1637. get_event_module_name()
  1638. Get module name for debug event
  1639.  
  1640. @return: module name
  1641.  
  1642. get_event_module_size()
  1643. Get module size for debug event
  1644.  
  1645. @return: module size
  1646.  
  1647. get_event_pid()
  1648. Get process ID for debug event
  1649.  
  1650. @return: process ID
  1651.  
  1652. get_event_tid()
  1653. Get type ID for debug event
  1654.  
  1655. @return: type ID
  1656.  
  1657. get_extra_cmt(ea, n)
  1658. Get extra comment line
  1659.  
  1660. @param ea: linear address
  1661. @param n: number of line (0..MAX_ITEM_LINES)
  1662. MAX_ITEM_LINES is defined in IDA.CFG
  1663.  
  1664. To get anterior line #n use (E_PREV + n)
  1665. To get posterior line #n use (E_NEXT + n)
  1666.  
  1667. @return: extra comment line string
  1668.  
  1669. get_fchunk_attr(ea, attr)
  1670. Get a function chunk attribute
  1671.  
  1672. @param ea: any address in the chunk
  1673. @param attr: one of: FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER, FUNCATTR_REFQTY
  1674.  
  1675. @return: desired attribute or -1
  1676.  
  1677. get_fchunk_referer(ea, idx)
  1678. Get a function chunk referer
  1679.  
  1680. @param ea: any address in the chunk
  1681. @param idx: referer index (0..get_fchunk_attr(FUNCATTR_REFQTY))
  1682.  
  1683. @return: referer address or BADADDR
  1684.  
  1685. get_first_bmask(enum_id)
  1686. Get first bitmask in the enum (bitfield)
  1687.  
  1688. @param enum_id: id of enum (bitfield)
  1689.  
  1690. @return: the smallest bitmask of constant or -1
  1691. no bitmasks are defined yet
  1692. All bitmasks are sorted by their values
  1693. as unsigned longs.
  1694.  
  1695. get_first_cref_from(From)
  1696. Get first code xref from 'From'
  1697.  
  1698. get_first_cref_to(To)
  1699. Get first code xref to 'To'
  1700.  
  1701. get_first_dref_from(From)
  1702. Get first data xref from 'From'
  1703.  
  1704. get_first_dref_to(To)
  1705. Get first data xref to 'To'
  1706.  
  1707. get_first_enum_member(enum_id, bmask)
  1708. Get first constant in the enum
  1709.  
  1710. @param enum_id: id of enum
  1711. @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask)
  1712.  
  1713. @return: value of constant or idaapi.BADNODE no constants are defined
  1714. All constants are sorted by their values as unsigned longs.
  1715.  
  1716. get_first_fcref_from(From)
  1717. Get first xref from 'From'
  1718.  
  1719. get_first_fcref_to(To)
  1720. Get first xref to 'To'
  1721.  
  1722. get_first_hash_key(hash_id)
  1723. Get the first key in the hash.
  1724.  
  1725. @param hash_id: The hash ID.
  1726.  
  1727. @return: the key, 0 otherwise.
  1728.  
  1729. get_first_index(tag, array_id)
  1730. Get index of the first existing array element.
  1731.  
  1732. @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR
  1733. @param array_id: The array ID.
  1734.  
  1735. @return: -1 if the array is empty, otherwise index of first array
  1736. element of given type.
  1737.  
  1738. get_first_member(sid)
  1739. Get offset of the first member of a structure
  1740.  
  1741. @param sid: structure type ID
  1742.  
  1743. @return: -1 if bad structure type ID is passed,
  1744. ida_idaapi.BADADDR if structure has no members,
  1745. otherwise returns offset of the first member.
  1746.  
  1747. @note: IDA allows 'holes' between members of a
  1748. structure. It treats these 'holes'
  1749. as unnamed arrays of bytes.
  1750.  
  1751. @note: Union members are, in IDA's internals, located
  1752. at subsequent byte offsets: member 0 -> offset 0x0,
  1753. member 1 -> offset 0x1, etc...
  1754.  
  1755. get_first_module()
  1756. Enumerate process modules
  1757.  
  1758. @return: first module's base address or None on failure
  1759.  
  1760. get_first_seg()
  1761. Get first segment
  1762.  
  1763. @return: address of the start of the first segment
  1764. BADADDR - no segments are defined
  1765.  
  1766. get_first_struc_idx()
  1767. Get index of first structure type
  1768.  
  1769. @return: BADADDR if no structure type is defined
  1770. index of first structure type.
  1771. Each structure type has an index and ID.
  1772. INDEX determines position of structure definition
  1773. in the list of structure definitions. Index 1
  1774. is listed first, after index 2 and so on.
  1775. The index of a structure type can be changed any
  1776. time, leading to movement of the structure definition
  1777. in the list of structure definitions.
  1778. ID uniquely denotes a structure type. A structure
  1779. gets a unique ID at the creation time and this ID
  1780. can't be changed. Even when the structure type gets
  1781. deleted, its ID won't be resued in the future.
  1782.  
  1783. get_fixup_target_dis(ea)
  1784. Get fixup target displacement
  1785.  
  1786. @param ea: address to get information about
  1787.  
  1788. @return: 0 - no fixup at the specified address
  1789. otherwise returns fixup target displacement
  1790.  
  1791. get_fixup_target_flags(ea)
  1792. Get fixup target flags
  1793.  
  1794. @param ea: address to get information about
  1795.  
  1796. @return: 0 - no fixup at the specified address
  1797. otherwise returns fixup target flags
  1798.  
  1799. get_fixup_target_off(ea)
  1800. Get fixup target offset
  1801.  
  1802. @param ea: address to get information about
  1803.  
  1804. @return: BADADDR - no fixup at the specified address
  1805. otherwise returns fixup target offset
  1806.  
  1807. get_fixup_target_sel(ea)
  1808. Get fixup target selector
  1809.  
  1810. @param ea: address to get information about
  1811.  
  1812. @return: BADSEL - no fixup at the specified address
  1813. otherwise returns fixup target selector
  1814.  
  1815. get_fixup_target_type(ea)
  1816. Get fixup target type
  1817.  
  1818. @param ea: address to get information about
  1819.  
  1820. @return: 0 - no fixup at the specified address
  1821. otherwise returns fixup type
  1822.  
  1823. get_forced_operand(ea, n)
  1824. Get manually entered operand string
  1825.  
  1826. @param ea: linear address
  1827. @param n: number of operand:
  1828. 0 - the first operand
  1829. 1 - the second operand
  1830.  
  1831. @return: string or None if it fails
  1832.  
  1833. get_frame_args_size(ea)
  1834. Get size of arguments in function frame which are purged upon return
  1835.  
  1836. @param ea: any address belonging to the function
  1837.  
  1838. @return: Size of function arguments in bytes.
  1839. If the function doesn't have a frame, return 0
  1840. If the function does't exist, return -1
  1841.  
  1842. get_frame_id(ea)
  1843. Get ID of function frame structure
  1844.  
  1845. @param ea: any address belonging to the function
  1846.  
  1847. @return: ID of function frame or None In order to access stack variables
  1848. you need to use structure member manipulaion functions with the
  1849. obtained ID.
  1850.  
  1851. get_frame_lvar_size(ea)
  1852. Get size of local variables in function frame
  1853.  
  1854. @param ea: any address belonging to the function
  1855.  
  1856. @return: Size of local variables in bytes.
  1857. If the function doesn't have a frame, return 0
  1858. If the function does't exist, return None
  1859.  
  1860. get_frame_regs_size(ea)
  1861. Get size of saved registers in function frame
  1862.  
  1863. @param ea: any address belonging to the function
  1864.  
  1865. @return: Size of saved registers in bytes.
  1866. If the function doesn't have a frame, return 0
  1867. This value is used as offset for BP (if FUNC_FRAME is set)
  1868. If the function does't exist, return None
  1869.  
  1870. get_frame_size(ea)
  1871. Get full size of function frame
  1872.  
  1873. @param ea: any address belonging to the function
  1874. @returns: Size of function frame in bytes.
  1875. This function takes into account size of local
  1876. variables + size of saved registers + size of
  1877. return address + size of function arguments
  1878. If the function doesn't have a frame, return size of
  1879. function return address in the stack.
  1880. If the function does't exist, return 0
  1881.  
  1882. get_full_flags(ea)
  1883. Get internal flags
  1884.  
  1885. @param ea: linear address
  1886.  
  1887. @return: 32-bit value of internal flags. See start of IDC.IDC file
  1888. for explanations.
  1889.  
  1890. get_func_attr(ea, attr)
  1891. Get a function attribute
  1892.  
  1893. @param ea: any address belonging to the function
  1894. @param attr: one of FUNCATTR_... constants
  1895.  
  1896. @return: BADADDR - error otherwise returns the attribute value
  1897.  
  1898. get_func_cmt(ea, repeatable)
  1899. Retrieve function comment
  1900.  
  1901. @param ea: any address belonging to the function
  1902. @param repeatable: 1: get repeatable comment
  1903. 0: get regular comment
  1904.  
  1905. @return: function comment string
  1906.  
  1907. get_func_flags(ea)
  1908. Retrieve function flags
  1909.  
  1910. @param ea: any address belonging to the function
  1911.  
  1912. @return: -1 - function doesn't exist otherwise returns the flags
  1913.  
  1914. get_func_name(ea)
  1915. Retrieve function name
  1916.  
  1917. @param ea: any address belonging to the function
  1918.  
  1919. @return: null string - function doesn't exist
  1920. otherwise returns function name
  1921.  
  1922. get_func_off_str(ea)
  1923. Convert address to 'funcname+offset' string
  1924.  
  1925. @param ea: address to convert
  1926.  
  1927. @return: if the address belongs to a function then return a string
  1928. formed as 'name+offset' where 'name' is a function name
  1929. 'offset' is offset within the function else return null string
  1930.  
  1931. get_hash_long(hash_id, key)
  1932. Gets the long value of a hash element.
  1933.  
  1934. @param hash_id: The hash ID.
  1935. @param key: Key of an element.
  1936.  
  1937. @return: the 32bit or 64bit value of the element, or 0 if no such
  1938. element.
  1939.  
  1940. get_hash_string(hash_id, key)
  1941. Gets the string value of a hash element.
  1942.  
  1943. @param hash_id: The hash ID.
  1944. @param key: Key of an element.
  1945.  
  1946. @return: the string value of the element, or None if no such
  1947. element.
  1948.  
  1949. get_idb_path()
  1950. Get IDB full path
  1951.  
  1952. This function returns full path of the current IDB database
  1953.  
  1954. get_inf_attr(offset)
  1955.  
  1956. get_input_file_path()
  1957. Get input file path
  1958.  
  1959. This function returns the full path of the file being disassembled
  1960.  
  1961. get_item_end(ea)
  1962. Get address of the end of the item (instruction or data)
  1963.  
  1964. @param ea: linear address
  1965.  
  1966. @return: address past end of the item at 'ea'
  1967.  
  1968. get_item_head(ea)
  1969. Get starting address of the item (instruction or data)
  1970.  
  1971. @param ea: linear address
  1972.  
  1973. @return: the starting address of the item
  1974. if the current address is unexplored, returns 'ea'
  1975.  
  1976. get_item_size(ea)
  1977. Get size of instruction or data item in bytes
  1978.  
  1979. @param ea: linear address
  1980.  
  1981. @return: 1..n
  1982.  
  1983. get_last_bmask(enum_id)
  1984. Get last bitmask in the enum (bitfield)
  1985.  
  1986. @param enum_id: id of enum
  1987.  
  1988. @return: the biggest bitmask or -1 no bitmasks are defined yet
  1989. All bitmasks are sorted by their values as unsigned longs.
  1990.  
  1991. get_last_enum_member(enum_id, bmask)
  1992. Get last constant in the enum
  1993.  
  1994. @param enum_id: id of enum
  1995. @param bmask: bitmask of the constant (ordinary enums accept only ida_enum.DEFMASK as a bitmask)
  1996.  
  1997. @return: value of constant or idaapi.BADNODE no constants are defined
  1998. All constants are sorted by their values
  1999. as unsigned longs.
  2000.  
  2001. get_last_hash_key(hash_id)
  2002. Get the last key in the hash.
  2003.  
  2004. @param hash_id: The hash ID.
  2005.  
  2006. @return: the key, 0 otherwise.
  2007.  
  2008. get_last_index(tag, array_id)
  2009. Get index of last existing array element.
  2010.  
  2011. @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR
  2012. @param array_id: The array ID.
  2013.  
  2014. @return: -1 if the array is empty, otherwise index of first array
  2015. element of given type.
  2016.  
  2017. get_last_member(sid)
  2018. Get offset of the last member of a structure
  2019.  
  2020. @param sid: structure type ID
  2021.  
  2022. @return: -1 if bad structure type ID is passed,
  2023. ida_idaapi.BADADDR if structure has no members,
  2024. otherwise returns offset of the last member.
  2025.  
  2026. @note: IDA allows 'holes' between members of a
  2027. structure. It treats these 'holes'
  2028. as unnamed arrays of bytes.
  2029.  
  2030. @note: Union members are, in IDA's internals, located
  2031. at subsequent byte offsets: member 0 -> offset 0x0,
  2032. member 1 -> offset 0x1, etc...
  2033.  
  2034. get_last_struc_idx()
  2035. Get index of last structure type
  2036.  
  2037. @return: BADADDR if no structure type is defined
  2038. index of last structure type.
  2039. See get_first_struc_idx() for the explanation of
  2040. structure indices and IDs.
  2041.  
  2042. get_local_tinfo(ordinal)
  2043. Get local type information as 'typeinfo' object
  2044.  
  2045. @param ordinal: slot number (1...NumberOfLocalTypes)
  2046. @return: None on failure, or (type, fields, name) tuple.
  2047.  
  2048. get_manual_insn(ea)
  2049. Get manual representation of instruction
  2050.  
  2051. @param ea: linear address
  2052.  
  2053. @note: This function returns value set by set_manual_insn earlier.
  2054.  
  2055. get_member_cmt(sid, member_offset, repeatable)
  2056. Get comment of a member
  2057.  
  2058. @param sid: structure type ID
  2059. @param member_offset: member offset. The offset can be
  2060. any offset in the member. For example,
  2061. is a member is 4 bytes long and starts
  2062. at offset 2, then 2,3,4,5 denote
  2063. the same structure member.
  2064. @param repeatable: 1: get repeatable comment
  2065. 0: get regular comment
  2066.  
  2067. @return: None if bad structure type ID is passed
  2068. or no such member in the structure
  2069. otherwise returns comment of the specified member.
  2070.  
  2071. get_member_flag(sid, member_offset)
  2072. Get type of a member
  2073.  
  2074. @param sid: structure type ID
  2075. @param member_offset: member offset. The offset can be
  2076. any offset in the member. For example,
  2077. is a member is 4 bytes long and starts
  2078. at offset 2, then 2,3,4,5 denote
  2079. the same structure member.
  2080.  
  2081. @return: -1 if bad structure type ID is passed
  2082. or no such member in the structure
  2083. otherwise returns type of the member, see bit
  2084. definitions above. If the member type is a structure
  2085. then function GetMemberStrid() should be used to
  2086. get the structure type id.
  2087.  
  2088. get_member_id(sid, member_offset)
  2089. @param sid: structure type ID
  2090. @param member_offset:. The offset can be
  2091. any offset in the member. For example,
  2092. is a member is 4 bytes long and starts
  2093. at offset 2, then 2,3,4,5 denote
  2094. the same structure member.
  2095.  
  2096. @return: -1 if bad structure type ID is passed or there is
  2097. no member at the specified offset.
  2098. otherwise returns the member id.
  2099.  
  2100. get_member_name(sid, member_offset)
  2101. Get name of a member of a structure
  2102.  
  2103. @param sid: structure type ID
  2104. @param member_offset: member offset. The offset can be
  2105. any offset in the member. For example,
  2106. is a member is 4 bytes long and starts
  2107. at offset 2, then 2,3,4,5 denote
  2108. the same structure member.
  2109.  
  2110. @return: None if bad structure type ID is passed
  2111. or no such member in the structure
  2112. otherwise returns name of the specified member.
  2113.  
  2114. get_member_offset(sid, member_name)
  2115. Get offset of a member of a structure by the member name
  2116.  
  2117. @param sid: structure type ID
  2118. @param member_name: name of structure member
  2119.  
  2120. @return: -1 if bad structure type ID is passed
  2121. or no such member in the structure
  2122. otherwise returns offset of the specified member.
  2123.  
  2124. @note: Union members are, in IDA's internals, located
  2125. at subsequent byte offsets: member 0 -> offset 0x0,
  2126. member 1 -> offset 0x1, etc...
  2127.  
  2128. get_member_qty(sid)
  2129. Get number of members of a structure
  2130.  
  2131. @param sid: structure type ID
  2132.  
  2133. @return: -1 if bad structure type ID is passed otherwise
  2134. returns number of members.
  2135.  
  2136. @note: Union members are, in IDA's internals, located
  2137. at subsequent byte offsets: member 0 -> offset 0x0,
  2138. member 1 -> offset 0x1, etc...
  2139.  
  2140. get_member_size(sid, member_offset)
  2141. Get size of a member
  2142.  
  2143. @param sid: structure type ID
  2144. @param member_offset: member offset. The offset can be
  2145. any offset in the member. For example,
  2146. is a member is 4 bytes long and starts
  2147. at offset 2, then 2,3,4,5 denote
  2148. the same structure member.
  2149.  
  2150. @return: None if bad structure type ID is passed,
  2151. or no such member in the structure
  2152. otherwise returns size of the specified
  2153. member in bytes.
  2154.  
  2155. get_member_strid(sid, member_offset)
  2156. Get structure id of a member
  2157.  
  2158. @param sid: structure type ID
  2159. @param member_offset: member offset. The offset can be
  2160. any offset in the member. For example,
  2161. is a member is 4 bytes long and starts
  2162. at offset 2, then 2,3,4,5 denote
  2163. the same structure member.
  2164. @return: -1 if bad structure type ID is passed
  2165. or no such member in the structure
  2166. otherwise returns structure id of the member.
  2167. If the current member is not a structure, returns -1.
  2168.  
  2169. get_min_spd_ea(func_ea)
  2170. Return the address with the minimal spd (stack pointer delta)
  2171. If there are no SP change points, then return BADADDR.
  2172.  
  2173. @param func_ea: function start
  2174. @return: BADDADDR - no such function
  2175.  
  2176. get_module_name(base)
  2177. Get process module name
  2178.  
  2179. @param base: the base address of the module
  2180.  
  2181. @return: required info or None
  2182.  
  2183. get_module_size(base)
  2184. Get process module size
  2185.  
  2186. @param base: the base address of the module
  2187.  
  2188. @return: required info or -1
  2189.  
  2190. get_name(ea, gtn_flags=0)
  2191. Get name at the specified address
  2192.  
  2193. @param ea: linear address
  2194. @param gtn_flags: how exactly the name should be retrieved.
  2195. combination of GN_ bits
  2196.  
  2197. @return: "" - byte has no name
  2198.  
  2199. get_name_ea(fromaddr, name)
  2200. Get linear address of a name
  2201.  
  2202. @param fromaddr: the referring address. Allows to retrieve local label
  2203. addresses in functions. If a local name is not found,
  2204. then address of a global name is returned.
  2205.  
  2206. @param name: name of program byte
  2207.  
  2208. @return: address of the name (BADADDR - no such name)
  2209.  
  2210. @note: Dummy names (like byte_xxxx where xxxx are hex digits) are parsed by this
  2211. function to obtain the address. The database is not consulted for them.
  2212.  
  2213. get_name_ea_simple(name)
  2214. Get linear address of a name
  2215.  
  2216. @param name: name of program byte
  2217.  
  2218. @return: address of the name
  2219. BADADDR - No such name
  2220.  
  2221. get_next_bmask(enum_id, value)
  2222. Get next bitmask in the enum (bitfield)
  2223.  
  2224. @param enum_id: id of enum
  2225. @param value: value of the current bitmask
  2226.  
  2227. @return: value of a bitmask with value higher than the specified
  2228. value. -1 if no such bitmasks exist.
  2229. All bitmasks are sorted by their values
  2230. as unsigned longs.
  2231.  
  2232. get_next_cref_from(From, current)
  2233. Get next code xref from
  2234.  
  2235. get_next_cref_to(To, current)
  2236. Get next code xref to 'To'
  2237.  
  2238. get_next_dref_from(From, current)
  2239. Get next data xref from 'From'
  2240.  
  2241. get_next_dref_to(To, current)
  2242. Get next data xref to 'To'
  2243.  
  2244. get_next_enum_member(enum_id, value, bmask)
  2245. Get next constant in the enum
  2246.  
  2247. @param enum_id: id of enum
  2248. @param bmask: bitmask of the constant ordinary enums accept only ida_enum.DEFMASK as a bitmask
  2249. @param value: value of the current constant
  2250.  
  2251. @return: value of a constant with value higher than the specified
  2252. value. idaapi.BADNODE no such constants exist.
  2253. All constants are sorted by their values as unsigned longs.
  2254.  
  2255. get_next_fchunk(ea)
  2256. Get next function chunk
  2257.  
  2258. @param ea: any address
  2259.  
  2260. @return: the starting address of the next function chunk or BADADDR
  2261.  
  2262. @note: This function enumerates all chunks of all functions in the database
  2263.  
  2264. get_next_fcref_from(From, current)
  2265. Get next xref from
  2266.  
  2267. get_next_fcref_to(To, current)
  2268. Get next xref to 'To'
  2269.  
  2270. get_next_fixup_ea(ea)
  2271. Find next address with fixup information
  2272.  
  2273. @param ea: current address
  2274.  
  2275. @return: BADADDR - no more fixups otherwise returns the next
  2276. address with fixup information
  2277.  
  2278. get_next_func(ea)
  2279. Find next function
  2280.  
  2281. @param ea: any address belonging to the function
  2282.  
  2283. @return: BADADDR - no more functions
  2284. otherwise returns the next function start address
  2285.  
  2286. get_next_hash_key(hash_id, key)
  2287. Get the next key in the hash.
  2288.  
  2289. @param hash_id: The hash ID.
  2290. @param key: The current key.
  2291.  
  2292. @return: the next key, 0 otherwise
  2293.  
  2294. get_next_index(tag, array_id, idx)
  2295. Get index of the next existing array element.
  2296.  
  2297. @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR
  2298. @param array_id: The array ID.
  2299. @param idx: Index of the current element.
  2300.  
  2301. @return: -1 if no more elements, otherwise returns index of the
  2302. next array element of given type.
  2303.  
  2304. get_next_module(base)
  2305. Enumerate process modules
  2306.  
  2307. @param base: previous module's base address
  2308.  
  2309. @return: next module's base address or None on failure
  2310.  
  2311. get_next_offset(sid, offset)
  2312. Get next offset in a structure
  2313.  
  2314. @param sid: structure type ID
  2315. @param offset: current offset
  2316.  
  2317. @return: -1 if bad structure type ID is passed,
  2318. ida_idaapi.BADADDR if no (more) offsets in the structure,
  2319. otherwise returns next offset in a structure.
  2320.  
  2321. @note: IDA allows 'holes' between members of a
  2322. structure. It treats these 'holes'
  2323. as unnamed arrays of bytes.
  2324. This function returns a member offset or a hole offset.
  2325. It will return size of the structure if input
  2326. 'offset' belongs to the last member of the structure.
  2327.  
  2328. @note: Union members are, in IDA's internals, located
  2329. at subsequent byte offsets: member 0 -> offset 0x0,
  2330. member 1 -> offset 0x1, etc...
  2331.  
  2332. get_next_seg(ea)
  2333. Get next segment
  2334.  
  2335. @param ea: linear address
  2336.  
  2337. @return: start of the next segment
  2338. BADADDR - no next segment
  2339.  
  2340. get_next_struc_idx(index)
  2341. Get index of next structure type
  2342.  
  2343. @param index: current structure index
  2344.  
  2345. @return: BADADDR if no (more) structure type is defined
  2346. index of the next structure type.
  2347. See get_first_struc_idx() for the explanation of
  2348. structure indices and IDs.
  2349.  
  2350. get_numbered_type_name(ordinal)
  2351. Retrieve a local type name
  2352.  
  2353. @param ordinal: slot number (1...NumberOfLocalTypes)
  2354.  
  2355. returns: local type name or None
  2356.  
  2357. get_operand_type(ea, n)
  2358. Get type of instruction operand
  2359.  
  2360. @param ea: linear address of instruction
  2361. @param n: number of operand:
  2362. 0 - the first operand
  2363. 1 - the second operand
  2364.  
  2365. @return: any of o_* constants or -1 on error
  2366.  
  2367. get_operand_value(ea, n)
  2368. Get number used in the operand
  2369.  
  2370. This function returns an immediate number used in the operand
  2371.  
  2372. @param ea: linear address of instruction
  2373. @param n: the operand number
  2374.  
  2375. @return: value
  2376. operand is an immediate value => immediate value
  2377. operand has a displacement => displacement
  2378. operand is a direct memory ref => memory address
  2379. operand is a register => register number
  2380. operand is a register phrase => phrase number
  2381. otherwise => -1
  2382.  
  2383. get_ordinal_qty()
  2384. Get number of local types + 1
  2385.  
  2386. @return: value >= 1. 1 means that there are no local types.
  2387.  
  2388. get_original_byte(ea)
  2389. Get original value of program byte
  2390.  
  2391. @param ea: linear address
  2392.  
  2393. @return: the original value of byte before any patch applied to it
  2394.  
  2395. get_prev_bmask(enum_id, value)
  2396. Get prev bitmask in the enum (bitfield)
  2397.  
  2398. @param enum_id: id of enum
  2399. @param value: value of the current bitmask
  2400.  
  2401. @return: value of a bitmask with value lower than the specified
  2402. value. -1 no such bitmasks exist.
  2403. All bitmasks are sorted by their values as unsigned longs.
  2404.  
  2405. get_prev_enum_member(enum_id, value, bmask)
  2406. Get prev constant in the enum
  2407.  
  2408. @param enum_id: id of enum
  2409. @param bmask : bitmask of the constant
  2410. ordinary enums accept only ida_enum.DEFMASK as a bitmask
  2411. @param value: value of the current constant
  2412.  
  2413. @return: value of a constant with value lower than the specified
  2414. value. idaapi.BADNODE no such constants exist.
  2415. All constants are sorted by their values as unsigned longs.
  2416.  
  2417. get_prev_fchunk(ea)
  2418. Get previous function chunk
  2419.  
  2420. @param ea: any address
  2421.  
  2422. @return: the starting address of the function chunk or BADADDR
  2423.  
  2424. @note: This function enumerates all chunks of all functions in the database
  2425.  
  2426. get_prev_fixup_ea(ea)
  2427. Find previous address with fixup information
  2428.  
  2429. @param ea: current address
  2430.  
  2431. @return: BADADDR - no more fixups otherwise returns the
  2432. previous address with fixup information
  2433.  
  2434. get_prev_func(ea)
  2435. Find previous function
  2436.  
  2437. @param ea: any address belonging to the function
  2438.  
  2439. @return: BADADDR - no more functions
  2440. otherwise returns the previous function start address
  2441.  
  2442. get_prev_hash_key(hash_id, key)
  2443. Get the previous key in the hash.
  2444.  
  2445. @param hash_id: The hash ID.
  2446. @param key: The current key.
  2447.  
  2448. @return: the previous key, 0 otherwise
  2449.  
  2450. get_prev_index(tag, array_id, idx)
  2451. Get index of the previous existing array element.
  2452.  
  2453. @param tag: Tag of array, specifies one of two array types: AR_LONG, AR_STR
  2454. @param array_id: The array ID.
  2455. @param idx: Index of the current element.
  2456.  
  2457. @return: -1 if no more elements, otherwise returns index of the
  2458. previous array element of given type.
  2459.  
  2460. get_prev_offset(sid, offset)
  2461. Get previous offset in a structure
  2462.  
  2463. @param sid: structure type ID
  2464. @param offset: current offset
  2465.  
  2466. @return: -1 if bad structure type ID is passed,
  2467. ida_idaapi.BADADDR if no (more) offsets in the structure,
  2468. otherwise returns previous offset in a structure.
  2469.  
  2470. @note: IDA allows 'holes' between members of a
  2471. structure. It treats these 'holes'
  2472. as unnamed arrays of bytes.
  2473. This function returns a member offset or a hole offset.
  2474. It will return size of the structure if input
  2475. 'offset' is bigger than the structure size.
  2476.  
  2477. @note: Union members are, in IDA's internals, located
  2478. at subsequent byte offsets: member 0 -> offset 0x0,
  2479. member 1 -> offset 0x1, etc...
  2480.  
  2481. get_prev_struc_idx(index)
  2482. Get index of previous structure type
  2483.  
  2484. @param index: current structure index
  2485.  
  2486. @return: BADADDR if no (more) structure type is defined
  2487. index of the presiouvs structure type.
  2488. See get_first_struc_idx() for the explanation of
  2489. structure indices and IDs.
  2490.  
  2491. get_process_state()
  2492. Get debugged process state
  2493.  
  2494. @return: one of the DBG_... constants (see below)
  2495.  
  2496. get_processes()
  2497. Take a snapshot of running processes and return their description.
  2498.  
  2499. @return: -1:network error, 0-failed, 1-ok
  2500.  
  2501. get_qword(ea)
  2502. Get value of program quadro word (8 bytes)
  2503.  
  2504. @param ea: linear address
  2505.  
  2506. @return: the value of the quadro word. If failed, returns -1
  2507.  
  2508. get_reg_value(name)
  2509. Get register value
  2510.  
  2511. @param name: the register name
  2512.  
  2513. @note: The debugger should be running. otherwise the function fails
  2514. the register name should be valid.
  2515. It is not necessary to use this function to get register values
  2516. because a register name in the script will do too.
  2517.  
  2518. @return: register value (integer or floating point)
  2519.  
  2520. get_ret_tev_return(tev)
  2521. Return the return address for the specified event
  2522. @param tev: event number
  2523.  
  2524. get_root_filename()
  2525. Get input file name
  2526.  
  2527. This function returns name of the file being disassembled
  2528.  
  2529. get_screen_ea()
  2530. Get linear address of cursor
  2531.  
  2532. get_segm_attr(segea, attr)
  2533. Get segment attribute
  2534.  
  2535. @param segea: any address within segment
  2536. @param attr: one of SEGATTR_... constants
  2537.  
  2538. get_segm_by_sel(base)
  2539. Get segment by segment base
  2540.  
  2541. @param base: segment base paragraph or selector
  2542.  
  2543. @return: linear address of the start of the segment or BADADDR
  2544. if no such segment
  2545.  
  2546. get_segm_end(ea)
  2547. Get end address of a segment
  2548.  
  2549. @param ea: any address in the segment
  2550.  
  2551. @return: end of segment (an address past end of the segment)
  2552. BADADDR - the specified address doesn't belong to any segment
  2553.  
  2554. get_segm_name(ea)
  2555. Get name of a segment
  2556.  
  2557. @param ea: any address in the segment
  2558.  
  2559. @return: "" - no segment at the specified address
  2560.  
  2561. get_segm_start(ea)
  2562. Get start address of a segment
  2563.  
  2564. @param ea: any address in the segment
  2565.  
  2566. @return: start of segment
  2567. BADADDR - the specified address doesn't belong to any segment
  2568.  
  2569. get_source_linnum(ea)
  2570. Get source line number
  2571.  
  2572. @param ea: linear address
  2573.  
  2574. @return: number of line in the source file or -1
  2575.  
  2576. get_sourcefile(ea)
  2577. Get name of source file occupying the given address
  2578.  
  2579. @param ea: linear address
  2580.  
  2581. @return: NULL - source file information is not found
  2582. otherwise returns pointer to file name
  2583.  
  2584. get_sp_delta(ea)
  2585. Get modification of SP made by the instruction
  2586.  
  2587. @param ea: end address of the instruction
  2588. i.e.the last address of the instruction+1
  2589.  
  2590. @return: Get modification of SP made at the specified location
  2591. If the specified location doesn't contain a SP change point, return 0
  2592. Otherwise return delta of SP modification
  2593.  
  2594. get_spd(ea)
  2595. Get current delta for the stack pointer
  2596.  
  2597. @param ea: end address of the instruction
  2598. i.e.the last address of the instruction+1
  2599.  
  2600. @return: The difference between the original SP upon
  2601. entering the function and SP for the specified address
  2602.  
  2603. get_sreg(ea, reg)
  2604. Get value of segment register at the specified address
  2605.  
  2606. @param ea: linear address
  2607. @param reg: name of segment register
  2608.  
  2609. @return: the value of the segment register or -1 on error
  2610.  
  2611. @note: The segment registers in 32bit program usually contain selectors,
  2612. so to get paragraph pointed to by the segment register you need to
  2613. call sel2para() function.
  2614.  
  2615. get_step_trace_options()
  2616. Get step current tracing options
  2617.  
  2618. @return: a combination of ST_... constants
  2619.  
  2620. get_str_type(ea)
  2621. Get string type
  2622.  
  2623. @param ea: linear address
  2624.  
  2625. @return: One of STRTYPE_... constants
  2626.  
  2627. get_strlit_contents(ea, length=-1, strtype=0)
  2628. Get string contents
  2629. @param ea: linear address
  2630. @param length: string length. -1 means to calculate the max string length
  2631. @param strtype: the string type (one of STRTYPE_... constants)
  2632.  
  2633. @return: string contents or empty string
  2634.  
  2635. get_struc_by_idx(index)
  2636. Get structure ID by structure index
  2637.  
  2638. @param index: structure index
  2639.  
  2640. @return: BADADDR if bad structure index is passed otherwise returns structure ID.
  2641.  
  2642. @note: See get_first_struc_idx() for the explanation of structure indices and IDs.
  2643.  
  2644. get_struc_cmt(sid, repeatable)
  2645. Get structure type comment
  2646.  
  2647. @param sid: structure type ID
  2648. @param repeatable: 1: get repeatable comment
  2649. 0: get regular comment
  2650.  
  2651. @return: None if bad structure type ID is passed
  2652. otherwise returns comment.
  2653.  
  2654. get_struc_id(name)
  2655. Get structure ID by structure name
  2656.  
  2657. @param name: structure type name
  2658.  
  2659. @return: BADADDR if bad structure type name is passed
  2660. otherwise returns structure ID.
  2661.  
  2662. get_struc_idx(sid)
  2663. Get structure index by structure ID
  2664.  
  2665. @param sid: structure ID
  2666.  
  2667. @return: BADADDR if bad structure ID is passed
  2668. otherwise returns structure index.
  2669. See get_first_struc_idx() for the explanation of
  2670. structure indices and IDs.
  2671.  
  2672. get_struc_name(sid)
  2673. Get structure type name
  2674.  
  2675. @param sid: structure type ID
  2676.  
  2677. @return: None if bad structure type ID is passed
  2678. otherwise returns structure type name.
  2679.  
  2680. get_struc_qty()
  2681. Get number of defined structure types
  2682.  
  2683. @return: number of structure types
  2684.  
  2685. get_struc_size(sid)
  2686. Get size of a structure
  2687.  
  2688. @param sid: structure type ID
  2689.  
  2690. @return: 0 if bad structure type ID is passed
  2691. otherwise returns size of structure in bytes.
  2692.  
  2693. get_tev_ea(tev)
  2694. Return the address of the specified event
  2695. @param tev: event number
  2696.  
  2697. get_tev_mem(tev, idx)
  2698. Return the blob of memory pointed to by 'index', for the specified event
  2699.  
  2700. Note: this requires that the tracing options have been set to record pieces of memory for instruction events
  2701.  
  2702. @param tev: event number
  2703. @param idx: memory address index
  2704.  
  2705. get_tev_mem_ea(tev, idx)
  2706. Return the address of the blob of memory pointed to by 'index' for the specified event
  2707.  
  2708. Note: this requires that the tracing options have been set to record pieces of memory for instruction events
  2709.  
  2710. @param tev: event number
  2711. @param idx: memory address index
  2712.  
  2713. get_tev_mem_qty(tev)
  2714. Return the number of blobs of memory recorded, for the specified event
  2715.  
  2716. Note: this requires that the tracing options have been set to record pieces of memory for instruction events
  2717.  
  2718. @param tev: event number
  2719.  
  2720. get_tev_qty()
  2721. Return the total number of recorded events
  2722.  
  2723. get_tev_reg(tev, reg)
  2724. Return the register value for the specified event
  2725. @param tev: event number
  2726. @param reg: register name (like EAX, RBX, ...)
  2727.  
  2728. get_tev_tid(tev)
  2729. Return the thread id of the specified event
  2730. @param tev: event number
  2731.  
  2732. get_tev_type(tev)
  2733. Return the type of the specified event (TEV_... constants)
  2734. @param tev: event number
  2735.  
  2736. get_thread_qty()
  2737. Get number of threads.
  2738.  
  2739. @return: number of threads
  2740.  
  2741. get_tinfo(ea)
  2742. Get type information of function/variable as 'typeinfo' object
  2743.  
  2744. @param ea: the address of the object
  2745. @return: None on failure, or (type, fields) tuple.
  2746.  
  2747. get_trace_file_desc(filename)
  2748. Get the trace description of the given binary trace file
  2749. @param filename: trace file
  2750.  
  2751. get_type(ea)
  2752. Get type of function/variable
  2753.  
  2754. @param ea: the address of the object
  2755.  
  2756. @return: type string or None if failed
  2757.  
  2758. get_wide_byte(ea)
  2759. Get value of program byte
  2760.  
  2761. @param ea: linear address
  2762.  
  2763. @return: value of byte. If byte has no value then returns 0xFF
  2764. If the current byte size is different from 8 bits, then the returned value
  2765. might have more 1's.
  2766. To check if a byte has a value, use is_loaded()
  2767.  
  2768. get_wide_dword(ea)
  2769. Get value of program double word (4 bytes)
  2770.  
  2771. @param ea: linear address
  2772.  
  2773. @return: the value of the double word. If failed returns -1
  2774.  
  2775. get_wide_word(ea)
  2776. Get value of program word (2 bytes)
  2777.  
  2778. @param ea: linear address
  2779.  
  2780. @return: the value of the word. If word has no value then returns 0xFFFF
  2781. If the current byte size is different from 8 bits, then the returned value
  2782. might have more 1's.
  2783.  
  2784. get_xref_type()
  2785. Return type of the last xref obtained by
  2786. [RD]first/next[B0] functions.
  2787.  
  2788. @return: constants fl_* or dr_*
  2789.  
  2790. getn_enum(idx)
  2791. Get ID of the specified enum by its serial number
  2792.  
  2793. @param idx: number of enum (0..get_enum_qty()-1)
  2794.  
  2795. @return: ID of enum or -1 if error
  2796.  
  2797. getn_thread(idx)
  2798. Get the ID of a thread
  2799.  
  2800. @param idx: number of thread, is in range 0..get_thread_qty()-1
  2801.  
  2802. @return: -1 if failure
  2803.  
  2804. guess_type(ea)
  2805. Guess type of function/variable
  2806.  
  2807. @param ea: the address of the object, can be the structure member id too
  2808.  
  2809. @return: type string or None if failed
  2810.  
  2811. hasName(F)
  2812.  
  2813. hasUserName(F)
  2814.  
  2815. has_value(F)
  2816.  
  2817. here()
  2818. # Convenience functions:
  2819.  
  2820. idadir()
  2821. Get IDA directory
  2822.  
  2823. This function returns the directory where IDA.EXE resides
  2824.  
  2825. import_type(idx, type_name)
  2826. Copy information from type library to database
  2827. Copy structure, union, or enum definition from the type library
  2828. to the IDA database.
  2829.  
  2830. @param idx: the position of the new type in the list of
  2831. types (structures or enums) -1 means at the end of the list
  2832. @param type_name: name of type to copy
  2833.  
  2834. @return: BADNODE-failed, otherwise the type id (structure id or enum id)
  2835.  
  2836. isBin0(F)
  2837.  
  2838. isBin1(F)
  2839.  
  2840. isDec0(F)
  2841.  
  2842. isDec1(F)
  2843.  
  2844. isExtra(F)
  2845.  
  2846. isHex0(F)
  2847.  
  2848. isHex1(F)
  2849.  
  2850. isOct0(F)
  2851.  
  2852. isOct1(F)
  2853.  
  2854. isRef(F)
  2855.  
  2856. is_align(F)
  2857.  
  2858. is_bf(enum_id)
  2859. Is enum a bitfield?
  2860.  
  2861. @param enum_id: id of enum
  2862.  
  2863. @return: 1-yes, 0-no, ordinary enum
  2864.  
  2865. is_byte(F)
  2866.  
  2867. is_char0(F)
  2868.  
  2869. is_char1(F)
  2870.  
  2871. is_code(F)
  2872.  
  2873. is_data(F)
  2874.  
  2875. is_defarg0(F)
  2876.  
  2877. is_defarg1(F)
  2878.  
  2879. is_double(F)
  2880.  
  2881. is_dword(F)
  2882.  
  2883. is_enum0(F)
  2884.  
  2885. is_enum1(F)
  2886.  
  2887. is_event_handled()
  2888. Is the debug event handled?
  2889.  
  2890. @return: boolean
  2891.  
  2892. is_float(F)
  2893.  
  2894. is_flow(F)
  2895.  
  2896. is_head(F)
  2897.  
  2898. is_loaded(ea)
  2899. Is the byte initialized?
  2900.  
  2901. is_manual0(F)
  2902.  
  2903. is_manual1(F)
  2904.  
  2905. is_mapped(ea)
  2906.  
  2907. is_off0(F)
  2908.  
  2909. is_off1(F)
  2910.  
  2911. is_oword(F)
  2912.  
  2913. is_pack_real(F)
  2914.  
  2915. is_qword(F)
  2916.  
  2917. is_seg0(F)
  2918.  
  2919. is_seg1(F)
  2920.  
  2921. is_stkvar0(F)
  2922.  
  2923. is_stkvar1(F)
  2924.  
  2925. is_strlit(F)
  2926.  
  2927. is_stroff0(F)
  2928.  
  2929. is_stroff1(F)
  2930.  
  2931. is_struct(F)
  2932.  
  2933. is_tail(F)
  2934.  
  2935. is_tbyte(F)
  2936.  
  2937. is_union(sid)
  2938. Is a structure a union?
  2939.  
  2940. @param sid: structure type ID
  2941.  
  2942. @return: 1: yes, this is a union id
  2943. 0: no
  2944.  
  2945. @note: Unions are a special kind of structures
  2946.  
  2947. is_unknown(F)
  2948.  
  2949. is_valid_trace_file(filename)
  2950. Check the given binary trace file
  2951. @param filename: trace file
  2952.  
  2953. is_word(F)
  2954.  
  2955. jumpto(ea)
  2956. Move cursor to the specifed linear address
  2957.  
  2958. @param ea: linear address
  2959.  
  2960. load_and_run_plugin(name, arg)
  2961. Load and run a plugin
  2962.  
  2963. @param name: The plugin name is a short plugin name without an extension
  2964. @param arg: integer argument
  2965.  
  2966. @return: 0 if could not load the plugin, 1 if ok
  2967.  
  2968. load_debugger(dbgname, use_remote)
  2969. Load the debugger
  2970.  
  2971. @param dbgname: debugger module name Examples: win32, linux, mac.
  2972. @param use_remote: 0/1: use remote debugger or not
  2973.  
  2974. @note: This function is needed only when running idc scripts from the command line.
  2975. In other cases IDA loads the debugger module automatically.
  2976.  
  2977. load_trace_file(filename)
  2978. Load a previously recorded binary trace file
  2979. @param filename: trace file
  2980.  
  2981. loadfile(filepath, pos, ea, size)
  2982.  
  2983. ltoa(n, radix)
  2984.  
  2985. make_array(ea, nitems)
  2986. Create an array.
  2987.  
  2988. @param ea: linear address
  2989. @param nitems: size of array in items
  2990.  
  2991. @note: This function will create an array of the items with the same type as
  2992. the type of the item at 'ea'. If the byte at 'ea' is undefined, then
  2993. this function will create an array of bytes.
  2994.  
  2995. move_segm(ea, to, flags)
  2996. Move a segment to a new address
  2997. This function moves all information to the new address
  2998. It fixes up address sensitive information in the kernel
  2999. The total effect is equal to reloading the segment to the target address
  3000.  
  3001. @param ea: any address within the segment to move
  3002. @param to: new segment start address
  3003. @param flags: combination MFS_... constants
  3004.  
  3005. @returns: MOVE_SEGM_... error code
  3006.  
  3007. msg(message)
  3008. Display an UTF-8 string in the message window
  3009.  
  3010. The result of the stringification of the arguments
  3011. will be treated as an UTF-8 string.
  3012.  
  3013. @param message: message to print (formatting is done in Python)
  3014.  
  3015. This function can be used to debug IDC scripts
  3016.  
  3017. next_addr(ea)
  3018. Get next address in the program
  3019.  
  3020. @param ea: linear address
  3021.  
  3022. @return: BADADDR - the specified address in the last used address
  3023.  
  3024. next_func_chunk(funcea, tailea)
  3025. Get the next function chunk of the specified function
  3026.  
  3027. @param funcea: any address in the function
  3028. @param tailea: any address in the current chunk
  3029.  
  3030. @return: the starting address of the next function chunk or BADADDR
  3031.  
  3032. @note: This function returns the next chunk of the specified function
  3033.  
  3034. next_head(ea, maxea=18446744073709551615L)
  3035. Get next defined item (instruction or data) in the program
  3036.  
  3037. @param ea: linear address to start search from
  3038. @param maxea: the search will stop at the address
  3039. maxea is not included in the search range
  3040.  
  3041. @return: BADADDR - no (more) defined items
  3042.  
  3043. next_not_tail(ea)
  3044. Get next not-tail address in the program
  3045. This function searches for the next displayable address in the program.
  3046. The tail bytes of instructions and data are not displayable.
  3047.  
  3048. @param ea: linear address
  3049.  
  3050. @return: BADADDR - no (more) not-tail addresses
  3051.  
  3052. op_bin(ea, n)
  3053. Convert an operand of the item (instruction or data) to a binary number
  3054.  
  3055. @param ea: linear address
  3056. @param n: number of operand
  3057. - 0 - the first operand
  3058. - 1 - the second, third and all other operands
  3059. - -1 - all operands
  3060.  
  3061. @return: 1-ok, 0-failure
  3062.  
  3063. @note: the data items use only the type of the first operand
  3064.  
  3065. op_chr(ea, n)
  3066. @param ea: linear address
  3067. @param n: number of operand
  3068. - 0 - the first operand
  3069. - 1 - the second, third and all other operands
  3070. - -1 - all operands
  3071.  
  3072. op_dec(ea, n)
  3073. Convert an operand of the item (instruction or data) to a decimal number
  3074.  
  3075. @param ea: linear address
  3076. @param n: number of operand
  3077. - 0 - the first operand
  3078. - 1 - the second, third and all other operands
  3079. - -1 - all operands
  3080.  
  3081. op_enum(ea, n, enumid, serial)
  3082. Convert operand to a symbolic constant
  3083.  
  3084. @param ea: linear address
  3085. @param n: number of operand
  3086. - 0 - the first operand
  3087. - 1 - the second, third and all other operands
  3088. - -1 - all operands
  3089. @param enumid: id of enumeration type
  3090. @param serial: serial number of the constant in the enumeration
  3091. The serial numbers are used if there are more than
  3092. one symbolic constant with the same value in the
  3093. enumeration. In this case the first defined constant
  3094. get the serial number 0, then second 1, etc.
  3095. There could be 256 symbolic constants with the same
  3096. value in the enumeration.
  3097.  
  3098. op_flt(ea, n)
  3099. Convert operand to a floating-point number
  3100.  
  3101. @param ea: linear address
  3102. @param n: number of operand
  3103. - 0 - the first operand
  3104. - 1 - the second, third and all other operands
  3105. - -1 - all operands
  3106.  
  3107. @return: 1-ok, 0-failure
  3108.  
  3109. op_hex(ea, n)
  3110. Convert an operand of the item (instruction or data) to a hexadecimal number
  3111.  
  3112. @param ea: linear address
  3113. @param n: number of operand
  3114. - 0 - the first operand
  3115. - 1 - the second, third and all other operands
  3116. - -1 - all operands
  3117.  
  3118. op_man(ea, n, opstr)
  3119. Specify operand represenation manually.
  3120.  
  3121. @param ea: linear address
  3122. @param n: number of operand
  3123. - 0 - the first operand
  3124. - 1 - the second, third and all other operands
  3125. - -1 - all operands
  3126. @param opstr: a string represenation of the operand
  3127.  
  3128. @note: IDA will not check the specified operand, it will simply display
  3129. it instead of the orginal representation of the operand.
  3130.  
  3131. op_num(ea, n)
  3132. Convert operand to a number (with default number base, radix)
  3133.  
  3134. @param ea: linear address
  3135. @param n: number of operand
  3136. - 0 - the first operand
  3137. - 1 - the second, third and all other operands
  3138. - -1 - all operands
  3139.  
  3140. op_oct(ea, n)
  3141. Convert an operand of the item (instruction or data) to an octal number
  3142.  
  3143. @param ea: linear address
  3144. @param n: number of operand
  3145. - 0 - the first operand
  3146. - 1 - the second, third and all other operands
  3147. - -1 - all operands
  3148.  
  3149. op_offset(ea, n, reftype, target, base, tdelta)
  3150. Convert operand to a complex offset expression
  3151. This is a more powerful version of op_plain_offset() function.
  3152. It allows to explicitly specify the reference type (off8,off16, etc)
  3153. and the expression target with a possible target delta.
  3154. The complex expressions are represented by IDA in the following form:
  3155.  
  3156. target + tdelta - base
  3157.  
  3158. If the target is not present, then it will be calculated using
  3159.  
  3160. target = operand_value - tdelta + base
  3161.  
  3162. The target must be present for LOW.. and HIGH.. reference types
  3163.  
  3164. @param ea: linear address of the instruction/data
  3165. @param n: number of operand to convert (the same as in op_plain_offset)
  3166. @param reftype: one of REF_... constants
  3167. @param target: an explicitly specified expression target. if you don't
  3168. want to specify it, use -1. Please note that LOW... and
  3169. HIGH... reference type requre the target.
  3170. @param base: the offset base (a linear address)
  3171. @param tdelta: a displacement from the target which will be displayed
  3172. in the expression.
  3173.  
  3174. @return: success (boolean)
  3175.  
  3176. op_offset_high16(ea, n, target)
  3177. Convert operand to a high offset
  3178. High offset is the upper 16bits of an offset.
  3179. This type is used by TMS320C6 processors (and probably by other
  3180. RISC processors too)
  3181.  
  3182. @param ea: linear address
  3183. @param n: number of operand
  3184. - 0 - the first operand
  3185. - 1 - the second, third and all other operands
  3186. - -1 - all operands
  3187. @param target: the full value (all 32bits) of the offset
  3188.  
  3189. op_plain_offset(ea, n, base)
  3190. Convert operand to an offset
  3191. (for the explanations of 'ea' and 'n' please see op_bin())
  3192.  
  3193. Example:
  3194. ========
  3195.  
  3196. seg000:2000 dw 1234h
  3197.  
  3198. and there is a segment at paragraph 0x1000 and there is a data item
  3199. within the segment at 0x1234:
  3200.  
  3201. seg000:1234 MyString db 'Hello, world!',0
  3202.  
  3203. Then you need to specify a linear address of the segment base to
  3204. create a proper offset:
  3205.  
  3206. op_plain_offset(["seg000",0x2000],0,0x10000);
  3207.  
  3208. and you will have:
  3209.  
  3210. seg000:2000 dw offset MyString
  3211.  
  3212. Motorola 680x0 processor have a concept of "outer offsets".
  3213. If you want to create an outer offset, you need to combine number
  3214. of the operand with the following bit:
  3215.  
  3216. Please note that the outer offsets are meaningful only for
  3217. Motorola 680x0.
  3218.  
  3219. @param ea: linear address
  3220. @param n: number of operand
  3221. - 0 - the first operand
  3222. - 1 - the second, third and all other operands
  3223. - -1 - all operands
  3224. @param base: base of the offset as a linear address
  3225. If base == BADADDR then the current operand becomes non-offset
  3226.  
  3227. op_seg(ea, n)
  3228. Convert operand to a segment expression
  3229.  
  3230. @param ea: linear address
  3231. @param n: number of operand
  3232. - 0 - the first operand
  3233. - 1 - the second, third and all other operands
  3234. - -1 - all operands
  3235.  
  3236. op_stkvar(ea, n)
  3237. Convert operand to a stack variable
  3238.  
  3239. @param ea: linear address
  3240. @param n: number of operand
  3241. - 0 - the first operand
  3242. - 1 - the second, third and all other operands
  3243. - -1 - all operands
  3244.  
  3245. op_stroff(ea, n, strid, delta)
  3246. Convert operand to an offset in a structure
  3247.  
  3248. @param ea: linear address
  3249. @param n: number of operand
  3250. - 0 - the first operand
  3251. - 1 - the second, third and all other operands
  3252. - -1 - all operands
  3253. @param strid: id of a structure type
  3254. @param delta: struct offset delta. usually 0. denotes the difference
  3255. between the structure base and the pointer into the structure.
  3256.  
  3257. parse_decl(inputtype, flags)
  3258. Parse type declaration
  3259.  
  3260. @param inputtype: file name or C declarations (depending on the flags)
  3261. @param flags: combination of PT_... constants or 0
  3262.  
  3263. @return: None on failure or (name, type, fields) tuple
  3264.  
  3265. parse_decls(inputtype, flags=0)
  3266. Parse type declarations
  3267.  
  3268. @param inputtype: file name or C declarations (depending on the flags)
  3269. @param flags: combination of PT_... constants or 0
  3270.  
  3271. @return: number of parsing errors (0 no errors)
  3272.  
  3273. patch_byte(ea, value)
  3274. Change value of a program byte
  3275. If debugger was active then the debugged process memory will be patched too
  3276.  
  3277. @param ea: linear address
  3278. @param value: new value of the byte
  3279.  
  3280. @return: 1 if the database has been modified,
  3281. 0 if either the debugger is running and the process' memory
  3282. has value 'value' at address 'ea',
  3283. or the debugger is not running, and the IDB
  3284. has value 'value' at address 'ea already.
  3285.  
  3286. patch_dbg_byte(ea, value)
  3287. Change a byte in the debugged process memory only
  3288.  
  3289. @param ea: address
  3290. @param value: new value of the byte
  3291.  
  3292. @return: 1 if successful, 0 if not
  3293.  
  3294. patch_dword(ea, value)
  3295. Change value of a double word
  3296.  
  3297. @param ea: linear address
  3298. @param value: new value of the double word
  3299.  
  3300. @return: 1 if the database has been modified,
  3301. 0 if either the debugger is running and the process' memory
  3302. has value 'value' at address 'ea',
  3303. or the debugger is not running, and the IDB
  3304. has value 'value' at address 'ea already.
  3305.  
  3306. patch_qword(ea, value)
  3307. Change value of a quad word
  3308.  
  3309. @param ea: linear address
  3310. @param value: new value of the quad word
  3311.  
  3312. @return: 1 if the database has been modified,
  3313. 0 if either the debugger is running and the process' memory
  3314. has value 'value' at address 'ea',
  3315. or the debugger is not running, and the IDB
  3316. has value 'value' at address 'ea already.
  3317.  
  3318. patch_word(ea, value)
  3319. Change value of a program word (2 bytes)
  3320.  
  3321. @param ea: linear address
  3322. @param value: new value of the word
  3323.  
  3324. @return: 1 if the database has been modified,
  3325. 0 if either the debugger is running and the process' memory
  3326. has value 'value' at address 'ea',
  3327. or the debugger is not running, and the IDB
  3328. has value 'value' at address 'ea already.
  3329.  
  3330. plan_and_wait(sEA, eEA, final_pass=True)
  3331. Perform full analysis of the range
  3332.  
  3333. @param sEA: starting linear address
  3334. @param eEA: ending linear address (excluded)
  3335. @param final_pass: make the final pass over the specified range
  3336.  
  3337. @return: 1-ok, 0-Ctrl-Break was pressed.
  3338.  
  3339. plan_to_apply_idasgn(name)
  3340. Load (plan to apply) a FLIRT signature file
  3341.  
  3342. @param name: signature name without path and extension
  3343.  
  3344. @return: 0 if could not load the signature file, !=0 otherwise
  3345.  
  3346. prev_addr(ea)
  3347. Get previous address in the program
  3348.  
  3349. @param ea: linear address
  3350.  
  3351. @return: BADADDR - the specified address in the first address
  3352.  
  3353. prev_head(ea, minea=0)
  3354. Get previous defined item (instruction or data) in the program
  3355.  
  3356. @param ea: linear address to start search from
  3357. @param minea: the search will stop at the address
  3358. minea is included in the search range
  3359.  
  3360. @return: BADADDR - no (more) defined items
  3361.  
  3362. prev_not_tail(ea)
  3363. Get previous not-tail address in the program
  3364. This function searches for the previous displayable address in the program.
  3365. The tail bytes of instructions and data are not displayable.
  3366.  
  3367. @param ea: linear address
  3368.  
  3369. @return: BADADDR - no (more) not-tail addresses
  3370.  
  3371. print_decls(ordinals, flags)
  3372. Print types in a format suitable for use in a header file
  3373.  
  3374. @param ordinals: comma-separated list of type ordinals
  3375. @param flags: combination of PDF_... constants or 0
  3376.  
  3377. @return: string containing the type definitions
  3378.  
  3379. print_insn_mnem(ea)
  3380. Get instruction mnemonics
  3381.  
  3382. @param ea: linear address of instruction
  3383.  
  3384. @return: "" - no instruction at the specified location
  3385.  
  3386. @note: this function may not return exactly the same mnemonics
  3387. as you see on the screen.
  3388.  
  3389. print_operand(ea, n)
  3390. Get operand of an instruction or data
  3391.  
  3392. @param ea: linear address of the item
  3393. @param n: number of operand:
  3394. 0 - the first operand
  3395. 1 - the second operand
  3396.  
  3397. @return: the current text representation of operand or ""
  3398.  
  3399. process_config_line(directive)
  3400. Parse one or more ida.cfg config directives
  3401. @param directive: directives to process, for example: PACK_DATABASE=2
  3402.  
  3403. @note: If the directives are erroneous, a fatal error will be generated.
  3404. The settings are permanent: effective for the current session and the next ones
  3405.  
  3406. process_ui_action(name, flags=0)
  3407. Invokes an IDA UI action by name
  3408.  
  3409. @param name: Command name
  3410. @param flags: Reserved. Must be zero
  3411. @return: Boolean
  3412.  
  3413. put_bookmark(ea, lnnum, x, y, slot, comment)
  3414. Mark position
  3415.  
  3416. @param ea: address to mark
  3417. @param lnnum: number of generated line for the 'ea'
  3418. @param x: x coordinate of cursor
  3419. @param y: y coordinate of cursor
  3420. @param slot: slot number: 1..1024
  3421. if the specifed value is not within the
  3422. range, IDA will ask the user to select slot.
  3423. @param comment: description of the mark. Should be not empty.
  3424.  
  3425. @return: None
  3426.  
  3427. qexit(code)
  3428. Stop execution of IDC program, close the database and exit to OS
  3429.  
  3430. @param code: code to exit with.
  3431.  
  3432. @return: -
  3433.  
  3434. qsleep(milliseconds)
  3435. qsleep the specified number of milliseconds
  3436. This function suspends IDA for the specified amount of time
  3437.  
  3438. @param milliseconds: time to sleep
  3439.  
  3440. read_dbg_byte(ea)
  3441. Get value of program byte using the debugger memory
  3442.  
  3443. @param ea: linear address
  3444. @return: The value or None on failure.
  3445.  
  3446. read_dbg_dword(ea)
  3447. Get value of program double-word using the debugger memory
  3448.  
  3449. @param ea: linear address
  3450. @return: The value or None on failure.
  3451.  
  3452. read_dbg_memory(ea, size)
  3453. Read from debugger memory.
  3454.  
  3455. @param ea: linear address
  3456. @param size: size of data to read
  3457. @return: data as a string. If failed, If failed, throws an exception
  3458.  
  3459. Thread-safe function (may be called only from the main thread and debthread)
  3460.  
  3461. read_dbg_qword(ea)
  3462. Get value of program quadro-word using the debugger memory
  3463.  
  3464. @param ea: linear address
  3465. @return: The value or None on failure.
  3466.  
  3467. read_dbg_word(ea)
  3468. Get value of program word using the debugger memory
  3469.  
  3470. @param ea: linear address
  3471. @return: The value or None on failure.
  3472.  
  3473. read_selection_end()
  3474. Get end address of the selected range
  3475.  
  3476. @return: BADADDR - the user has not selected an range
  3477.  
  3478. read_selection_start()
  3479. Get start address of the selected range
  3480. returns BADADDR - the user has not selected an range
  3481.  
  3482. readlong(handle, mostfirst)
  3483.  
  3484. readshort(handle, mostfirst)
  3485.  
  3486. readstr(handle)
  3487.  
  3488. rebase_program(delta, flags)
  3489. Rebase the whole program by 'delta' bytes
  3490.  
  3491. @param delta: number of bytes to move the program
  3492. @param flags: combination of MFS_... constants
  3493. it is recommended to use MSF_FIXONCE so that the loader takes
  3494. care of global variables it stored in the database
  3495.  
  3496. @returns: error code MOVE_SEGM_...
  3497.  
  3498. recalc_spd(cur_ea)
  3499. Recalculate SP delta for an instruction that stops execution.
  3500.  
  3501. @param cur_ea: linear address of the current instruction
  3502. @return: 1 - new stkpnt is added, 0 - nothing is changed
  3503.  
  3504. refresh_debugger_memory()
  3505. refresh_idaview_anyway debugger memory
  3506. Upon this call IDA will forget all cached information
  3507. about the debugged process. This includes the segmentation
  3508. information and memory contents (register cache is managed
  3509. automatically). Also, this function refreshes exported name
  3510. from loaded DLLs.
  3511. You must call this function before using the segmentation
  3512. information, memory contents, or names of a non-suspended process.
  3513. This is an expensive call.
  3514.  
  3515. refresh_idaview_anyway()
  3516. refresh_idaview_anyway all disassembly views
  3517.  
  3518. refresh_lists()
  3519. refresh_idaview_anyway all list views (names, functions, etc)
  3520.  
  3521. remove_fchunk(funcea, tailea)
  3522. Remove a function chunk from the function
  3523.  
  3524. @param funcea: any address in the function
  3525. @param tailea: any address in the function chunk to remove
  3526.  
  3527. @return: 0 if failed, 1 if success
  3528.  
  3529. rename_array(array_id, newname)
  3530. Rename array, by its ID.
  3531.  
  3532. @param id: The ID of the array to rename.
  3533. @param newname: The new name of the array.
  3534.  
  3535. @return: 1 in case of success, 0 otherwise
  3536.  
  3537. rename_entry(ordinal, name)
  3538. Rename entry point
  3539.  
  3540. @param ordinal: entry point number
  3541. @param name: new name
  3542.  
  3543. @return: !=0 - ok
  3544.  
  3545. resume_process()
  3546.  
  3547. resume_thread(tid)
  3548. Resume thread
  3549.  
  3550. @param tid: thread id
  3551.  
  3552. @return: -1:network error, 0-failed, 1-ok
  3553.  
  3554. retrieve_input_file_md5()
  3555. Return the MD5 hash of the input binary file
  3556.  
  3557. @return: MD5 string or None on error
  3558.  
  3559. rotate_byte(x, count)
  3560.  
  3561. rotate_dword(x, count)
  3562.  
  3563. rotate_left(value, count, nbits, offset)
  3564. Rotate a value to the left (or right)
  3565.  
  3566. @param value: value to rotate
  3567. @param count: number of times to rotate. negative counter means
  3568. rotate to the right
  3569. @param nbits: number of bits to rotate
  3570. @param offset: offset of the first bit to rotate
  3571.  
  3572. @return: the value with the specified field rotated
  3573. all other bits are not modified
  3574.  
  3575. rotate_word(x, count)
  3576.  
  3577. run_to(ea)
  3578. Execute the process until the given address is reached.
  3579. If no process is active, a new process is started.
  3580. See the important note to the step_into() function
  3581.  
  3582. @return: success
  3583.  
  3584. save_database(idbname, flags=0)
  3585. Save current database to the specified idb file
  3586.  
  3587. @param idbname: name of the idb file. if empty, the current idb
  3588. file will be used.
  3589. @param flags: combination of ida_loader.DBFL_... bits or 0
  3590.  
  3591. save_trace_file(filename, description)
  3592. Save current trace to a binary trace file
  3593. @param filename: trace file
  3594. @param description: trace description
  3595.  
  3596. savefile(filepath, pos, ea, size)
  3597.  
  3598. sel2para(sel)
  3599. Get a selector value
  3600.  
  3601. @param sel: the selector number
  3602.  
  3603. @return: selector value if found
  3604. otherwise the input value (sel)
  3605.  
  3606. @note: selector values are always in paragraphs
  3607.  
  3608. select_thread(tid)
  3609. Select the given thread as the current debugged thread.
  3610.  
  3611. @param tid: ID of the thread to select
  3612.  
  3613. @return: success
  3614.  
  3615. @note: The process must be suspended to select a new thread.
  3616.  
  3617. selector_by_name(segname)
  3618. Get segment by name
  3619.  
  3620. @param segname: name of segment
  3621.  
  3622. @return: segment selector or BADADDR
  3623.  
  3624. send_dbg_command(cmd)
  3625. Sends a command to the debugger module and returns the output string.
  3626. An exception will be raised if the debugger is not running or the current debugger does not export
  3627. the 'send_dbg_command' IDC command.
  3628.  
  3629. set_array_long(array_id, idx, value)
  3630. Sets the long value of an array element.
  3631.  
  3632. @param array_id: The array ID.
  3633. @param idx: Index of an element.
  3634. @param value: 32bit or 64bit value to store in the array
  3635.  
  3636. @return: 1 in case of success, 0 otherwise
  3637.  
  3638. set_array_params(ea, flags, litems, align)
  3639. Set array representation format
  3640.  
  3641. @param ea: linear address
  3642. @param flags: combination of AP_... constants or 0
  3643. @param litems: number of items per line. 0 means auto
  3644. @param align: element alignment
  3645. - -1: do not align
  3646. - 0: automatic alignment
  3647. - other values: element width
  3648.  
  3649. @return: 1-ok, 0-failure
  3650.  
  3651. set_array_string(array_id, idx, value)
  3652. Sets the string value of an array element.
  3653.  
  3654. @param array_id: The array ID.
  3655. @param idx: Index of an element.
  3656. @param value: String value to store in the array
  3657.  
  3658. @return: 1 in case of success, 0 otherwise
  3659.  
  3660. set_bmask_cmt(enum_id, bmask, cmt, repeatable)
  3661. Set bitmask comment (only for bitfields)
  3662.  
  3663. @param enum_id: id of enum
  3664. @param bmask: bitmask of the constant
  3665. @param cmt: comment
  3666. repeatable - type of comment, 0-regular, 1-repeatable
  3667.  
  3668. @return: 1-ok, 0-failed
  3669.  
  3670. set_bmask_name(enum_id, bmask, name)
  3671. Set bitmask name (only for bitfields)
  3672.  
  3673. @param enum_id: id of enum
  3674. @param bmask: bitmask of the constant
  3675. @param name: name of bitmask
  3676.  
  3677. @return: 1-ok, 0-failed
  3678.  
  3679. set_bpt_attr(address, bptattr, value)
  3680. modifiable characteristics of a breakpoint
  3681.  
  3682. @param address: any address in the breakpoint range
  3683. @param bptattr: the attribute code, one of BPTATTR_* constants
  3684. BPTATTR_CND is not allowed, see set_bpt_cond()
  3685. @param value: the attibute value
  3686.  
  3687. @return: success
  3688.  
  3689. set_bpt_cond(ea, cnd, is_lowcnd=0)
  3690. Set breakpoint condition
  3691.  
  3692. @param ea: any address in the breakpoint range
  3693. @param cnd: breakpoint condition
  3694. @param is_lowcnd: 0 - regular condition, 1 - low level condition
  3695.  
  3696. @return: success
  3697.  
  3698. set_cmt(ea, comment, rptble)
  3699. Set an indented regular comment of an item
  3700.  
  3701. @param ea: linear address
  3702. @param comment: comment string
  3703. @param rptble: is repeatable?
  3704.  
  3705. @return: None
  3706.  
  3707. set_color(ea, what, color)
  3708. Set item color
  3709.  
  3710. @param ea: address of the item
  3711. @param what: type of the item (one of CIC_* constants)
  3712. @param color: new color code in RGB (hex 0xBBGGRR)
  3713.  
  3714. @return: success (True or False)
  3715.  
  3716. set_debugger_event_cond(cond)
  3717. Set the debugger event condition
  3718.  
  3719. set_debugger_options(opt)
  3720. Get/set debugger options
  3721.  
  3722. @param opt: combination of DOPT_... constants
  3723.  
  3724. @return: old options
  3725.  
  3726. set_default_sreg_value(ea, reg, value)
  3727. Set default segment register value for a segment
  3728.  
  3729. @param ea: any address in the segment
  3730. if no segment is present at the specified address
  3731. then all segments will be affected
  3732. @param reg: name of segment register
  3733. @param value: default value of the segment register. -1-undefined.
  3734.  
  3735. set_enum_bf(enum_id, flag)
  3736. Set bitfield property of enum
  3737.  
  3738. @param enum_id: id of enum
  3739. @param flag: flags
  3740. - 1: convert to bitfield
  3741. - 0: convert to ordinary enum
  3742.  
  3743. @return: 1-ok,0-failed
  3744.  
  3745. set_enum_cmt(enum_id, cmt, repeatable)
  3746. Set comment of enum
  3747.  
  3748. @param enum_id: id of enum
  3749. @param cmt: new comment for the enum
  3750. @param repeatable: is the comment repeatable?
  3751. - 0:set regular comment
  3752. - 1:set repeatable comment
  3753.  
  3754. @return: 1-ok,0-failed
  3755.  
  3756. set_enum_flag(enum_id, flag)
  3757. Set flag of enum
  3758.  
  3759. @param enum_id: id of enum
  3760. @param flag: flags for representation of numeric constants
  3761. in the definition of enum.
  3762.  
  3763. @return: 1-ok,0-failed
  3764.  
  3765. set_enum_idx(enum_id, idx)
  3766. Give another serial number to a enum
  3767.  
  3768. @param enum_id: id of enum
  3769. @param idx: new serial number.
  3770. If another enum with the same serial number
  3771. exists, then all enums with serial
  3772. numbers >= the specified idx get their
  3773. serial numbers incremented (in other words,
  3774. the new enum is put in the middle of the list of enums).
  3775.  
  3776. If idx >= get_enum_qty() then the enum is
  3777. moved to the end of the list of enums.
  3778.  
  3779. @return: comment string
  3780.  
  3781. set_enum_member_cmt(const_id, cmt, repeatable)
  3782. Set a comment of a symbolic constant
  3783.  
  3784. @param const_id: id of const
  3785. @param cmt: new comment for the constant
  3786. @param repeatable: is the comment repeatable?
  3787. 0: set regular comment
  3788. 1: set repeatable comment
  3789.  
  3790. @return: 1-ok, 0-failed
  3791.  
  3792. set_enum_member_name(const_id, name)
  3793. Rename a member of enum - a symbolic constant
  3794.  
  3795. @param const_id: id of const
  3796. @param name: new name of constant
  3797.  
  3798. @return: 1-ok, 0-failed
  3799.  
  3800. set_enum_name(enum_id, name)
  3801. Rename enum
  3802.  
  3803. @param enum_id: id of enum
  3804. @param name: new name of enum
  3805.  
  3806. @return: 1-ok,0-failed
  3807.  
  3808. set_enum_width(enum_id, width)
  3809. Set width of enum elements
  3810.  
  3811. @param enum_id: id of enum
  3812. @param width: element width in bytes (0-unknown)
  3813.  
  3814. @return: 1-ok, 0-failed
  3815.  
  3816. set_fchunk_attr(ea, attr, value)
  3817. Set a function chunk attribute
  3818.  
  3819. @param ea: any address in the chunk
  3820. @param attr: only FUNCATTR_START, FUNCATTR_END, FUNCATTR_OWNER
  3821. @param value: desired value
  3822.  
  3823. @return: 0 if failed, 1 if success
  3824.  
  3825. set_fixup(ea, fixuptype, fixupflags, targetsel, targetoff, displ)
  3826. Set fixup information
  3827.  
  3828. @param ea: address to set fixup information about
  3829. @param fixuptype: fixup type. see get_fixup_target_type()
  3830. for possible fixup types.
  3831. @param fixupflags: fixup flags. see get_fixup_target_flags()
  3832. for possible fixup types.
  3833. @param targetsel: target selector
  3834. @param targetoff: target offset
  3835. @param displ: displacement
  3836.  
  3837. @return: none
  3838.  
  3839. set_flag(off, bit, value)
  3840. #--------------------------------------------------------------------------
  3841.  
  3842. set_frame_size(ea, lvsize, frregs, argsize)
  3843. Make function frame
  3844.  
  3845. @param ea: any address belonging to the function
  3846. @param lvsize: size of function local variables
  3847. @param frregs: size of saved registers
  3848. @param argsize: size of function arguments
  3849.  
  3850. @return: ID of function frame or -1
  3851. If the function did not have a frame, the frame
  3852. will be created. Otherwise the frame will be modified
  3853.  
  3854. set_func_attr(ea, attr, value)
  3855. Set a function attribute
  3856.  
  3857. @param ea: any address belonging to the function
  3858. @param attr: one of FUNCATTR_... constants
  3859. @param value: new value of the attribute
  3860.  
  3861. @return: 1-ok, 0-failed
  3862.  
  3863. set_func_cmt(ea, cmt, repeatable)
  3864. Set function comment
  3865.  
  3866. @param ea: any address belonging to the function
  3867. @param cmt: a function comment line
  3868. @param repeatable: 1: get repeatable comment
  3869. 0: get regular comment
  3870.  
  3871. set_func_end(ea, end)
  3872. Change function end address
  3873.  
  3874. @param ea: any address belonging to the function
  3875. @param end: new function end address
  3876.  
  3877. @return: !=0 - ok
  3878.  
  3879. set_func_flags(ea, flags)
  3880. Change function flags
  3881.  
  3882. @param ea: any address belonging to the function
  3883. @param flags: see get_func_flags() for explanations
  3884.  
  3885. @return: !=0 - ok
  3886.  
  3887. set_hash_long(hash_id, key, value)
  3888. Sets the long value of a hash element.
  3889.  
  3890. @param hash_id: The hash ID.
  3891. @param key: Key of an element.
  3892. @param value: 32bit or 64bit value to store in the hash
  3893.  
  3894. @return: 1 in case of success, 0 otherwise
  3895.  
  3896. set_hash_string(hash_id, key, value)
  3897. Sets the string value of a hash element.
  3898.  
  3899. @param hash_id: The hash ID.
  3900. @param key: Key of an element.
  3901. @param value: string value to store in the hash
  3902.  
  3903. @return: 1 in case of success, 0 otherwise
  3904.  
  3905. set_ida_state(status)
  3906. Change IDA indicator.
  3907.  
  3908. @param status: new status
  3909.  
  3910. @return: the previous status.
  3911.  
  3912. set_inf_attr(offset, value)
  3913.  
  3914. set_local_type(ordinal, input, flags)
  3915. Parse one type declaration and store it in the specified slot
  3916.  
  3917. @param ordinal: slot number (1...NumberOfLocalTypes)
  3918. -1 means allocate new slot or reuse the slot
  3919. of the existing named type
  3920. @param input: C declaration. Empty input empties the slot
  3921. @param flags: combination of PT_... constants or 0
  3922.  
  3923. @return: slot number or 0 if error
  3924.  
  3925. set_manual_insn(ea, insn)
  3926. Specify instruction represenation manually.
  3927.  
  3928. @param ea: linear address
  3929. @param insn: a string represenation of the operand
  3930.  
  3931. @note: IDA will not check the specified instruction, it will simply
  3932. display it instead of the orginal representation.
  3933.  
  3934. set_member_cmt(sid, member_offset, comment, repeatable)
  3935. Change structure member comment
  3936.  
  3937. @param sid: structure type ID
  3938. @param member_offset: offset of the member
  3939. @param comment: new comment of the structure member
  3940. @param repeatable: 1: change repeatable comment
  3941. 0: change regular comment
  3942.  
  3943. @return: != 0 - ok
  3944.  
  3945. set_member_name(sid, member_offset, name)
  3946. Change structure member name
  3947.  
  3948. @param sid: structure type ID
  3949. @param member_offset: offset of the member
  3950. @param name: new name of the member
  3951.  
  3952. @return: != 0 - ok.
  3953.  
  3954. set_member_type(sid, member_offset, flag, typeid, nitems, target=-1, tdelta=0, reftype=2L)
  3955. Change structure member type
  3956.  
  3957. @param sid: structure type ID
  3958. @param member_offset: offset of the member
  3959. @param flag: new type of the member. Should be one of
  3960. FF_BYTE..FF_PACKREAL (see above) combined with FF_DATA
  3961. @param typeid: if isStruc(flag) then typeid specifies the structure id for the member
  3962. if is_off0(flag) then typeid specifies the offset base.
  3963. if is_strlit(flag) then typeid specifies the string type (STRTYPE_...).
  3964. if is_stroff(flag) then typeid specifies the structure id
  3965. if is_enum(flag) then typeid specifies the enum id
  3966. if is_custom(flags) then typeid specifies the dtid and fid: dtid|(fid<<16)
  3967. Otherwise typeid should be -1.
  3968. @param nitems: number of items in the member
  3969.  
  3970. @param target: target address of the offset expr. You may specify it as
  3971. -1, ida will calculate it itself
  3972. @param tdelta: offset target delta. usually 0
  3973. @param reftype: see REF_... definitions
  3974.  
  3975. @note: The remaining arguments are allowed only if is_off0(flag) and you want
  3976. to specify a complex offset expression
  3977.  
  3978. @return: !=0 - ok.
  3979.  
  3980. set_name(ea, name, flags=0)
  3981. Rename an address
  3982.  
  3983. @param ea: linear address
  3984. @param name: new name of address. If name == "", then delete old name
  3985. @param flags: combination of SN_... constants
  3986.  
  3987. @return: 1-ok, 0-failure
  3988.  
  3989. set_processor_type(processor, level)
  3990. Change current processor
  3991.  
  3992. @param processor: name of processor in short form.
  3993. run 'ida ?' to get list of allowed processor types
  3994. @param level: the request leve:
  3995. - SETPROC_IDB set processor type for old idb
  3996. - SETPROC_LOADER set processor type for new idb;
  3997. if the user has specified a compatible processor,
  3998. return success without changing it.
  3999. if failure, call loader_failure()
  4000. - SETPROC_LOADER_NON_FATAL
  4001. the same as SETPROC_LOADER but non-fatal failures
  4002. - SETPROC_USER set user-specified processor
  4003. used for -p and manual processor change at later time
  4004.  
  4005. set_reg_value(value, name)
  4006. Set register value
  4007.  
  4008. @param name: the register name
  4009. @param value: new register value
  4010.  
  4011. @note: The debugger should be running
  4012. It is not necessary to use this function to set register values.
  4013. A register name in the left side of an assignment will do too.
  4014.  
  4015. set_remote_debugger(hostname, password, portnum)
  4016. Set remote debugging options
  4017.  
  4018. @param hostname: remote host name or address if empty, revert to local debugger
  4019. @param password: password for the debugger server
  4020. @param portnum: port number to connect (-1: don't change)
  4021.  
  4022. @return: nothing
  4023.  
  4024. set_root_filename(path)
  4025. Set input file name
  4026. This function updates the file name that is stored in the database
  4027. It is used by the debugger and other parts of IDA
  4028. Use it when the database is moved to another location or when you
  4029. use remote debugging.
  4030.  
  4031. @param path: new input file path
  4032.  
  4033. set_segm_addressing(ea, bitness)
  4034. Change segment addressing
  4035.  
  4036. @param ea: any address in the segment
  4037. @param bitness: 0: 16bit, 1: 32bit, 2: 64bit
  4038.  
  4039. @return: success (boolean)
  4040.  
  4041. set_segm_alignment(ea, alignment)
  4042. Change alignment of the segment
  4043.  
  4044. @param ea: any address in the segment
  4045. @param alignment: new alignment of the segment (one of the sa... constants)
  4046.  
  4047. @return: success (boolean)
  4048.  
  4049. set_segm_attr(segea, attr, value)
  4050. Set segment attribute
  4051.  
  4052. @param segea: any address within segment
  4053. @param attr: one of SEGATTR_... constants
  4054.  
  4055. @note: Please note that not all segment attributes are modifiable.
  4056. Also some of them should be modified using special functions
  4057. like set_segm_addressing, etc.
  4058.  
  4059. set_segm_class(ea, segclass)
  4060. Change class of the segment
  4061.  
  4062. @param ea: any address in the segment
  4063. @param segclass: new class of the segment
  4064.  
  4065. @return: success (boolean)
  4066.  
  4067. set_segm_combination(segea, comb)
  4068. Change combination of the segment
  4069.  
  4070. @param segea: any address in the segment
  4071. @param comb: new combination of the segment (one of the sc... constants)
  4072.  
  4073. @return: success (boolean)
  4074.  
  4075. set_segm_name(ea, name)
  4076. Change name of the segment
  4077.  
  4078. @param ea: any address in the segment
  4079. @param name: new name of the segment
  4080.  
  4081. @return: success (boolean)
  4082.  
  4083. set_segm_type(segea, segtype)
  4084. Set segment type
  4085.  
  4086. @param segea: any address within segment
  4087. @param segtype: new segment type:
  4088.  
  4089. @return: !=0 - ok
  4090.  
  4091. set_segment_bounds(ea, startea, endea, flags)
  4092. Change segment boundaries
  4093.  
  4094. @param ea: any address in the segment
  4095. @param startea: new start address of the segment
  4096. @param endea: new end address of the segment
  4097. @param flags: combination of SEGMOD_... flags
  4098.  
  4099. @return: boolean success
  4100.  
  4101. set_selector(sel, value)
  4102. Set a selector value
  4103.  
  4104. @param sel: the selector number
  4105. @param value: value of selector
  4106.  
  4107. @return: None
  4108.  
  4109. @note: ida supports up to 4096 selectors.
  4110. if 'sel' == 'val' then the selector is destroyed because
  4111. it has no significance
  4112.  
  4113. set_source_linnum(ea, lnnum)
  4114. Set source line number
  4115.  
  4116. @param ea: linear address
  4117. @param lnnum: number of line in the source file
  4118.  
  4119. @return: None
  4120.  
  4121. set_step_trace_options(options)
  4122. Set step current tracing options.
  4123. @param options: combination of ST_... constants
  4124.  
  4125. set_storage_type(start_ea, end_ea, stt)
  4126. Set storage type
  4127.  
  4128. @param start_ea: starting address
  4129. @param end_ea: ending address
  4130. @param stt: new storage type, one of STT_VA and STT_MM
  4131.  
  4132. @returns: 0 - ok, otherwise internal error code
  4133.  
  4134. set_struc_cmt(sid, comment, repeatable)
  4135. Change structure comment
  4136.  
  4137. @param sid: structure type ID
  4138. @param comment: new comment of the structure
  4139. @param repeatable: 1: change repeatable comment
  4140. 0: change regular comment
  4141. @return: != 0 - ok
  4142.  
  4143. set_struc_idx(sid, index)
  4144. Change structure index
  4145.  
  4146. @param sid: structure type ID
  4147. @param index: new index of the structure
  4148.  
  4149. @return: != 0 - ok
  4150.  
  4151. @note: See get_first_struc_idx() for the explanation of
  4152. structure indices and IDs.
  4153.  
  4154. set_struc_name(sid, name)
  4155. Change structure name
  4156.  
  4157. @param sid: structure type ID
  4158. @param name: new name of the structure
  4159.  
  4160. @return: != 0 - ok
  4161.  
  4162. set_tail_owner(tailea, funcea)
  4163. Change the function chunk owner
  4164.  
  4165. @param tailea: any address in the function chunk
  4166. @param funcea: the starting address of the new owner
  4167.  
  4168. @return: False if failed, True if success
  4169.  
  4170. @note: The new owner must already have the chunk appended before the call
  4171.  
  4172. set_target_assembler(asmidx)
  4173. Set target assembler
  4174. @param asmidx: index of the target assembler in the array of
  4175. assemblers for the current processor.
  4176.  
  4177. @return: 1-ok, 0-failed
  4178.  
  4179. set_trace_file_desc(filename, description)
  4180. Update the trace description of the given binary trace file
  4181. @param filename: trace file
  4182. @description: trace description
  4183.  
  4184. split_sreg_range(ea, reg, value, tag=2)
  4185. Set value of a segment register.
  4186.  
  4187. @param ea: linear address
  4188. @param reg: name of a register, like "cs", "ds", "es", etc.
  4189. @param value: new value of the segment register.
  4190. @param tag: of SR_... constants
  4191.  
  4192. @note: IDA keeps tracks of all the points where segment register change their
  4193. values. This function allows you to specify the correct value of a segment
  4194. register if IDA is not able to find the corrent value.
  4195.  
  4196. start_process(path, args, sdir)
  4197. Launch the debugger
  4198.  
  4199. @param path: path to the executable file.
  4200. @param args: command line arguments
  4201. @param sdir: initial directory for the process
  4202.  
  4203. @return: -1-failed, 0-cancelled by the user, 1-ok
  4204.  
  4205. @note: For all args: if empty, the default value from the database will be used
  4206. See the important note to the step_into() function
  4207.  
  4208. step_into()
  4209. Execute one instruction in the current thread.
  4210. Other threads are kept suspended.
  4211.  
  4212. @return: success
  4213.  
  4214. @note: You must call wait_for_next_event() after this call
  4215. in order to find out what happened. Normally you will
  4216. get the STEP event but other events are possible (for example,
  4217. an exception might occur or the process might exit).
  4218. This remark applies to all execution control functions.
  4219. The event codes depend on the issued command.
  4220.  
  4221. step_over()
  4222. Execute one instruction in the current thread,
  4223. but without entering into functions
  4224. Others threads keep suspended.
  4225. See the important note to the step_into() function
  4226.  
  4227. @return: success
  4228.  
  4229. step_until_ret()
  4230. Execute instructions in the current thread until
  4231. a function return instruction is reached.
  4232. Other threads are kept suspended.
  4233. See the important note to the step_into() function
  4234.  
  4235. @return: success
  4236.  
  4237. strlen(s)
  4238.  
  4239. strstr(s1, s2)
  4240.  
  4241. substr(s, x1, x2)
  4242.  
  4243. suspend_process()
  4244. Suspend the running process
  4245. Tries to suspend the process. If successful, the PROCESS_SUSPEND
  4246. debug event will arrive (see wait_for_next_event)
  4247.  
  4248. @return: success
  4249.  
  4250. @note: To resume a suspended process use the wait_for_next_event function.
  4251. See the important note to the step_into() function
  4252.  
  4253. suspend_thread(tid)
  4254. Suspend thread
  4255.  
  4256. @param tid: thread id
  4257.  
  4258. @return: -1:network error, 0-failed, 1-ok
  4259.  
  4260. @note: Suspending a thread may deadlock the whole application if the suspended
  4261. was owning some synchronization objects.
  4262.  
  4263. take_memory_snapshot(only_loader_segs)
  4264. Take memory snapshot of the debugged process
  4265.  
  4266. @param only_loader_segs: 0-copy all segments to idb
  4267. 1-copy only SFL_LOADER segments
  4268.  
  4269. to_ea(seg, off)
  4270. Return value of expression: ((seg<<4) + off)
  4271.  
  4272. toggle_bnot(ea, n)
  4273. Toggle the bitwise not operator for the operand
  4274.  
  4275. @param ea: linear address
  4276. @param n: number of operand
  4277. - 0 - the first operand
  4278. - 1 - the second, third and all other operands
  4279. - -1 - all operands
  4280.  
  4281. toggle_sign(ea, n)
  4282. Change sign of the operand
  4283.  
  4284. @param ea: linear address
  4285. @param n: number of operand
  4286. - 0 - the first operand
  4287. - 1 - the second, third and all other operands
  4288. - -1 - all operands
  4289.  
  4290. update_extra_cmt(ea, n, line)
  4291. Set or update extra comment line
  4292.  
  4293. @param ea: linear address
  4294. @param n: number of additional line (0..MAX_ITEM_LINES)
  4295. @param line: the line to display
  4296.  
  4297. @return: None
  4298.  
  4299. @note: IDA displays additional lines from number 0 up to the first unexisting
  4300. additional line. So, if you specify additional line #150 and there is no
  4301. additional line #149, your line will not be displayed. MAX_ITEM_LINES is
  4302. defined in IDA.CFG
  4303.  
  4304. To set anterior line #n use (E_PREV + n)
  4305. To set posterior line #n use (E_NEXT + n)
  4306.  
  4307. update_hidden_range(ea, visible)
  4308. Set hidden range state
  4309.  
  4310. @param ea: any address belonging to the hidden range
  4311. @param visible: new state of the range
  4312.  
  4313. @return: != 0 - ok
  4314.  
  4315. validate_idb_names()
  4316. check consistency of IDB name records
  4317. @return: number of inconsistent name records
  4318.  
  4319. value_is_float(var)
  4320.  
  4321. value_is_func(var)
  4322.  
  4323. value_is_int64(var)
  4324.  
  4325. value_is_long(var)
  4326.  
  4327. value_is_pvoid(var)
  4328.  
  4329. value_is_string(var)
  4330. # List of built-in functions
  4331. # --------------------------
  4332. #
  4333. # The following conventions are used in this list:
  4334. # 'ea' is a linear address
  4335. # 'success' is 0 if a function failed, 1 otherwise
  4336. # 'void' means that function returns no meaningful value (always 0)
  4337. #
  4338. # All function parameter conversions are made automatically.
  4339. #
  4340. # ----------------------------------------------------------------------------
  4341. # M I S C E L L A N E O U S
  4342. # ----------------------------------------------------------------------------
  4343.  
  4344. wait_for_next_event(wfne, timeout)
  4345. Wait for the next event
  4346. This function (optionally) resumes the process
  4347. execution and wait for a debugger event until timeout
  4348.  
  4349. @param wfne: combination of WFNE_... constants
  4350. @param timeout: number of seconds to wait, -1-infinity
  4351.  
  4352. @return: debugger event codes, see below
  4353.  
  4354. warning(message)
  4355. Display a message in a message box
  4356.  
  4357. @param message: message to print (formatting is done in Python)
  4358.  
  4359. This function can be used to debug IDC scripts
  4360. The user will be able to hide messages if they appear twice in a row on
  4361. the screen
  4362.  
  4363. write_dbg_memory(ea, data)
  4364. Write to debugger memory.
  4365.  
  4366. @param ea: linear address
  4367. @param data: string to write
  4368. @return: number of written bytes (-1 - network/debugger error)
  4369.  
  4370. Thread-safe function (may be called only from the main thread and debthread)
  4371.  
  4372. writelong(handle, dword, mostfirst)
  4373.  
  4374. writeshort(handle, word, mostfirst)
  4375.  
  4376. writestr(handle, s)
  4377.  
  4378. xtol(s)
  4379.  
  4380. DATA
  4381. ABI_8ALIGN4 = 1
  4382. ABI_BIGARG_ALIGN = 4
  4383. ABI_HARD_FLOAT = 32
  4384. ABI_PACK_STKARGS = 2
  4385. ABI_SET_BY_USER = 64
  4386. ABI_STACK_LDBL = 8
  4387. ABI_STACK_VARARGS = 16
  4388. ADDSEG_FILLGAP = 16
  4389. ADDSEG_NOSREG = 1
  4390. ADDSEG_NOTRUNC = 4
  4391. ADDSEG_OR_DIE = 2
  4392. ADDSEG_QUIET = 8
  4393. ADDSEG_SPARSE = 32
  4394. AF2_ANORET = 16384
  4395. AF2_CHKUNI = 262144
  4396. AF2_DATOFF = 4194304
  4397. AF2_DOCODE = 1073741824
  4398. AF2_DODATA = 536870912
  4399. AF2_DOEH = 1
  4400. AF2_FTAIL = 256
  4401. AF2_HFLIRT = 67108864
  4402. AF2_JUMPTBL = 4
  4403. AF2_PURDAT = 8
  4404. AF2_REGARG = 2048
  4405. AF2_SIGCMT = 16777216
  4406. AF2_SIGMLT = 33554432
  4407. AF2_STKARG = 1024
  4408. AF2_TRFUNC = 65536
  4409. AF2_VERSP = 8192
  4410. AF_ANORET = 16384
  4411. AF_ASCII = 131072
  4412. AF_CHKUNI = 262144
  4413. AF_CODE = 1
  4414. AF_DATOFF = 4194304
  4415. AF_DOCODE = 1073741824
  4416. AF_DODATA = 536870912
  4417. AF_DREFOFF = 1048576
  4418. AF_FINAL = 2147483648L
  4419. AF_FIXUP = 524288
  4420. AF_FLIRT = 8388608
  4421. AF_FTAIL = 256
  4422. AF_HFLIRT = 67108864
  4423. AF_IMMOFF = 2097152
  4424. AF_JFUNC = 134217728
  4425. AF_JUMPTBL = 4
  4426. AF_LVAR = 512
  4427. AF_MARKCODE = 2
  4428. AF_MEMFUNC = 32768
  4429. AF_NULLSUB = 268435456
  4430. AF_PROC = 128
  4431. AF_PROCPTR = 64
  4432. AF_PURDAT = 8
  4433. AF_REGARG = 2048
  4434. AF_SIGCMT = 16777216
  4435. AF_SIGMLT = 33554432
  4436. AF_STKARG = 1024
  4437. AF_STRLIT = 131072
  4438. AF_TRACE = 4096
  4439. AF_TRFUNC = 65536
  4440. AF_UNK = 32
  4441. AF_USED = 16
  4442. AF_VERSP = 8192
  4443. APPT_16BIT = 128
  4444. APPT_1THREAD = 32
  4445. APPT_32BIT = 256
  4446. APPT_CONSOLE = 1
  4447. APPT_DRIVER = 16
  4448. APPT_GRAPHIC = 2
  4449. APPT_LIBRARY = 8
  4450. APPT_MTHREAD = 64
  4451. APPT_PROGRAM = 4
  4452. AP_ALLOWDUPS = 1L
  4453. AP_ARRAY = 8L
  4454. AP_IDXBASEMASK = 240L
  4455. AP_IDXBIN = 48L
  4456. AP_IDXDEC = 0L
  4457. AP_IDXHEX = 16L
  4458. AP_IDXOCT = 32L
  4459. AP_INDEX = 4L
  4460. AP_SIGNED = 2L
  4461. ARGV = []
  4462. AR_LONG = 65L
  4463. AR_STR = 83L
  4464. ASCF_AUTO = 2
  4465. ASCF_COMMENT = 16
  4466. ASCF_GEN = 1
  4467. ASCF_SAVECASE = 32
  4468. ASCF_SERIAL = 4
  4469. ASCSTR_C = 0
  4470. ASCSTR_LEN2 = 1
  4471. ASCSTR_LEN4 = 2
  4472. ASCSTR_PASCAL = 4
  4473. ASCSTR_TERMCHR = 0
  4474. ASCSTR_ULEN2 = 9
  4475. ASCSTR_ULEN4 = 13
  4476. ASCSTR_UNICODE = 1
  4477. AU_CODE = 20
  4478. AU_FINAL = 200
  4479. AU_LIBF = 60
  4480. AU_PROC = 30
  4481. AU_UNK = 10
  4482. AU_USED = 40
  4483. BADADDR = 18446744073709551615L
  4484. BADSEL = 18446744073709551615L
  4485. BPLT_ABS = 0
  4486. BPLT_REL = 1
  4487. BPLT_SYM = 2
  4488. BPTATTR_COND = 6
  4489. BPTATTR_COUNT = 4
  4490. BPTATTR_EA = 1
  4491. BPTATTR_FLAGS = 5
  4492. BPTATTR_SIZE = 2
  4493. BPTATTR_TYPE = 3
  4494. BPTCK_ACT = 2
  4495. BPTCK_NO = 0
  4496. BPTCK_NONE = -1
  4497. BPTCK_YES = 1
  4498. BPT_BRK = 1
  4499. BPT_DEFAULT = 12
  4500. BPT_ENABLED = 8
  4501. BPT_EXEC = 8
  4502. BPT_LOWCND = 16
  4503. BPT_RDWR = 3
  4504. BPT_SOFT = 4
  4505. BPT_TRACE = 2
  4506. BPT_TRACEON = 32
  4507. BPT_TRACE_BBLK = 256
  4508. BPT_TRACE_FUNC = 128
  4509. BPT_TRACE_INSN = 64
  4510. BPT_UPDMEM = 4
  4511. BPT_WRITE = 1
  4512. BPU_1B = 1
  4513. BPU_2B = 2
  4514. BPU_4B = 4
  4515. BREAKPOINT = 16
  4516. CHART_GEN_GDL = 16384
  4517. CHART_NOLIBFUNCS = 1024
  4518. CHART_PRINT_NAMES = 4096
  4519. CHART_WINGRAPH = 32768
  4520. CIC_FUNC = 2
  4521. CIC_ITEM = 1
  4522. CIC_SEGM = 3
  4523. COMP_BC = 2
  4524. COMP_BP = 8
  4525. COMP_GNU = 6
  4526. COMP_MASK = 15
  4527. COMP_MS = 1
  4528. COMP_UNK = 0
  4529. COMP_VISAGE = 7
  4530. COMP_WATCOM = 3
  4531. DBFL_BAK = 4
  4532. DBG_ERROR = -1
  4533. DBG_TIMEOUT = 0
  4534. DEFCOLOR = 4294967295L
  4535. DELIT_DELNAMES = 2
  4536. DELIT_EXPAND = 1
  4537. DELIT_SIMPLE = 0
  4538. DEMNAM_CMNT = 0
  4539. DEMNAM_FIRST = 8
  4540. DEMNAM_GCC3 = 4
  4541. DEMNAM_NAME = 1
  4542. DEMNAM_NONE = 2
  4543. DOPT_BPT_MSGS = 16
  4544. DOPT_ENTRY_BPT = 4096
  4545. DOPT_EXCDLG = 24576
  4546. DOPT_INFO_BPT = 512
  4547. DOPT_INFO_MSGS = 256
  4548. DOPT_LIB_BPT = 128
  4549. DOPT_LIB_MSGS = 64
  4550. DOPT_LOAD_DINFO = 32768
  4551. DOPT_REAL_MEMORY = 1024
  4552. DOPT_REDO_STACK = 2048
  4553. DOPT_SEGM_MSGS = 1
  4554. DOPT_START_BPT = 2
  4555. DOPT_THREAD_BPT = 8
  4556. DOPT_THREAD_MSGS = 4
  4557. DOUNK_DELNAMES = 2
  4558. DOUNK_EXPAND = 1
  4559. DOUNK_SIMPLE = 0
  4560. DSTATE_NOTASK = 0
  4561. DSTATE_RUN = 1
  4562. DSTATE_RUN_WAIT_ATTACH = 2
  4563. DSTATE_RUN_WAIT_END = 3
  4564. DSTATE_SUSP = -1
  4565. DT_TYPE = 4026531840L
  4566. ENUM_MEMBER_ERROR_ENUM = 3
  4567. ENUM_MEMBER_ERROR_ILLV = 5
  4568. ENUM_MEMBER_ERROR_MASK = 4
  4569. ENUM_MEMBER_ERROR_NAME = 1
  4570. ENUM_MEMBER_ERROR_VALUE = 2
  4571. EXCDLG_ALWAYS = 24576
  4572. EXCDLG_NEVER = 0
  4573. EXCDLG_UNKNOWN = 8192
  4574. EXCEPTION = 64
  4575. EXC_BREAK = 1
  4576. EXC_HANDLE = 2
  4577. E_NEXT = 2000
  4578. E_PREV = 1000
  4579. FF_0CHAR = 3145728L
  4580. FF_0ENUM = 8388608L
  4581. FF_0FOP = 9437184L
  4582. FF_0NUMB = 6291456L
  4583. FF_0NUMD = 2097152L
  4584. FF_0NUMH = 1048576L
  4585. FF_0NUMO = 7340032L
  4586. FF_0OFF = 5242880L
  4587. FF_0SEG = 4194304L
  4588. FF_0STK = 11534336L
  4589. FF_0STRO = 10485760L
  4590. FF_0VOID = 0L
  4591. FF_1CHAR = 50331648L
  4592. FF_1ENUM = 134217728L
  4593. FF_1FOP = 150994944L
  4594. FF_1NUMB = 100663296L
  4595. FF_1NUMD = 33554432L
  4596. FF_1NUMH = 16777216L
  4597. FF_1NUMO = 117440512L
  4598. FF_1OFF = 83886080L
  4599. FF_1SEG = 67108864L
  4600. FF_1STK = 184549376L
  4601. FF_1STRO = 167772160L
  4602. FF_1VOID = 0L
  4603. FF_ALIGN = 2952790016L
  4604. FF_ANYNAME = 49152
  4605. FF_ASCI = 1342177280L
  4606. FF_BYTE = 0L
  4607. FF_CODE = 1536L
  4608. FF_COMM = 2048
  4609. FF_DATA = 1024L
  4610. FF_DOUBLE = 2415919104L
  4611. FF_DWORD = 536870912L
  4612. FF_DWRD = 536870912L
  4613. FF_FLOAT = 2147483648L
  4614. FF_FLOW = 65536
  4615. FF_FUNC = 268435456L
  4616. FF_IMMD = 1073741824L
  4617. FF_IVL = 256L
  4618. FF_JUMP = 2147483648L
  4619. FF_LABL = 32768
  4620. FF_LINE = 8192
  4621. FF_NAME = 16384
  4622. FF_OWORD = 1879048192L
  4623. FF_OWRD = 1879048192L
  4624. FF_PACKREAL = 2684354560L
  4625. FF_QWORD = 805306368L
  4626. FF_QWRD = 805306368L
  4627. FF_REF = 4096
  4628. FF_STRLIT = 1342177280L
  4629. FF_STRU = 1610612736L
  4630. FF_STRUCT = 1610612736L
  4631. FF_TAIL = 512L
  4632. FF_TBYT = 1073741824L
  4633. FF_TBYTE = 1073741824L
  4634. FF_UNK = 0L
  4635. FF_VAR = 524288
  4636. FF_WORD = 268435456L
  4637. FIXUPF_CREATED = 8
  4638. FIXUPF_EXTDEF = 2
  4639. FIXUPF_REL = 1
  4640. FIXUPF_UNUSED = 4
  4641. FIXUP_BYTE = 13
  4642. FIXUP_CREATED = 8
  4643. FIXUP_CUSTOM = 32768
  4644. FIXUP_EXTDEF = 2
  4645. FIXUP_HI16 = 7
  4646. FIXUP_HI8 = 6
  4647. FIXUP_LOW16 = 9
  4648. FIXUP_LOW8 = 8
  4649. FIXUP_OFF16 = 1
  4650. FIXUP_OFF32 = 4
  4651. FIXUP_OFF64 = 12
  4652. FIXUP_OFF8 = 13
  4653. FIXUP_PTR32 = 3
  4654. FIXUP_PTR48 = 5
  4655. FIXUP_REL = 1
  4656. FIXUP_SEG16 = 2
  4657. FIXUP_SELFREL = 0
  4658. FIXUP_UNUSED = 4
  4659. FT_AIXAR = 24
  4660. FT_AOUT = 20
  4661. FT_AR = 16
  4662. FT_BIN = 2
  4663. FT_COFF = 10
  4664. FT_COM = 23
  4665. FT_COM_OLD = 1
  4666. FT_DRV = 3
  4667. FT_ELF = 18
  4668. FT_EXE = 22
  4669. FT_EXE_OLD = 0
  4670. FT_HEX = 5
  4671. FT_LE = 8
  4672. FT_LOADER = 17
  4673. FT_LX = 7
  4674. FT_MACHO = 25
  4675. FT_MEX = 6
  4676. FT_NLM = 9
  4677. FT_OMF = 12
  4678. FT_OMFLIB = 15
  4679. FT_PE = 11
  4680. FT_PRC = 21
  4681. FT_SREC = 13
  4682. FT_W32RUN = 19
  4683. FT_WIN = 4
  4684. FT_ZIP = 14
  4685. FUNCATTR_ARGSIZE = 48
  4686. FUNCATTR_COLOR = 64
  4687. FUNCATTR_END = 8
  4688. FUNCATTR_FLAGS = 16
  4689. FUNCATTR_FPD = 56
  4690. FUNCATTR_FRAME = 24
  4691. FUNCATTR_FRREGS = 40
  4692. FUNCATTR_FRSIZE = 32
  4693. FUNCATTR_OWNER = 24
  4694. FUNCATTR_REFQTY = 32
  4695. FUNCATTR_START = 0
  4696. FUNC_BOTTOMBP = 256
  4697. FUNC_FAR = 2
  4698. FUNC_FRAME = 16
  4699. FUNC_HIDDEN = 64
  4700. FUNC_LIB = 4
  4701. FUNC_NORET = 1
  4702. FUNC_NORET_PENDING = 512
  4703. FUNC_PURGED_OK = 16384
  4704. FUNC_SP_READY = 1024
  4705. FUNC_STATIC = 8
  4706. FUNC_TAIL = 32768
  4707. FUNC_THUNK = 128
  4708. FUNC_USERFAR = 32
  4709. GENDSM_FORCE_CODE = 1
  4710. GENDSM_MULTI_LINE = 2
  4711. GENFLG_ASMINC = 64
  4712. GENFLG_ASMTYPE = 16
  4713. GENFLG_GENHTML = 32
  4714. GENFLG_IDCTYPE = 8
  4715. GENFLG_MAPDMNG = 4
  4716. GENFLG_MAPLOC = 8
  4717. GENFLG_MAPNAME = 2
  4718. GENFLG_MAPSEG = 1
  4719. GN_COLORED = 2
  4720. GN_DEMANGLED = 4
  4721. GN_ISRET = 128
  4722. GN_LOCAL = 64
  4723. GN_LONG = 32
  4724. GN_NOT_ISRET = 256
  4725. GN_SHORT = 16
  4726. GN_STRICT = 8
  4727. GN_VISIBLE = 1
  4728. IDA_STATUS_READY = 0
  4729. IDA_STATUS_THINKING = 1
  4730. IDA_STATUS_WAITING = 2
  4731. IDA_STATUS_WORK = 3
  4732. IDCHK_ARG = -1
  4733. IDCHK_KEY = -2
  4734. IDCHK_MAX = -3
  4735. IDCHK_OK = 0
  4736. INFFL_ALLASM = 2
  4737. INFFL_AUTO = 1
  4738. INFFL_CHKOPS = 32
  4739. INFFL_GRAPH_VIEW = 128
  4740. INFFL_LOADIDC = 4
  4741. INFFL_NMOPS = 64
  4742. INFFL_NOUSER = 8
  4743. INFFL_READONLY = 16
  4744. INFORMATION = 512
  4745. INF_ABIBITS = 268
  4746. INF_AF = 40
  4747. INF_AF2 = 44
  4748. INF_APPCALL_OPTIONS = 272
  4749. INF_APPTYPE = 36
  4750. INF_ASMTYPE = 38
  4751. INF_BASEADDR = 48
  4752. INF_BINPREF = 214
  4753. INF_BORDER = 213
  4754. INF_CHANGE_COUNTER = 28
  4755. INF_CMTFLAG = 212
  4756. INF_COMMENT = 203
  4757. INF_COMPILER = 256
  4758. INF_DATATYPES = 248
  4759. INF_DEMNAMES = 200
  4760. INF_END_PRIVRANGE = 168
  4761. INF_FILETYPE = 32
  4762. INF_GENFLAGS = 22
  4763. INF_HIGH_OFF = 144
  4764. INF_INDENT = 202
  4765. INF_LENXREF = 206
  4766. INF_LFLAGS = 24
  4767. INF_LISTNAMES = 201
  4768. INF_LONG_DN = 196
  4769. INF_LOW_OFF = 136
  4770. INF_MAIN = 96
  4771. INF_MARGIN = 204
  4772. INF_MAXREF = 152
  4773. INF_MAX_AUTONAME_LEN = 188
  4774. INF_MAX_EA = 112
  4775. INF_MIN_EA = 104
  4776. INF_MODEL = 257
  4777. INF_NAMELEN = 188
  4778. INF_NAMETYPE = 190
  4779. INF_NETDELTA = 176
  4780. INF_OMAX_EA = 128
  4781. INF_OMIN_EA = 120
  4782. INF_OSTYPE = 34
  4783. INF_OUTFLAGS = 208
  4784. INF_PREFFLAG = 216
  4785. INF_PROCNAME = 6
  4786. INF_REFCMTS = 186
  4787. INF_SHORT_DN = 192
  4788. INF_SIZEOF_ALGN = 261
  4789. INF_SIZEOF_BOOL = 259
  4790. INF_SIZEOF_ENUM = 260
  4791. INF_SIZEOF_INT = 258
  4792. INF_SIZEOF_LDBL = 265
  4793. INF_SIZEOF_LLONG = 264
  4794. INF_SIZEOF_LONG = 263
  4795. INF_SIZEOF_SHORT = 262
  4796. INF_SPECSEGS = 39
  4797. INF_START_CS = 64
  4798. INF_START_EA = 80
  4799. INF_START_IP = 72
  4800. INF_START_PRIVRANGE = 160
  4801. INF_START_SP = 88
  4802. INF_START_SS = 56
  4803. INF_STRLIT_BREAK = 218
  4804. INF_STRLIT_FLAGS = 217
  4805. INF_STRLIT_PREF = 224
  4806. INF_STRLIT_SERNUM = 240
  4807. INF_STRLIT_ZEROES = 219
  4808. INF_STRTYPE = 220
  4809. INF_TYPE_XREFS = 185
  4810. INF_VERSION = 4
  4811. INF_XREFNUM = 184
  4812. INF_XREFS = 187
  4813. LFLG_64BIT = 4
  4814. LFLG_COMPRESS = 1024
  4815. LFLG_DBG_NOPATH = 128
  4816. LFLG_FLAT_OFF32 = 16
  4817. LFLG_IS_DLL = 8
  4818. LFLG_KERNMODE = 2048
  4819. LFLG_MSF = 32
  4820. LFLG_PACK = 512
  4821. LFLG_PC_FLAT = 2
  4822. LFLG_PC_FPP = 1
  4823. LFLG_SNAPSHOT = 256
  4824. LFLG_WIDE_HBF = 64
  4825. LIBRARY_LOAD = 128
  4826. LIBRARY_UNLOAD = 256
  4827. LN_AUTO = 4
  4828. LN_NORMAL = 1
  4829. LN_PUBLIC = 2
  4830. LN_WEAK = 8
  4831. MAXADDR = 18374686479671623680L
  4832. MOVE_SEGM_CHUNK = -4
  4833. MOVE_SEGM_IDP = -3
  4834. MOVE_SEGM_LOADER = -5
  4835. MOVE_SEGM_ODD = -6
  4836. MOVE_SEGM_OK = 0
  4837. MOVE_SEGM_PARAM = -1
  4838. MOVE_SEGM_ROOM = -2
  4839. MSF_FIXONCE = 8
  4840. MSF_LDKEEP = 4
  4841. MSF_NOFIX = 2
  4842. MSF_SILENT = 1
  4843. MS_0TYPE = 15728640L
  4844. MS_1TYPE = 251658240L
  4845. MS_CLS = 1536L
  4846. MS_CODE = 4026531840L
  4847. MS_COMM = 1046528
  4848. MS_VAL = 255L
  4849. NEF_CODE = 256
  4850. NEF_FILL = 16
  4851. NEF_FIRST = 128
  4852. NEF_FLAT = 1024
  4853. NEF_IMPS = 32
  4854. NEF_MAN = 8
  4855. NEF_NAME = 4
  4856. NEF_RELOAD = 512
  4857. NEF_RSCS = 2
  4858. NEF_SEGS = 1
  4859. NM_EA = 6
  4860. NM_EA4 = 7
  4861. NM_EA8 = 8
  4862. NM_NAM_EA = 5
  4863. NM_NAM_OFF = 2
  4864. NM_PTR_EA = 4
  4865. NM_PTR_OFF = 1
  4866. NM_REL_EA = 3
  4867. NM_REL_OFF = 0
  4868. NM_SERIAL = 10
  4869. NM_SHORT = 9
  4870. NOTASK = -2
  4871. OFILE_ASM = 4
  4872. OFILE_DIF = 5
  4873. OFILE_EXE = 1
  4874. OFILE_IDC = 2
  4875. OFILE_LST = 3
  4876. OFILE_MAP = 0
  4877. OFLG_GEN_ASSUME = 512
  4878. OFLG_GEN_NULL = 16
  4879. OFLG_GEN_ORG = 256
  4880. OFLG_GEN_TRYBLKS = 1024
  4881. OFLG_LZERO = 128
  4882. OFLG_PREF_SEG = 64
  4883. OFLG_SHOW_AUTO = 4
  4884. OFLG_SHOW_PREF = 32
  4885. OFLG_SHOW_VOID = 2
  4886. OPND_OUTER = 128
  4887. OSTYPE_MSDOS = 1
  4888. OSTYPE_NETW = 8
  4889. OSTYPE_OS2 = 4
  4890. OSTYPE_WIN = 2
  4891. PDF_DEF_BASE = 4
  4892. PDF_DEF_FWD = 2
  4893. PDF_HEADER_CMT = 8
  4894. PDF_INCL_DEPS = 1
  4895. PREF_FNCOFF = 2
  4896. PREF_SEGADR = 1
  4897. PREF_STACK = 4
  4898. PROCESS_ATTACH = 4096
  4899. PROCESS_DETACH = 8192
  4900. PROCESS_EXIT = 2
  4901. PROCESS_START = 1
  4902. PROCESS_SUSPEND = 16384
  4903. PRTYPE_1LINE = 0
  4904. PRTYPE_MULTI = 1
  4905. PRTYPE_PRAGMA = 4
  4906. PRTYPE_TYPE = 2
  4907. PT_FILE = 1
  4908. PT_HIGH = 128
  4909. PT_LOWER = 256
  4910. PT_PAK1 = 16
  4911. PT_PAK16 = 80
  4912. PT_PAK2 = 32
  4913. PT_PAK4 = 48
  4914. PT_PAK8 = 64
  4915. PT_PAKDEF = 0
  4916. PT_SILENT = 2
  4917. REFINFO_NOBASE = 128
  4918. REFINFO_PASTEND = 32
  4919. REFINFO_RVA = 16
  4920. REFINFO_SIGNEDOP = 512
  4921. REFINFO_SUBTRACT = 256
  4922. REF_HIGH16 = 6L
  4923. REF_HIGH8 = 5L
  4924. REF_LOW16 = 4L
  4925. REF_LOW8 = 3L
  4926. REF_OFF16 = 1L
  4927. REF_OFF32 = 2L
  4928. REF_OFF64 = 9L
  4929. REF_OFF8 = 10L
  4930. REF_VHIGH = 7L
  4931. REF_VLOW = 8L
  4932. SEARCH_CASE = 4
  4933. SEARCH_DOWN = 1
  4934. SEARCH_NEXT = 2
  4935. SEARCH_NOBRK = 16
  4936. SEARCH_NOSHOW = 32
  4937. SEARCH_REGEX = 8
  4938. SEARCH_UP = 0
  4939. SEGATTR_ALIGN = 40
  4940. SEGATTR_BITNESS = 43
  4941. SEGATTR_COLOR = 188
  4942. SEGATTR_COMB = 41
  4943. SEGATTR_CS = 64
  4944. SEGATTR_DS = 80
  4945. SEGATTR_END = 8
  4946. SEGATTR_ES = 56
  4947. SEGATTR_FLAGS = 44
  4948. SEGATTR_FS = 88
  4949. SEGATTR_GS = 96
  4950. SEGATTR_ORGBASE = 32
  4951. SEGATTR_PERM = 42
  4952. SEGATTR_SEL = 48
  4953. SEGATTR_SS = 72
  4954. SEGATTR_START = 0
  4955. SEGATTR_TYPE = 184
  4956. SEGDEL_KEEP = 2
  4957. SEGDEL_PERM = 1
  4958. SEGDEL_SILENT = 4
  4959. SEGMOD_KEEP = 2
  4960. SEGMOD_KILL = 1
  4961. SEGMOD_SILENT = 4
  4962. SEG_ABSSYM = 10
  4963. SEG_BSS = 9
  4964. SEG_CODE = 2
  4965. SEG_COMM = 11
  4966. SEG_DATA = 3
  4967. SEG_GRP = 6
  4968. SEG_IMEM = 12
  4969. SEG_IMP = 4
  4970. SEG_NORM = 0
  4971. SEG_NULL = 7
  4972. SEG_UNDF = 8
  4973. SEG_XTRN = 1
  4974. SETPROC_ALL = 2
  4975. SETPROC_COMPAT = 0
  4976. SETPROC_FATAL = 1
  4977. SETPROC_IDB = 0
  4978. SETPROC_LOADER = 1
  4979. SETPROC_LOADER_NON_FATAL = 2
  4980. SETPROC_USER = 3
  4981. SFL_COMORG = 1
  4982. SFL_DEBUG = 8
  4983. SFL_HIDDEN = 4
  4984. SFL_HIDETYPE = 32
  4985. SFL_LOADER = 16
  4986. SFL_OBOK = 2
  4987. SIZE_MAX = 18446744073709551615L
  4988. SN_AUTO = 32
  4989. SN_CHECK = 0
  4990. SN_LOCAL = 512
  4991. SN_NOCHECK = 1
  4992. SN_NOLIST = 128
  4993. SN_NON_AUTO = 64
  4994. SN_NON_PUBLIC = 4
  4995. SN_NON_WEAK = 16
  4996. SN_NOWARN = 256
  4997. SN_PUBLIC = 2
  4998. SN_WEAK = 8
  4999. SR_auto = 3
  5000. SR_autostart = 4
  5001. SR_inherit = 1
  5002. SR_user = 2
  5003. STEP = 32
  5004. STRF_AUTO = 2
  5005. STRF_COMMENT = 16
  5006. STRF_GEN = 1
  5007. STRF_SAVECASE = 32
  5008. STRF_SERIAL = 4
  5009. STRLYT_PASCAL1 = 1
  5010. STRLYT_PASCAL2 = 2
  5011. STRLYT_PASCAL4 = 3
  5012. STRLYT_SHIFT = 6
  5013. STRLYT_TERMCHR = 0
  5014. STRTYPE_C = 0
  5015. STRTYPE_C16 = 1
  5016. STRTYPE_C_16 = 1
  5017. STRTYPE_C_32 = 2
  5018. STRTYPE_LEN2 = 128
  5019. STRTYPE_LEN2_16 = 129
  5020. STRTYPE_LEN4 = 192
  5021. STRTYPE_LEN4_16 = 193
  5022. STRTYPE_PASCAL = 64
  5023. STRTYPE_PASCAL_16 = 65
  5024. STRTYPE_TERMCHR = 0
  5025. STRUC_ERROR_MEMBER_NAME = -1
  5026. STRUC_ERROR_MEMBER_OFFSET = -2
  5027. STRUC_ERROR_MEMBER_SIZE = -3
  5028. STRUC_ERROR_MEMBER_STRUCT = -5
  5029. STRUC_ERROR_MEMBER_TINFO = -4
  5030. STRUC_ERROR_MEMBER_UNIVAR = -6
  5031. STRUC_ERROR_MEMBER_VARLAST = -7
  5032. STRWIDTH_1B = 0
  5033. STRWIDTH_2B = 1
  5034. STRWIDTH_4B = 2
  5035. STT_MM = 1
  5036. STT_VA = 0
  5037. ST_ALREADY_LOGGED = 4
  5038. ST_OVER_DEBUG_SEG = 1
  5039. ST_OVER_LIB_FUNC = 2
  5040. ST_SKIP_LOOPS = 8
  5041. SW_ALLCMT = 2
  5042. SW_LINNUM = 8
  5043. SW_NOCMT = 4
  5044. SW_RPTCMT = 1
  5045. SW_SEGXRF = 1
  5046. SW_XRFFNC = 4
  5047. SW_XRFMRK = 2
  5048. SW_XRFVAL = 8
  5049. SYSCALL = 1024
  5050. TEV_BPT = 4
  5051. TEV_CALL = 2
  5052. TEV_EVENT = 6
  5053. TEV_INSN = 1
  5054. TEV_MEM = 5
  5055. TEV_NONE = 0
  5056. TEV_RET = 3
  5057. THREAD_EXIT = 8
  5058. THREAD_START = 4
  5059. TINFO_DEFINITE = 1
  5060. TINFO_DELAYFUNC = 2
  5061. TINFO_GUESSED = 0
  5062. TRACE_FUNC = 2
  5063. TRACE_INSN = 1
  5064. TRACE_STEP = 0
  5065. UTP_ENUM = 0
  5066. UTP_STRUCT = 1
  5067. WFNE_ANY = 1
  5068. WFNE_CONT = 8
  5069. WFNE_NOWAIT = 16
  5070. WFNE_SILENT = 4
  5071. WFNE_SUSP = 2
  5072. WINMESSAGE = 2048
  5073. WORDMASK = 18446744073709551615L
  5074. XREF_USER = 32
  5075. __EA64__ = True
  5076. __X64__ = True
  5077. dr_I = 5
  5078. dr_O = 1
  5079. dr_R = 3
  5080. dr_T = 4
  5081. dr_W = 2
  5082. fl_CF = 16
  5083. fl_CN = 17
  5084. fl_F = 21
  5085. fl_JF = 18
  5086. fl_JN = 19
  5087. o_cond = 14L
  5088. o_crb = 12L
  5089. o_creg = 11L
  5090. o_creglist = 10L
  5091. o_crf = 11L
  5092. o_crreg = 10L
  5093. o_dbreg = 9L
  5094. o_dcr = 13L
  5095. o_displ = 4L
  5096. o_far = 6L
  5097. o_fpreg = 11L
  5098. o_fpreglist = 12L
  5099. o_idpspec0 = 8L
  5100. o_idpspec1 = 9L
  5101. o_idpspec2 = 10L
  5102. o_idpspec3 = 11L
  5103. o_idpspec4 = 12L
  5104. o_idpspec5 = 13L
  5105. o_imm = 5L
  5106. o_mem = 2L
  5107. o_mmxreg = 12L
  5108. o_near = 7L
  5109. o_phrase = 3L
  5110. o_reg = 1L
  5111. o_reglist = 9L
  5112. o_shmbme = 10L
  5113. o_spr = 8L
  5114. o_text = 13L
  5115. o_trreg = 8L
  5116. o_twofpr = 9L
  5117. o_void = 0L
  5118. o_xmmreg = 13L
  5119. saAbs = 0
  5120. saGroup = 7
  5121. saRel32Bytes = 8
  5122. saRel4K = 6
  5123. saRel64Bytes = 9
  5124. saRelByte = 1
  5125. saRelDble = 5
  5126. saRelPage = 4
  5127. saRelPara = 3
  5128. saRelQword = 10
  5129. saRelWord = 2
  5130. scCommon = 6
  5131. scPriv = 0
  5132. scPub = 2
  5133. scPub2 = 4
  5134. scPub3 = 7
  5135. scStack = 5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement