Trees | Indices | Help |
|
---|
|
IDA Plugin SDK API wrapper: segment
Classes | |
lock_segment Proxy of C++ lock_segment class. |
|
segment_t Proxy of C++ segment_t class. |
Functions | |||
bool |
|
||
bool |
|
||
bool |
|
||
sel_t |
|
||
int |
|
||
bool |
|
||
|
|||
|
|||
sel_t |
|
||
sel_t |
|
||
sel_t |
|
||
segment_t |
|
||
sel_t |
|
||
segment_t |
|
||
segment_t |
|
||
segment_t |
|
||
ea_t |
|
||
segment_t |
|
||
segment_t |
|
||
str |
|
||
str |
|
||
int |
|
||
ea_t |
|
||
int |
|
||
char const * |
|
||
str |
|
||
char const * |
|
||
ssize_t |
|
||
int |
|
||
str |
|
||
bool |
|
||
segment_t |
|
||
segment_t |
|
||
bool |
|
||
bool |
|
||
bool |
|
||
bool |
|
||
bool |
|
||
bool |
|
||
|
|||
int |
|
||
bool |
|
||
int |
|
||
adiff_t |
|
||
ea_t |
|
||
uchar |
|
||
ea_t |
|
||
ea_t |
|
||
|
|||
int |
|
||
bool |
|
||
bool |
|
||
int |
|
||
bool |
|
||
int |
|
||
bool |
|
||
|
|||
bool |
|
||
int |
|
||
|
|||
sel_t |
|
||
|
|||
bool |
|
||
bool |
|
Function Details |
Add a new segment, second form. Segment alignment is set to 'saRelByte' . Segment combination is "public" or "stack" (if segment class is "STACK"). Addressing mode of segment is taken as default (16bit or 32bit). Default segment registers are set to 'BADSEL' . If a segment already exists at the specified range of addresses, this segment will be truncated. Instructions and data in the old segment will be deleted if the new segment has another addressing mode or another segment base address.
|
Add a new segment. If a segment already exists at the specified range of addresses, this segment will be truncated. Instructions and data in the old segment will be deleted if the new segment has another addressing mode or another segment base address.
|
Add segment translation.
|
Allocate a selector for a segment unconditionally. You must call this function before calling 'add_segm_ex()' . 'add_segm()' calls this function itself, so you don't need to allocate a selector. This function will allocate a new free selector and setup its mapping using 'find_free_selector()' and 'set_selector()' functions.
|
Convert a debugger segment to a regular segment and vice versa. When converting debug->regular, the memory contents will be copied to the database.
|
Delete a segment.
|
Delete the translation list
|
Delete mapping of a selector. Be wary of deleting selectors that are being used in the program, this can make a mess in the segments.
|
Find first unused selector.
|
Find a selector that has mapping to the specified paragraph.
|
Get common selector for a group of segments.
|
Get pointer to the next segment.
|
Get pointer to the previous segment.
|
Get segment base linear address. Segment base linear address is used to calculate virtual addresses. The virtual address of the first byte of the segment will be (start address of segment - segment base linear address)
|
Get pointer to segment by its name. If there are several segments with the same name, returns the first of them.
|
Get pointer to segment structure. This function finds a segment by its selector. If there are several segments with the same selectors, the last one will be returned.
|
Get segment class. Segment class is arbitrary text (max 8 characters).
|
Get true segment name by pointer to segment.
|
Get number of segment by address.
|
Get segment base paragraph. Segment base paragraph may be converted to segment base linear address using 'to_ea()' function. In fact, to_ea(get_segm_para(s), 0) == get_segm_base(s).
|
Get text representation of segment alignment code.
|
Get segment comment.
|
Get text representation of segment combination code.
|
Get segment translation list.
|
Get segment name by pointer to segment.
|
Get description of selector (0.. 'get_selector_qty()' -1)
|
Get pointer to segment by its number.Obsoleted because it can slow down the debugger (it has to refresh the whole memory segmentation to calculate the correct answer)
|
Get pointer to segment by linear address.
|
See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' .
|
Is the database a miniidb created by the debugger?.
|
Is a segment pointer locked?
|
Does the address belong to a segment with a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' )
|
Has segment a special type?. ( 'SEG_XTRN' , 'SEG_GRP' , 'SEG_ABSSYM' , 'SEG_COMM' )
|
See 'SFL_HIDDEN' .
|
Lock segment pointer Locked pointers are guaranteed to remain valid until they are unlocked. Ranges with locked pointers cannot be deleted or moved.
|
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. For the file format dependent address sensitive information, 'loader_t::move_segm' is called. Also IDB notification event 'idb_event::segm_moved' is called.
|
Move segment start. The main difference between this function and 'set_segm_start()' is that this function may expand the previous segment while 'set_segm_start()' never does it. So, this function allows to change bounds of two segments simultaneously. If the previous segment and the specified segment have the same addressing mode and segment base, then instructions and data are not destroyed - they simply move from one segment to another. Otherwise all instructions/data which migrate from one segment to another are destroyed.this function never disables addresses.
|
Rebase the whole program by 'delta' bytes.
|
Truncate and sign extend a delta depending on the segment.
|
Truncate an address depending on the segment.
|
Get segment type.
|
Get mapping of a selector as a linear address.
|
Get mapping of a selector.
|
Initialize groups. The kernel calls this function at the start of work.Create a new group of segments (used OMF files).
|
Change segment addressing mode (16, 32, 64 bits). You must use this function to change segment addressing, never change the 'bitness' field directly. This function will delete all instructions, comments and names in the segment
|
Internal function.
|
Set segment class.
|
Set segment end address. The next segment is shrinked to allow expansion of the specified segment. The kernel might even delete the next segment if necessary. The kernel will ask the user for a permission to destroy instructions or data going out of segment scope if such instructions exist.
|
Rename segment. The new name is validated (see validate_name). A segment always has a name. If you hadn't specified a name, the kernel will assign it "seg###" name where ### is segment number.
|
Set segment start address. The previous segment is trimmed to allow expansion of the specified segment. The kernel might even delete the previous segment if necessary. The kernel will ask the user for a permission to destroy instructions or data going out of segment scope if such instructions exist.
|
Set segment comment.
|
Set new translation list.
|
Set mapping of selector to a paragraph. You should call this functionbeforecreating a segment which uses the selector, otherwise the creation of the segment will fail.
|
See 'SFL_HIDDEN' .
|
Allocate a selector for a segment if necessary. You must call this function before calling 'add_segm_ex()' . 'add_segm()' calls this function itself, so you don't need to allocate a selector. This function will allocate a selector if 'segbase' requires more than 16 bits and the current processor is IBM PC. Otherwise it will return the segbase value.
|
Generate segment footer line as a comment line. This function may be used in IDP modules to generate segment footer if the target assembler doesn't have 'ends' directive.
|
Take a memory snapshot of the running process.
|
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Fri Oct 11 15:05:11 2019 | http://epydoc.sourceforge.net |