diff options
Diffstat (limited to 'python/__init__.py')
| -rw-r--r-- | python/__init__.py | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/python/__init__.py b/python/__init__.py index af5e0b55..70267678 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -243,7 +243,7 @@ class FileMetadata(object): del cls._associated_data[handle.value] @classmethod - def set_default_data(cls, name, value): + def set_default_session_data(cls, name, value): _FileMetadataAssociatedDataStore.set_default(name, value) @property @@ -324,7 +324,7 @@ class FileMetadata(object): self.nav = value @property - def data(self): + def session_data(self): """Dictionary object where plugins can store arbitrary data associated with the file""" handle = ctypes.cast(self.handle, ctypes.c_void_p) if handle.value not in FileMetadata._associated_data: @@ -1156,7 +1156,7 @@ class BinaryView(object): del cls._associated_data[handle.value] @classmethod - def set_default_data(cls, name, value): + def set_default_session_data(cls, name, value): _BinaryViewAssociatedDataStore.set_default(name, value) def __del__(self): @@ -1415,7 +1415,7 @@ class BinaryView(object): return result @property - def data(self): + def session_data(self): """Dictionary object where plugins can store arbitrary data associated with the view""" handle = ctypes.cast(self.handle, ctypes.c_void_p) if handle.value not in BinaryView._associated_data: @@ -4320,6 +4320,10 @@ class Type(object): return Type(core.BNCreateUnknownType(unknown_type.handle)) @classmethod + def unknown_type(self, s): + return Type(core.BNCreateUnknownType(s.handle)) + + @classmethod def enumeration_type(self, arch, e, width = None): if width is None: width = arch.default_int_size @@ -4754,7 +4758,7 @@ class Function(object): del cls._associated_data[handle.value] @classmethod - def set_default_data(cls, name, value): + def set_default_session_data(cls, name, value): _FunctionAssociatedDataStore.set_default(name, value) @property @@ -4882,7 +4886,7 @@ class Function(object): return result @property - def data(self): + def session_data(self): """Dictionary object where plugins can store arbitrary data associated with the function""" handle = ctypes.cast(self.handle, ctypes.c_void_p) if handle.value not in Function._associated_data: @@ -11008,6 +11012,21 @@ def demangle_ms(arch, mangled_name): names.append(outName[i]) #core.BNFreeDemangledName(outName.value, outSize.value) return (Type(handle), names) + return (None, mangledName) + + +def demangle_gnu3(arch, mangledName): + handle = ctypes.POINTER(core.BNType)() + outName = ctypes.POINTER(ctypes.c_char_p)() + outSize = ctypes.c_ulonglong() + names = [] + if core.BNDemangleGNU3(arch.handle, mangledName, ctypes.byref(handle), ctypes.byref(outName), ctypes.byref(outSize)): + for i in xrange(outSize.value): + names.append(outName[i]) + #core.BNFreeDemangledName(outName.value, outSize.value) + if not handle: + return (None, names) + return (Type(handle), names) return (None, mangled_name) |
