summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorBrandon Miller <brandon@vector35.com>2025-05-28 08:33:30 -0400
committerBrandon Miller <brandon@vector35.com>2025-05-28 08:33:30 -0400
commit6e4c00a80fa86bcfefba9630a1ea8e2a47bef2de (patch)
tree94f891149263fe089d747c4baba7d20a80a7750b /python
parentb13d50bac18c341b98e6a3002ac9f17f6c8a8df4 (diff)
Support for Linux x86-64 x32 ABI
Diffstat (limited to 'python')
-rw-r--r--python/platform.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/python/platform.py b/python/platform.py
index d7cdabe8..29eb81b0 100644
--- a/python/platform.py
+++ b/python/platform.py
@@ -113,6 +113,7 @@ class Platform(metaclass=_PlatformMetaClass):
self._cb.getGlobalRegisters = self._cb.getGlobalRegisters.__class__(self._get_global_regs)
self._cb.freeRegisterList = self._cb.freeRegisterList.__class__(self._free_register_list)
self._cb.getGlobalRegisterType = self._cb.getGlobalRegisterType.__class__(self._get_global_reg_type)
+ self._cb.getAddressSize = self._cb.getAddressSize.__class__(self._get_address_size)
self._cb.adjustTypeParserInput = self._cb.adjustTypeParserInput.__class__(self._adjust_type_parser_input)
self._cb.freeTypeParserInput = self._cb.freeTypeParserInput.__class__(self._free_type_parser_input)
self._pending_reg_lists = {}
@@ -149,6 +150,7 @@ class Platform(metaclass=_PlatformMetaClass):
self.handle: ctypes.POINTER(core.BNPlatform) = _handle
self._arch = _arch
self._name = None
+ self._address_size = core.BNGetPlatformAddressSize(_handle)
def _init(self, ctxt):
pass
@@ -196,6 +198,12 @@ class Platform(metaclass=_PlatformMetaClass):
log_error(traceback.format_exc())
return None
+ def _get_address_size(self, ctxt):
+ try:
+ return self.address_size
+ except:
+ return self.arch.address_size
+
def _adjust_type_parser_input(
self,
ctxt,
@@ -328,6 +336,10 @@ class Platform(metaclass=_PlatformMetaClass):
self._name = core.BNGetPlatformName(self.handle)
return self._name
+ @property
+ def address_size(self) -> int:
+ return self._address_size
+
@classmethod
@property
def os_list(cls) -> List[str]: