| Trees | Indices | Help |
|
|---|
|
|
IDC compatibility module
This file contains IDA built-in function declarations and internal bit definitions. Each byte of the program has 32-bit flags (low 8 bits keep the byte value). These 32 bits are used in GetFlags/SetFlags functions. You may freely examine these bits using GetFlags() but the use of the SetFlags() function is strongly discouraged.
This file is subject to change without any notice. Future versions of IDA may use other definitions.
| Classes | |
|
DeprecatedIDCError Exception for deprecated function calls |
|
| Functions | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
| Function Details |
Get byte value from flags Get value of byte provided that the byte is initialized. This macro works ok only for 8-bit byte machines. |
Convert address value to a string Return address in the form 'seg000:1234' (the same as in line prefixes)
|
Rotate a value to the left (or right)
|
Add hotkey for IDC function
|
Delete IDC function hotkey
|
Move cursor to the specifed linear address
|
Process all entries in the autoanalysis queue Wait for the end of autoanalysis Note: This function will suspend execution of the calling script till the autoanalysis queue is empty. |
Compile an IDC script The input should not contain functions that are currently executing - otherwise the behaviour of the replaced functions is undefined.
|
Evaluate an IDC expression
Note: Python implementation evaluates IDC only, while IDC can call other registered languages |
Check the result of Eval() for evaluation failures
|
Save current database to the specified idb file
|
Stop execution of IDC program, close the database and exit to OS
|
Execute an OS command.
Note: IDA will wait for the started program to finish. In order to start the command in parallel, use OS methods. For example, you may start another program in parallel using "start" command. |
Sleep the specified number of milliseconds This function suspends IDA for the specified amount of time
|
Load and run a plugin
|
Load (plan to apply) a FLIRT signature file
|
Delete all segments, instructions, comments, i.e. everything except values of bytes. |
Create an instruction at the specified address
|
Perform full analysis of the area
|
Rename an address
|
Set an indented regular comment of an item
|
Set an indented repeatable comment of an item
|
Create an array.
Note: This function will create an array of the items with the same type as the type of the item at 'ea'. If the byte at 'ea' is undefined, then this function will create an array of bytes. |
Create a string. This function creates a string (the string type is determined by the value of GetLongPrm(INF_STRTYPE))
Note: The type of an existing string is returned by GetStringType() |
Create a data item at the specified address
|
Convert the current item to a byte
|
Convert the current item to a word (2 bytes)
|
Convert the current item to a double word (4 bytes)
|
Convert the current item to a quadro word (8 bytes)
|
Convert the current item to a octa word (16 bytes)
|
Convert the current item to a floating point (4 bytes)
|
Convert the current item to a double floating point (8 bytes)
|
Convert the current item to a packed real (10 or 12 bytes)
|
Convert the current item to a tbyte (10 or 12 bytes)
|
Convert the current item to a structure instance
|
Convert the item at address to custom data.
|
Convert the current item to an alignment directive
|
Create a local variable
Note: For the stack variables the end address is ignored. If there is no function at 'start' then this function. will fail. |
Convert the current item to an explored item
|
Convert the current item to an explored item
|
Set array representation format
|
Convert an operand of the item (instruction or data) to a binary number
Note: the data items use only the type of the first operand |
Convert an operand of the item (instruction or data) to an octal number
|
Convert an operand of the item (instruction or data) to a decimal number
|
Convert an operand of the item (instruction or data) to a hexadecimal number
|
|
Convert operand to an offset (for the explanations of 'ea' and 'n' please see OpBinary()) Example:seg000:2000 dw 1234h and there is a segment at paragraph 0x1000 and there is a data item within the segment at 0x1234: seg000:1234 MyString db 'Hello, world!',0 Then you need to specify a linear address of the segment base to create a proper offset: OpOff(["seg000",0x2000],0,0x10000); and you will have: seg000:2000 dw offset MyString Motorola 680x0 processor have a concept of "outer offsets". If you want to create an outer offset, you need to combine number of the operand with the following bit: Please note that the outer offsets are meaningful only for Motorola 680x0.
|
Convert operand to a complex offset expression This is a more powerful version of OpOff() function. It allows to explicitly specify the reference type (off8,off16, etc) and the expression target with a possible target delta. The complex expressions are represented by IDA in the following form: target + tdelta - base If the target is not present, then it will be calculated using target = operand_value - tdelta + base The target must be present for LOW.. and HIGH.. reference types
|
Convert operand to a segment expression
|
Convert operand to a number (with default number base, radix)
|
Convert operand to a floating-point number
|
Specify operand represenation manually.
Note: IDA will not check the specified operand, it will simply display it instead of the orginal representation of the operand. |
Change sign of the operand
|
Toggle the bitwise not operator for the operand
|
Convert operand to a symbolic constant
|
Convert operand to an offset in a structure
|
Convert operand to a stack variable
|
Convert operand to a high offset High offset is the upper 16bits of an offset. This type is used by TMS320C6 processors (and probably by other RISC processors too)
|
Mark the location as "variable"
Note: All that IDA does is to mark the location as "variable". Nothing else, no additional analysis is performed. This function may disappear in the future. |
Specify an additional line to display before the generated ones.
Note: IDA displays additional lines from number 0 up to the first unexisting additional line. So, if you specify additional line #150 and there is no additional line #149, your line will not be displayed. MAX_ITEM_LINES is defined in IDA.CFG |
Specify an additional line to display after the generated ones.
Note: IDA displays additional lines from number 0 up to the first unexisting additional line. So, if you specify additional line #150 and there is no additional line #149, your line will not be displayed. MAX_ITEM_LINES is defined in IDA.CFG |
Delete an additional anterior line
|
Delete an additional posterior line
|
Specify instruction represenation manually.
Note: IDA will not check the specified instruction, it will simply display it instead of the orginal representation. |
Get manual representation of instruction
Note: This function returns value set by SetManualInsn earlier. |
Change a byte in the debugged process memory only
|
Change value of a program byte If debugger was active then the debugged process memory will be patched too
|
Change value of a program word (2 bytes)
|
Change value of a double word
|
Set new value of flags This function should not used be used directly if possible. It changes properties of a program byte and if misused, may lead to very-very strange results.
|
Set value of a segment register.
Note: IDA keeps tracks of all the points where segment register change their values. This function allows you to specify the correct value of a segment register if IDA is not able to find the corrent value. See also SetReg() compatibility macro. |
Plan to perform an action in the future. This function will put your request to a special autoanalysis queue. Later IDA will retrieve the request from the queue and process it. There are several autoanalysis queue types. IDA will process all queries from the first queue and then switch to the second queue, etc. |
Generate an output file
|
Generate a flow chart GDL file
Note: If ea2 == BADADDR then ea1 is treated as an address within a function. That function will be flow charted. |
Generate a function call graph GDL file
|
Get IDA directory This function returns the directory where IDA.EXE resides |
Get input file name This function returns name of the file being disassembled |
Get input file path This function returns the full path of the file being disassembled |
Set input file name This function updates the file name that is stored in the database It is used by the debugger and other parts of IDA Use it when the database is moved to another location or when you use remote debugging.
|
Get IDB full path This function returns full path of the current IDB database |
Return the MD5 hash of the input binary file
|
Get internal flags
|
Get one byte (8-bit) of the program at 'ea' from the database even if the debugger is active
Note: If the current byte size is different from 8 bits, then the returned value may have more 1's. To check if a byte has a value, use this expr: hasValue(GetFlags(ea)) |
Return the specified number of bytes of the program
|
Get value of program byte
|
Get value of program byte using the debugger memory
|
Get value of program word using the debugger memory
|
Get value of program double-word using the debugger memory
|
Get value of program quadro-word using the debugger memory
|
Get original value of program byte
|
Get value of program word (2 bytes)
|
Get value of program double word (4 bytes)
|
Get value of program quadro word (8 bytes)
|
Get value of a floating point number (4 bytes)
|
Get value of a floating point number (8 bytes)
|
Get linear address of a name
|
Get linear address of a name
Note: Dummy names (like byte_xxxx where xxxx are hex digits) are parsed by this function to obtain the address. The database is not consulted for them. |
Get segment by segment base
|
Get the disassembly line at the cursor
|
Get end address of the selected area
|
Get value of segment register at the specified address
Note: The segment registers in 32bit program usually contain selectors, so to get paragraph pointed by the segment register you need to call AskSelector() function. |
Get next address in the program
|
Get previous address in the program
|
Get next defined item (instruction or data) in the program
|
Get previous defined item (instruction or data) in the program
|
Get next not-tail address in the program This function searches for the next displayable address in the program. The tail bytes of instructions and data are not displayable.
|
Get previous not-tail address in the program This function searches for the previous displayable address in the program. The tail bytes of instructions and data are not displayable.
|
Get starting address of the item (instruction or data)
|
Get address of the end of the item (instruction or data)
|
Get size of instruction or data item in bytes
|
Get visible name of program byte This function returns name of byte as it is displayed on the screen. If a name contains illegal characters, IDA replaces them by the substitution character during displaying. See IDA.CFG for the definition of the substitution character.
|
Get true name of program byte This function returns name of byte as is without any replacements.
|
Demangle a name
|
Get disassembly line
Note: this function may not return exactly the same mnemonics as you see on the screen. |
Get instruction mnemonics
Note: this function may not return exactly the same mnemonics as you see on the screen. |
Get operand of an instruction
|
Get type of instruction operand
|
Get number used in the operand This function returns an immediate number used in the operand
|
Get anterior line
|
Get posterior line
|
Get regular indented comment
|
Get manually entered operand string
|
Get string contents
|
Get string type
|
|
Note: Example: "41 42" - find 2 bytes 41h,42h (radix is 16) |
Parse one or more ida.cfg config directives
Note: If the directives are erroneous, a fatal error will be generated. The changes will be effective only for the current session. |
Change current processor
|
Enable/disable batch mode of operation
|
Ask the user to enter a string
|
Ask the user to choose a file
|
Ask the user to enter an address
|
Ask the user to enter a number
|
Invokes an IDA UI action by name
|
Ask the user to enter a segment value
|
Ask the user to enter an identifier
|
Ask the user a question and let him answer Yes/No/Cancel
|
Display a message in the message window
|
Display a message in a message box
|
Display a fatal message in a message box and quit IDA
|
Change IDA indicator.
|
Get a selector value
Note: selector values are always in paragraphs |
Find a selector which has the specifed value
Note: selector values are always in paragraphs |
Set a selector value
Note: ida supports up to 4096 selectors. if 'sel' == 'val' then the selector is destroyed because it has no significance |
Delete a selector
Note: if the selector is found, it will be deleted |
Get first segment
|
Get next segment
|
Get start address of a segment
|
Get end address of a segment
|
Get name of a segment
|
Create a new segment
|
Delete a segment
|
Change segment boundaries
|
Change name of the segment
|
Change class of the segment
|
Change alignment of the segment
|
Change combination of the segment
|
Change segment addressing
|
Get segment by name
|
Set default segment register value for a segment
|
Set segment type
|
Get segment attribute
|
Set segment attribute
Note: Please note that not all segment attributes are modifiable. Also some of them should be modified using special functions like SetSegAddressing, etc. |
Move a segment to a new address This function moves all information to the new address It fixes up address sensitive information in the kernel The total effect is equal to reloading the segment to the target address
|
Rebase the whole program by 'delta' bytes
|
Set storage type
|
Unmark exec flow 'from' 'to'
|
Return type of the last xref obtained by [RD]first/next[B0] functions.
|
Load file into IDA database
|
Save from IDA database to file
|
Create a function
Note: an instruction should be present at the start address |
Delete a function
|
Change function end address
|
Find next function
|
Find previous function
|
Get a function attribute
|
Set a function attribute
|
Retrieve function flags
|
Change function flags
|
Retrieve function name
|
Retrieve function comment
|
Set function comment
|
Ask the user to select a function Arguments:
|
Convert address to 'funcname+offset' string
|
Determine a new function boundaries
|
Get ID of function frame structure
|
Get size of local variables in function frame
|
Get size of saved registers in function frame
|
Get size of arguments in function frame which are purged upon return
|
Get full size of function frame
|
Make function frame
|
Get current delta for the stack pointer
|
Get modification of SP made by the instruction
|
Setup modification of SP made by the instruction
|
Retrieve number of entry points
|
Add entry point
|
Retrieve entry point ordinal number
|
Retrieve entry point address
|
Retrieve entry point name
|
Rename entry point
|
Find next address with fixup information
|
Find previous address with fixup information
|
Get fixup target type
|
Get fixup target selector
|
Get fixup target offset
|
Get fixup target displacement
|
Set fixup information
|
Delete fixup information
|
Mark position
|
Get marked position
|
Get marked position comment
|
Get number of defined structure types
|
Get index of first structure type
|
Get index of last structure type
|
Get index of next structure type
|
Get index of previous structure type
|
Get structure index by structure ID
|
Get structure ID by structure index
Note: See GetFirstStrucIdx() for the explanation of structure indices and IDs. |
Get structure ID by structure name
|
Get structure type name
|
Get structure type comment
|
Get size of a structure
|
Get number of members of a structure
Note: Union members are, in IDA's internals, located at subsequent byte offsets: member 0 -> offset 0x0, member 1 -> offset 0x1, etc... |
Get previous offset in a structure
Notes:
|
Get next offset in a structure
Notes:
|
Get offset of the first member of a structure
Notes:
|
Get offset of the last member of a structure
Notes:
|
Get offset of a member of a structure by the member name
Note: Union members are, in IDA's internals, located at subsequent byte offsets: member 0 -> offset 0x0, member 1 -> offset 0x1, etc... |
Get name of a member of a structure
|
Get comment of a member
|
Get size of a member
|
Get type of a member
|
Get structure id of a member
|
Is a structure a union?
Note: Unions are a special kind of structures |
Define a new structure type
|
Delete a structure type
|
Change structure index
Note: See GetFirstStrucIdx() for the explanation of structure indices and IDs. |
Change structure name
|
Change structure comment
|
Add structure member
Note: The remaining arguments are allowed only if isOff0(flag) and you want to specify a complex offset expression |
Delete structure member
Note: IDA allows 'holes' between members of a structure. It treats these 'holes' as unnamed arrays of bytes. |
Change structure member name
|
Change structure member type
Note: The remaining arguments are allowed only if isOff0(flag) and you want to specify a complex offset expression |
Change structure member comment
|
Get a function chunk attribute
|
Set a function chunk attribute
|
Get a function chunk referer
|
Get next function chunk
Note: This function enumerates all chunks of all functions in the database |
Get previous function chunk
Note: This function enumerates all chunks of all functions in the database |
Append a function chunk to the function
Note: If a chunk exists at the specified addresses, it must have exactly the specified boundaries |
Remove a function chunk from the function
|
Change the function chunk owner
Note: The new owner must already have the chunk appended before the call |
Get the first function chunk of the specified function
Note: This function returns the first (main) chunk of the specified function |
Get the next function chunk of the specified function
Note: This function returns the next chunk of the specified function |
Get number of enum types
|
Get ID of the specified enum by its serial number
|
Get serial number of enum by its ID
|
Get enum ID by the name of enum Arguments: name - name of enum returns: ID of enum or -1 if no such enum exists |
Get name of enum
|
Get comment of enum
|
Get size of enum
|
Get width of enum elements
|
Get flag of enum
|
Get member of enum - a symbolic constant ID
|
Get value of symbolic constant
|
Get bit mask of symbolic constant
|
Get id of enum by id of constant
|
Get id of constant
|
Get first bitmask in the enum (bitfield)
|
Get last bitmask in the enum (bitfield)
|
Get next bitmask in the enum (bitfield)
|
Get prev bitmask in the enum (bitfield)
|
Get bitmask name (only for bitfields)
|
Get bitmask comment (only for bitfields)
|
Set bitmask name (only for bitfields)
|
Set bitmask comment (only for bitfields)
|
Get first constant in the enum
|
Get last constant in the enum
|
Get next constant in the enum
|
Get prev constant in the enum
|
Get name of a constant
|
Get comment of a constant
|
Add a new enum type
|
Delete enum type
|
Give another serial number to a enum
|
Rename enum
|
Set comment of enum
|
Set flag of enum
|
Set bitfield property of enum
|
Set width of enum elements
|
Is enum a bitfield?
|
Add a member of enum - a symbolic constant
|
Delete a member of enum - a symbolic constant
|
Rename a member of enum - a symbolic constant
|
Set a comment of a symbolic constant
|
Create array.
|
Get array array_id, by name.
|
Rename array, by its ID.
|
Delete array, by its ID.
|
Sets the long value of an array element.
|
Sets the string value of an array element.
|
Get value of array element.
|
Delete an array element.
|
Get index of the first existing array element.
|
Get index of last existing array element.
|
Get index of the next existing array element.
|
Get index of the previous existing array element.
|
Sets the long value of a hash element.
|
Gets the long value of a hash element.
|
Sets the string value of a hash element.
|
Gets the string value of a hash element.
|
Delete a hash element.
|
Get the first key in the hash.
|
Get the last key in the hash.
|
Get the next key in the hash.
|
Get the previous key in the hash.
|
Mark a range of address as belonging to a source file An address range may belong only to one source file. A source file may be represented by several address ranges.
Note: IDA can keep information about source files used to create the program. Each source file is represented by a range of addresses. A source file may contains several address ranges. |
Get name of source file occupying the given address
|
Delete information about the source file
|
Set source line number
|
Get source line number
|
Delete information about source line number
|
Load a type library
|
Copy information from type library to database Copy structure, union, or enum definition from the type library to the IDA database.
|
Get type of function/variable
|
Returns the size of the type. It is equivalent to IDC's sizeof(). Use name, tp, fld = idc.ParseType() ; Sizeof(fld) to retrieve the size
|
Guess type of function/variable
|
Set type of function/variable
|
Parse type declaration
|
Parse type declarations
|
Get number of local types + 1
|
Parse one type declaration and store it in the specified slot
|
Retrieve a local type declaration
Note: This function can return types strings up to 64KiB. Use idaapi.idc_get_local_type() for larger types. |
Retrieve a local type name
|
Hide an area Hidden areas - address ranges which can be replaced by their descriptions
|
Set hidden area state
|
Delete a hidden area
|
Load the debugger
Note: This function is needed only when running idc scripts from the command line. In other cases IDA loads the debugger module automatically. |
Launch the debugger
Note: For all args: if empty, the default value from the database will be used See the important note to the StepInto() function |
Stop the debugger Kills the currently debugger process and returns to the disassembly mode
|
Suspend the running process Tries to suspend the process. If successful, the PROCESS_SUSPEND debug event will arrive (see GetDebuggerEvent)
Note: To resume a suspended process use the GetDebuggerEvent function. See the important note to the StepInto() function |
Get the process ID of a running process
|
Get the name of a running process
|
Attach the debugger to a running process
Note: See the important note to the StepInto() function |
Detach the debugger from the debugged process.
|
Get number of threads.
|
Get the ID of a thread
|
Get current thread ID
|
Select the given thread as the current debugged thread.
Note: The process must be suspended to select a new thread. |
Suspend thread
Note: Suspending a thread may deadlock the whole application if the suspended was owning some synchronization objects. |
Resume thread
|
Enumerate process modules
|
Enumerate process modules
|
Get process module name
|
Get process module size
|
Execute one instruction in the current thread. Other threads are kept suspended.
Note: You must call GetDebuggerEvent() after this call in order to find out what happened. Normally you will get the STEP event but other events are possible (for example, an exception might occur or the process might exit). This remark applies to all execution control functions. The event codes depend on the issued command. |
Execute one instruction in the current thread, but without entering into functions Others threads keep suspended. See the important note to the StepInto() function
|
Execute the process until the given address is reached. If no process is active, a new process is started. See the important note to the StepInto() function
|
Execute instructions in the current thread until a function return instruction is reached. Other threads are kept suspended. See the important note to the StepInto() function
|
Wait for the next event This function (optionally) resumes the process execution and wait for a debugger event until timeout
|
Sends a command to the debugger module and returns the output string. An exception will be raised if the debugger is not running or the current debugger does not export the 'SendDbgCommand' IDC command. |
Refresh debugger memory Upon this call IDA will forget all cached information about the debugged process. This includes the segmentation information and memory contents (register cache is managed automatically). Also, this function refreshes exported name from loaded DLLs. You must call this function before using the segmentation information, memory contents, or names of a non-suspended process. This is an expensive call. |
Take memory snapshot of the debugged process
|
Get debugged process state
|
Get ID of debug event
|
Get process ID for debug event
|
Get type ID for debug event
|
Get ea for debug event
|
Is the debug event handled?
|
Get module name for debug event
|
Get module base for debug event
|
Get module size for debug event
|
Get exit code for debug event
|
Get debug event info
|
Get hardware address for BREAKPOINT event
|
Get exception code for EXCEPTION event
|
Get address for EXCEPTION event
|
Can it continue after EXCEPTION event?
|
Get info for EXCEPTION event
|
Get/set debugger options
|
Set remote debugging options
|
Get exception code
|
Get exception information
|
Get exception information
|
Add exception handling information
|
Set exception flags
|
Delete exception handling information
|
Get register value
Note: The debugger should be running. otherwise the function fails the register name should be valid. It is not necessary to use this function to get register values because a register name in the script will do too. |
Set register value
Note: The debugger should be running It is not necessary to use this function to set register values. A register name in the left side of an assignment will do too. |
Get number of breakpoints.
|
Get breakpoint address
|
Get the characteristics of a breakpoint
|
modifiable characteristics of a breakpoint
|
Set breakpoint condition
|
Add a new breakpoint
Note: Only one breakpoint can exist at a given address. |
Delete breakpoint
|
Enable/disable breakpoint
Note: Disabled breakpoints are not written to the process memory |
Check a breakpoint
|
Enable step tracing
|
Get item color
|
Set item color
|
Set or update one or more XML values.
|
Get one XML value.
|
Some ARM compilers in Thumb mode use BL (branch-and-link) instead of B (branch) for long jumps, since BL has more range. By default, IDA tries to determine if BL is a jump or a call. You can override IDA's decision using commands in Edit/Other menu (Force BL call/Force BL jump) or the following two functions. Force BL instruction to be a jump
|
Force BL instruction to be a call
|
Begin type updating. Use this function if you plan to call AddEnumConst or similar type modification functions many times or from inside a loop
|
End type updating. Refreshes the type system at the end of type modification operations
|
| Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Mon Mar 05 14:43:02 2012 | http://epydoc.sourceforge.net |