diff options
| author | Brandon Miller <brandon@vector35.com> | 2025-05-28 08:33:30 -0400 |
|---|---|---|
| committer | Brandon Miller <brandon@vector35.com> | 2025-05-28 08:33:30 -0400 |
| commit | 6e4c00a80fa86bcfefba9630a1ea8e2a47bef2de (patch) | |
| tree | 94f891149263fe089d747c4baba7d20a80a7750b /python/platform.py | |
| parent | b13d50bac18c341b98e6a3002ac9f17f6c8a8df4 (diff) | |
Support for Linux x86-64 x32 ABI
Diffstat (limited to 'python/platform.py')
| -rw-r--r-- | python/platform.py | 12 |
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]: |
