summaryrefslogtreecommitdiff
path: root/python/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/__init__.py')
-rw-r--r--python/__init__.py31
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)