class documentation
class Location:
Useful OSSI information related to an address, such as the nearest symbol or the base address.
Warnings
Must not be directly constructed but retrieved through the following examples.
Examples
>>> # From a Transition >>> transition.context_before().ossi.location(addr) # from the context before the transition >>> transition.context_after().ossi.location(addr) # from the context after the transition
>>> # From a Context >>> context.ossi.location() # from the current value in the pc register >>> context.ossi.location(addr) # from an address
Method | __eq__ |
Compares the instance for equality with an object. |
Method | __hash__ |
Returns the hash for this value. |
Method | __init__ |
Undocumented |
Method | __ne__ |
Compares the instance for inequality with an object. |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Property | address |
Property: The address in memory. |
Property | base |
Property: The address where the binary is loaded in memory (aka base address). |
Property | binary |
Property: The related binary. |
Property | rva |
Property: The relative virtual address (rva) inside the binary. |
Property | symbol |
Property: The nearest symbol, if exists. |
Property | symbol |
Property: The offset from the begining of the nearest symbol. |
Instance Variable | _datasource |
Undocumented |
Instance Variable | _symbol |
Undocumented |
def __eq__(self, o):
Compares the instance for equality with an object.
- if the object is not a
Location
, will return False.
Parameters | |
o:object | Undocumented |
Returns | |
bool | Undocumented |
def __init__(self, _datasource, _symbol_context):
Undocumented
Parameters | |
_datasource:DataSource | Undocumented |
_symbol_reven_api.SymbolContext | Undocumented |
def __ne__(self, o):
Compares the instance for inequality with an object.
- If the object is not a
Location
, will return True.
Parameters | |
o:object | Undocumented |
Returns | |
bool | Undocumented |
@property
address:
address:
int
=
Property: The address in memory.
Examples
>>> hex(location.address) '0xfffff800c99455b0'
Information
Returns | |
An integer. |
@property
base_address:
base_address:
int
=
Property: The address where the binary is loaded in memory (aka base address).
Examples
>>> hex(location.base_address) '0xfffff800c9801000'
Information
Returns | |
An integer. |
Property: The related binary.
Examples
>>> print(location.binary) 'c:/windows/system32/ntoskrnl.exe'
Information
Returns | |
A Binary . |
@property
rva:
rva:
int
=
Property: The relative virtual address (rva) inside the binary.
The rva is the offset from the base address of the binary loaded in memory.
Examples
>>> hex(symbol.rva) '0x1445b0'
Information
Returns | |
An integer. |
Property: The nearest symbol, if exists.
If the location is not linked to a symbol, None is returned.
Examples
>>> location.symbol.name 'KiIsrLinkage' >>> hex(location.symbol.rva) '0x1445a0' >>> print(location.symbol) 'ntoskrnl!KiIsrLinkage'
Information
Returns | |
A Symbol or None |