class documentation

class LogicalAddress(_AbstractAddress):

View In Hierarchy

Representation of a logical address based on a segment register.

Examples

>>> addr = address.LogicalAddress(0xfffff800c99455b0)
>>> hex(addr.offset)
'0xfffff800c99455b0'
>>> print(addr)
ds:0xfffff800c99455b0
Method __hash__ Returns the hash for this value.
Method __init__ Initializes a LogicalAddress from an offset and a segment register.
Method __repr__ Undocumented
Method __str__ Returns the nicely printable string representation of this instance.
Method translate Translates this virtual address to a physical address, if it is mapped at the specified context.
Property segment_register Property: The segment register of the logical address.
Method _address_data Undocumented
Method _is_comparable Whether two address objects are comparable or not.
Method _pack Pack a LogicalAddress to its high level representation.
Method _pack_segment_register Undocumented
Instance Variable _segment_register Undocumented

Inherited from _AbstractAddress:

Method __add__ Undocumented
Method __and__ Undocumented
Method __eq__ Compares the instance for equality with an object.
Method __ge__ Undocumented
Method __gt__ Undocumented
Method __iadd__ Undocumented
Method __iand__ Undocumented
Method __ior__ Undocumented
Method __isub__ Undocumented
Method __le__ Undocumented
Method __lt__ Undocumented
Method __ne__ Compares the instance for equality with an object.
Method __or__ Undocumented
Method __sub__ Undocumented
Method format_as_html This method gets an html formatting string representation for this class instance.
Method offset.setter Undocumented
Property offset Property: The offset of the address.
Class Method _unique_id Undocumented
Static Method _unpack Unpack a low level representation of an address to its high level representation.
Static Method _unpack_segment_register Undocumented
Method _repr_html_ Representation used by Jupyter Notebook when an instance of the address classes is displayed in a cell.
Class Variable _unique_count Undocumented
Instance Variable _formatter Undocumented
Instance Variable _offset Undocumented
def __hash__(self):

Returns the hash for this value.

Returns
intUndocumented
def __init__(self, offset, segment_register=None, formatter=None):

Initializes a LogicalAddress from an offset and a segment register.

If the segment register is set to None, arch.x64.ds is used as segment register to initialize the logical address.

Examples

>>> print(address.LogicalAddress(0x10))
ds:0x10
>>> print(address.LogicalAddress(256))
ds:0x100
>>> print(address.LogicalAddress(0xfffff800c99455b0))
ds:0xfffff800c99455b0
>>> print(address.LogicalAddress(0xfffff800c99455b0, arch.x64.cs))
cs:0xfffff800c99455b0

Information

Parameters
offset:integerThe offset of the logical address.
segment_register:arch.register.RegisterThe segment register of the logical address.
formatter:FormatterThe formatter for this address
Raises
TypeErrorif `offset` is not an integer or `segment_register` is not a arch.register.Register.
ValueErrorif `offset` can not be converted to an integer or `segment_register` is not a segment register.
def __repr__(self):

Undocumented

Returns
strUndocumented
def __str__(self):

Returns the nicely printable string representation of this instance.

Returns
strUndocumented
def translate(self, context):

Translates this virtual address to a physical address, if it is mapped at the specified context.

Information

Parameters
context:_ContextThe reven2.trace.Context at which the translation should be attempted
Returns
_Optional[PhysicalAddress]A PhysicalAddress if the current virtual address is mapped at the specified context, otherwise None
@property
segment_register: _register.Register =

Property: The segment register of the logical address.

Examples

>>> address.LogicalAddress(0xfffff800c99455b0).segment_register
Register(x64.ds)
>>> address.LogicalAddress(0xfffff800c99455b0, arch.x64.cs).segment_register
Register(x64.cs)

Information

Returns
A arch.register.Register.
def _address_data(self):
def _is_comparable(self, other):

Whether two address objects are comparable or not.

Parameters
other:_AnyUndocumented
Returns
boolUndocumented
def _pack(self):

Pack a LogicalAddress to its high level representation.

Information

Returns
_reven_api.VirtualAddressA reven_api.VirtualAddress.
def _pack_segment_register(self):

Undocumented

Returns
_reven_api.SegmentRegisterUndocumented
_segment_register =

Undocumented