summaryrefslogtreecommitdiff
path: root/plugins/warp/api/python/_warpcore.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/warp/api/python/_warpcore.py')
-rw-r--r--plugins/warp/api/python/_warpcore.py1123
1 files changed, 0 insertions, 1123 deletions
diff --git a/plugins/warp/api/python/_warpcore.py b/plugins/warp/api/python/_warpcore.py
deleted file mode 100644
index da262f18..00000000
--- a/plugins/warp/api/python/_warpcore.py
+++ /dev/null
@@ -1,1123 +0,0 @@
-import binaryninja
-import ctypes, os
-
-from typing import Optional
-from . import warp_enums
-# Load core module
-import platform
-core = None
-core_platform = platform.system()
-
-from binaryninja import Settings
-if Settings().get_bool("corePlugins.warp"):
- from binaryninja._binaryninjacore import BNGetBundledPluginDirectory
- if core_platform == "Darwin":
- _base_path = BNGetBundledPluginDirectory()
- core = ctypes.CDLL(os.path.join(_base_path, "libwarp_ninja.dylib"))
-
- elif core_platform == "Linux":
- _base_path = BNGetBundledPluginDirectory()
- core = ctypes.CDLL(os.path.join(_base_path, "libwarp_ninja.so"))
-
- elif (core_platform == "Windows") or (core_platform.find("CYGWIN_NT") == 0):
- _base_path = BNGetBundledPluginDirectory()
- core = ctypes.CDLL(os.path.join(_base_path, "warp_ninja.dll"))
- else:
- raise Exception("OS not supported")
-else:
- from binaryninja._binaryninjacore import BNGetUserPluginDirectory
- if core_platform == "Darwin":
- _base_path = BNGetUserPluginDirectory()
- core = ctypes.CDLL(os.path.join(_base_path, "libwarp_ninja.dylib"))
-
- elif core_platform == "Linux":
- _base_path = BNGetUserPluginDirectory()
- core = ctypes.CDLL(os.path.join(_base_path, "libwarp_ninja.so"))
-
- elif (core_platform == "Windows") or (core_platform.find("CYGWIN_NT") == 0):
- _base_path = BNGetUserPluginDirectory()
- core = ctypes.CDLL(os.path.join(_base_path, "warp_ninja.dll"))
- else:
- raise Exception("OS not supported")
-
-def cstr(var) -> Optional[ctypes.c_char_p]:
- if var is None:
- return None
- if isinstance(var, bytes):
- return var
- return var.encode("utf-8")
-
-def pyNativeStr(arg):
- if isinstance(arg, str):
- return arg
- else:
- return arg.decode('utf8')
-
-def free_string(value:ctypes.c_char_p) -> None:
- BNFreeString(ctypes.cast(value, ctypes.POINTER(ctypes.c_byte)))
-
-from binaryninja._binaryninjacore import BNFreeString
-# Type definitions
-from binaryninja._binaryninjacore import BNArchitecture, BNArchitectureHandle
-from binaryninja._binaryninjacore import BNBasicBlock, BNBasicBlockHandle
-from binaryninja._binaryninjacore import BNBinaryView, BNBinaryViewHandle
-from binaryninja._binaryninjacore import BNFunction, BNFunctionHandle
-from binaryninja._binaryninjacore import BNLowLevelILFunction, BNLowLevelILFunctionHandle
-from binaryninja._binaryninjacore import BNPlatform, BNPlatformHandle
-from binaryninja._binaryninjacore import BNSymbol, BNSymbolHandle
-from binaryninja._binaryninjacore import BNType, BNTypeHandle
-class BNWARPConstraint(ctypes.Structure):
- pass
-BNWARPConstraintHandle = ctypes.POINTER(BNWARPConstraint)
-class BNWARPContainer(ctypes.Structure):
- pass
-BNWARPContainerHandle = ctypes.POINTER(BNWARPContainer)
-class BNWARPFunction(ctypes.Structure):
- pass
-BNWARPFunctionHandle = ctypes.POINTER(BNWARPFunction)
-class BNWARPFunctionComment(ctypes.Structure):
- @property
- def text(self):
- return pyNativeStr(self._text)
- @text.setter
- def text(self, value):
- self._text = cstr(value)
-BNWARPFunctionCommentHandle = ctypes.POINTER(BNWARPFunctionComment)
-class BNWARPTarget(ctypes.Structure):
- pass
-BNWARPTargetHandle = ctypes.POINTER(BNWARPTarget)
-class BNWARPUUID(ctypes.Structure):
- pass
-BNWARPUUIDHandle = ctypes.POINTER(BNWARPUUID)
-
-# Structure definitions
-BNWARPBasicBlockGUID = BNWARPUUID
-BNWARPBasicBlockGUIDHandle = BNWARPUUIDHandle
-BNWARPConstraintGUID = BNWARPUUID
-BNWARPConstraintGUIDHandle = BNWARPUUIDHandle
-BNWARPFunctionComment._fields_ = [
- ("_text", ctypes.c_char_p),
- ("offset", ctypes.c_longlong),
- ]
-BNWARPFunctionGUID = BNWARPUUID
-BNWARPFunctionGUIDHandle = BNWARPUUIDHandle
-BNWARPSource = BNWARPUUID
-BNWARPSourceHandle = BNWARPUUIDHandle
-BNWARPTypeGUID = BNWARPUUID
-BNWARPTypeGUIDHandle = BNWARPUUIDHandle
-BNWARPUUID._fields_ = [
- ("uuid", ctypes.c_ubyte * 16),
- ]
-BNWARPConstraint._fields_ = [
- ("guid", BNWARPConstraintGUID),
- ("offset", ctypes.c_longlong),
- ]
-
-# Function definitions
-# -------------------------------------------------------
-# _BNWARPContainerAddFunctions
-
-_BNWARPContainerAddFunctions = core.BNWARPContainerAddFunctions
-_BNWARPContainerAddFunctions.restype = ctypes.c_bool
-_BNWARPContainerAddFunctions.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPTarget),
- ctypes.POINTER(BNWARPSource),
- ctypes.POINTER(ctypes.POINTER(BNWARPFunction)),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerAddFunctions(
- container: ctypes.POINTER(BNWARPContainer),
- target: ctypes.POINTER(BNWARPTarget),
- source: ctypes.POINTER(BNWARPSource),
- functions: ctypes.POINTER(ctypes.POINTER(BNWARPFunction)),
- count: int
- ) -> bool:
- return _BNWARPContainerAddFunctions(container, target, source, functions, count)
-
-
-# -------------------------------------------------------
-# _BNWARPContainerAddSource
-
-_BNWARPContainerAddSource = core.BNWARPContainerAddSource
-_BNWARPContainerAddSource.restype = ctypes.c_bool
-_BNWARPContainerAddSource.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.c_char_p,
- ctypes.POINTER(BNWARPSource),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerAddSource(
- container: ctypes.POINTER(BNWARPContainer),
- sourcePath: Optional[str],
- result: ctypes.POINTER(BNWARPSource)
- ) -> bool:
- return _BNWARPContainerAddSource(container, cstr(sourcePath), result)
-
-
-# -------------------------------------------------------
-# _BNWARPContainerAddTypes
-
-_BNWARPContainerAddTypes = core.BNWARPContainerAddTypes
-_BNWARPContainerAddTypes.restype = ctypes.c_bool
-_BNWARPContainerAddTypes.argtypes = [
- ctypes.POINTER(BNBinaryView),
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPSource),
- ctypes.POINTER(ctypes.POINTER(BNType)),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerAddTypes(
- view: ctypes.POINTER(BNBinaryView),
- container: ctypes.POINTER(BNWARPContainer),
- source: ctypes.POINTER(BNWARPSource),
- types: ctypes.POINTER(ctypes.POINTER(BNType)),
- count: int
- ) -> bool:
- return _BNWARPContainerAddTypes(view, container, source, types, count)
-
-
-# -------------------------------------------------------
-# _BNWARPContainerCommitSource
-
-_BNWARPContainerCommitSource = core.BNWARPContainerCommitSource
-_BNWARPContainerCommitSource.restype = ctypes.c_bool
-_BNWARPContainerCommitSource.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPSource),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerCommitSource(
- container: ctypes.POINTER(BNWARPContainer),
- source: ctypes.POINTER(BNWARPSource)
- ) -> bool:
- return _BNWARPContainerCommitSource(container, source)
-
-
-# -------------------------------------------------------
-# _BNWARPContainerFetchFunctions
-
-_BNWARPContainerFetchFunctions = core.BNWARPContainerFetchFunctions
-_BNWARPContainerFetchFunctions.restype = None
-_BNWARPContainerFetchFunctions.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPTarget),
- ctypes.POINTER(BNWARPTypeGUID),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerFetchFunctions(
- container: ctypes.POINTER(BNWARPContainer),
- target: ctypes.POINTER(BNWARPTarget),
- guids: ctypes.POINTER(BNWARPTypeGUID),
- count: int
- ) -> None:
- return _BNWARPContainerFetchFunctions(container, target, guids, count)
-
-
-# -------------------------------------------------------
-# _BNWARPContainerGetFunctionsWithGUID
-
-_BNWARPContainerGetFunctionsWithGUID = core.BNWARPContainerGetFunctionsWithGUID
-_BNWARPContainerGetFunctionsWithGUID.restype = ctypes.POINTER(ctypes.POINTER(BNWARPFunction))
-_BNWARPContainerGetFunctionsWithGUID.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPTarget),
- ctypes.POINTER(BNWARPSource),
- ctypes.POINTER(BNWARPFunctionGUID),
- ctypes.POINTER(ctypes.c_ulonglong),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerGetFunctionsWithGUID(
- container: ctypes.POINTER(BNWARPContainer),
- target: ctypes.POINTER(BNWARPTarget),
- source: ctypes.POINTER(BNWARPSource),
- guid: ctypes.POINTER(BNWARPFunctionGUID),
- count: ctypes.POINTER(ctypes.c_ulonglong)
- ) -> Optional[ctypes.POINTER(ctypes.POINTER(BNWARPFunction))]:
- result = _BNWARPContainerGetFunctionsWithGUID(container, target, source, guid, count)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPContainerGetName
-
-_BNWARPContainerGetName = core.BNWARPContainerGetName
-_BNWARPContainerGetName.restype = ctypes.POINTER(ctypes.c_byte)
-_BNWARPContainerGetName.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerGetName(
- container: ctypes.POINTER(BNWARPContainer)
- ) -> Optional[Optional[str]]:
- result = _BNWARPContainerGetName(container)
- if not result:
- return None
- string = str(pyNativeStr(ctypes.cast(result, ctypes.c_char_p).value))
- BNFreeString(result)
- return string
-
-
-# -------------------------------------------------------
-# _BNWARPContainerGetSourcePath
-
-_BNWARPContainerGetSourcePath = core.BNWARPContainerGetSourcePath
-_BNWARPContainerGetSourcePath.restype = ctypes.POINTER(ctypes.c_byte)
-_BNWARPContainerGetSourcePath.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPSource),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerGetSourcePath(
- container: ctypes.POINTER(BNWARPContainer),
- source: ctypes.POINTER(BNWARPSource)
- ) -> Optional[Optional[str]]:
- result = _BNWARPContainerGetSourcePath(container, source)
- if not result:
- return None
- string = str(pyNativeStr(ctypes.cast(result, ctypes.c_char_p).value))
- BNFreeString(result)
- return string
-
-
-# -------------------------------------------------------
-# _BNWARPContainerGetSources
-
-_BNWARPContainerGetSources = core.BNWARPContainerGetSources
-_BNWARPContainerGetSources.restype = ctypes.POINTER(BNWARPSource)
-_BNWARPContainerGetSources.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(ctypes.c_ulonglong),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerGetSources(
- container: ctypes.POINTER(BNWARPContainer),
- count: ctypes.POINTER(ctypes.c_ulonglong)
- ) -> Optional[ctypes.POINTER(BNWARPSource)]:
- result = _BNWARPContainerGetSources(container, count)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPContainerGetSourcesWithFunctionGUID
-
-_BNWARPContainerGetSourcesWithFunctionGUID = core.BNWARPContainerGetSourcesWithFunctionGUID
-_BNWARPContainerGetSourcesWithFunctionGUID.restype = ctypes.POINTER(BNWARPSource)
-_BNWARPContainerGetSourcesWithFunctionGUID.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPTarget),
- ctypes.POINTER(BNWARPFunctionGUID),
- ctypes.POINTER(ctypes.c_ulonglong),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerGetSourcesWithFunctionGUID(
- container: ctypes.POINTER(BNWARPContainer),
- target: ctypes.POINTER(BNWARPTarget),
- guid: ctypes.POINTER(BNWARPFunctionGUID),
- count: ctypes.POINTER(ctypes.c_ulonglong)
- ) -> Optional[ctypes.POINTER(BNWARPSource)]:
- result = _BNWARPContainerGetSourcesWithFunctionGUID(container, target, guid, count)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPContainerGetSourcesWithTypeGUID
-
-_BNWARPContainerGetSourcesWithTypeGUID = core.BNWARPContainerGetSourcesWithTypeGUID
-_BNWARPContainerGetSourcesWithTypeGUID.restype = ctypes.POINTER(BNWARPSource)
-_BNWARPContainerGetSourcesWithTypeGUID.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPTypeGUID),
- ctypes.POINTER(ctypes.c_ulonglong),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerGetSourcesWithTypeGUID(
- container: ctypes.POINTER(BNWARPContainer),
- guid: ctypes.POINTER(BNWARPTypeGUID),
- count: ctypes.POINTER(ctypes.c_ulonglong)
- ) -> Optional[ctypes.POINTER(BNWARPSource)]:
- result = _BNWARPContainerGetSourcesWithTypeGUID(container, guid, count)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPContainerGetTypeGUIDsWithName
-
-_BNWARPContainerGetTypeGUIDsWithName = core.BNWARPContainerGetTypeGUIDsWithName
-_BNWARPContainerGetTypeGUIDsWithName.restype = ctypes.POINTER(BNWARPTypeGUID)
-_BNWARPContainerGetTypeGUIDsWithName.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPSource),
- ctypes.c_char_p,
- ctypes.POINTER(ctypes.c_ulonglong),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerGetTypeGUIDsWithName(
- container: ctypes.POINTER(BNWARPContainer),
- source: ctypes.POINTER(BNWARPSource),
- name: Optional[str],
- count: ctypes.POINTER(ctypes.c_ulonglong)
- ) -> Optional[ctypes.POINTER(BNWARPTypeGUID)]:
- result = _BNWARPContainerGetTypeGUIDsWithName(container, source, cstr(name), count)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPContainerGetTypeWithGUID
-
-_BNWARPContainerGetTypeWithGUID = core.BNWARPContainerGetTypeWithGUID
-_BNWARPContainerGetTypeWithGUID.restype = ctypes.POINTER(BNType)
-_BNWARPContainerGetTypeWithGUID.argtypes = [
- ctypes.POINTER(BNArchitecture),
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPSource),
- ctypes.POINTER(BNWARPTypeGUID),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerGetTypeWithGUID(
- arch: ctypes.POINTER(BNArchitecture),
- container: ctypes.POINTER(BNWARPContainer),
- source: ctypes.POINTER(BNWARPSource),
- guid: ctypes.POINTER(BNWARPTypeGUID)
- ) -> Optional[ctypes.POINTER(BNType)]:
- result = _BNWARPContainerGetTypeWithGUID(arch, container, source, guid)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPContainerIsSourceUncommitted
-
-_BNWARPContainerIsSourceUncommitted = core.BNWARPContainerIsSourceUncommitted
-_BNWARPContainerIsSourceUncommitted.restype = ctypes.c_bool
-_BNWARPContainerIsSourceUncommitted.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPSource),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerIsSourceUncommitted(
- container: ctypes.POINTER(BNWARPContainer),
- source: ctypes.POINTER(BNWARPSource)
- ) -> bool:
- return _BNWARPContainerIsSourceUncommitted(container, source)
-
-
-# -------------------------------------------------------
-# _BNWARPContainerIsSourceWritable
-
-_BNWARPContainerIsSourceWritable = core.BNWARPContainerIsSourceWritable
-_BNWARPContainerIsSourceWritable.restype = ctypes.c_bool
-_BNWARPContainerIsSourceWritable.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPSource),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerIsSourceWritable(
- container: ctypes.POINTER(BNWARPContainer),
- source: ctypes.POINTER(BNWARPSource)
- ) -> bool:
- return _BNWARPContainerIsSourceWritable(container, source)
-
-
-# -------------------------------------------------------
-# _BNWARPContainerRemoveFunctions
-
-_BNWARPContainerRemoveFunctions = core.BNWARPContainerRemoveFunctions
-_BNWARPContainerRemoveFunctions.restype = ctypes.c_bool
-_BNWARPContainerRemoveFunctions.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPTarget),
- ctypes.POINTER(BNWARPSource),
- ctypes.POINTER(ctypes.POINTER(BNWARPFunction)),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerRemoveFunctions(
- container: ctypes.POINTER(BNWARPContainer),
- target: ctypes.POINTER(BNWARPTarget),
- source: ctypes.POINTER(BNWARPSource),
- functions: ctypes.POINTER(ctypes.POINTER(BNWARPFunction)),
- count: int
- ) -> bool:
- return _BNWARPContainerRemoveFunctions(container, target, source, functions, count)
-
-
-# -------------------------------------------------------
-# _BNWARPContainerRemoveTypes
-
-_BNWARPContainerRemoveTypes = core.BNWARPContainerRemoveTypes
-_BNWARPContainerRemoveTypes.restype = ctypes.c_bool
-_BNWARPContainerRemoveTypes.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ctypes.POINTER(BNWARPSource),
- ctypes.POINTER(BNWARPTypeGUID),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPContainerRemoveTypes(
- container: ctypes.POINTER(BNWARPContainer),
- source: ctypes.POINTER(BNWARPSource),
- types: ctypes.POINTER(BNWARPTypeGUID),
- count: int
- ) -> bool:
- return _BNWARPContainerRemoveTypes(container, source, types, count)
-
-
-# -------------------------------------------------------
-# _BNWARPFreeConstraintList
-
-_BNWARPFreeConstraintList = core.BNWARPFreeConstraintList
-_BNWARPFreeConstraintList.restype = None
-_BNWARPFreeConstraintList.argtypes = [
- ctypes.POINTER(BNWARPConstraint),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFreeConstraintList(
- constraints: ctypes.POINTER(BNWARPConstraint),
- count: int
- ) -> None:
- return _BNWARPFreeConstraintList(constraints, count)
-
-
-# -------------------------------------------------------
-# _BNWARPFreeContainerList
-
-_BNWARPFreeContainerList = core.BNWARPFreeContainerList
-_BNWARPFreeContainerList.restype = None
-_BNWARPFreeContainerList.argtypes = [
- ctypes.POINTER(ctypes.POINTER(BNWARPContainer)),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFreeContainerList(
- containers: ctypes.POINTER(ctypes.POINTER(BNWARPContainer)),
- count: int
- ) -> None:
- return _BNWARPFreeContainerList(containers, count)
-
-
-# -------------------------------------------------------
-# _BNWARPFreeContainerReference
-
-_BNWARPFreeContainerReference = core.BNWARPFreeContainerReference
-_BNWARPFreeContainerReference.restype = None
-_BNWARPFreeContainerReference.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFreeContainerReference(
- container: ctypes.POINTER(BNWARPContainer)
- ) -> None:
- return _BNWARPFreeContainerReference(container)
-
-
-# -------------------------------------------------------
-# _BNWARPFreeFunctionCommentList
-
-_BNWARPFreeFunctionCommentList = core.BNWARPFreeFunctionCommentList
-_BNWARPFreeFunctionCommentList.restype = None
-_BNWARPFreeFunctionCommentList.argtypes = [
- ctypes.POINTER(BNWARPFunctionComment),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFreeFunctionCommentList(
- comments: ctypes.POINTER(BNWARPFunctionComment),
- count: int
- ) -> None:
- return _BNWARPFreeFunctionCommentList(comments, count)
-
-
-# -------------------------------------------------------
-# _BNWARPFreeFunctionList
-
-_BNWARPFreeFunctionList = core.BNWARPFreeFunctionList
-_BNWARPFreeFunctionList.restype = None
-_BNWARPFreeFunctionList.argtypes = [
- ctypes.POINTER(ctypes.POINTER(BNWARPFunction)),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFreeFunctionList(
- functions: ctypes.POINTER(ctypes.POINTER(BNWARPFunction)),
- count: int
- ) -> None:
- return _BNWARPFreeFunctionList(functions, count)
-
-
-# -------------------------------------------------------
-# _BNWARPFreeFunctionReference
-
-_BNWARPFreeFunctionReference = core.BNWARPFreeFunctionReference
-_BNWARPFreeFunctionReference.restype = None
-_BNWARPFreeFunctionReference.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFreeFunctionReference(
- function: ctypes.POINTER(BNWARPFunction)
- ) -> None:
- return _BNWARPFreeFunctionReference(function)
-
-
-# -------------------------------------------------------
-# _BNWARPFreeTargetReference
-
-_BNWARPFreeTargetReference = core.BNWARPFreeTargetReference
-_BNWARPFreeTargetReference.restype = None
-_BNWARPFreeTargetReference.argtypes = [
- ctypes.POINTER(BNWARPTarget),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFreeTargetReference(
- target: ctypes.POINTER(BNWARPTarget)
- ) -> None:
- return _BNWARPFreeTargetReference(target)
-
-
-# -------------------------------------------------------
-# _BNWARPFreeUUIDList
-
-_BNWARPFreeUUIDList = core.BNWARPFreeUUIDList
-_BNWARPFreeUUIDList.restype = None
-_BNWARPFreeUUIDList.argtypes = [
- ctypes.POINTER(BNWARPUUID),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFreeUUIDList(
- uuids: ctypes.POINTER(BNWARPUUID),
- count: int
- ) -> None:
- return _BNWARPFreeUUIDList(uuids, count)
-
-
-# -------------------------------------------------------
-# _BNWARPFunctionApply
-
-_BNWARPFunctionApply = core.BNWARPFunctionApply
-_BNWARPFunctionApply.restype = None
-_BNWARPFunctionApply.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ctypes.POINTER(BNFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFunctionApply(
- function: ctypes.POINTER(BNWARPFunction),
- analysisFunction: ctypes.POINTER(BNFunction)
- ) -> None:
- return _BNWARPFunctionApply(function, analysisFunction)
-
-
-# -------------------------------------------------------
-# _BNWARPFunctionGetComments
-
-_BNWARPFunctionGetComments = core.BNWARPFunctionGetComments
-_BNWARPFunctionGetComments.restype = ctypes.POINTER(BNWARPFunctionComment)
-_BNWARPFunctionGetComments.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ctypes.POINTER(ctypes.c_ulonglong),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFunctionGetComments(
- function: ctypes.POINTER(BNWARPFunction),
- count: ctypes.POINTER(ctypes.c_ulonglong)
- ) -> Optional[ctypes.POINTER(BNWARPFunctionComment)]:
- result = _BNWARPFunctionGetComments(function, count)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPFunctionGetConstraints
-
-_BNWARPFunctionGetConstraints = core.BNWARPFunctionGetConstraints
-_BNWARPFunctionGetConstraints.restype = ctypes.POINTER(BNWARPConstraint)
-_BNWARPFunctionGetConstraints.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ctypes.POINTER(ctypes.c_ulonglong),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFunctionGetConstraints(
- function: ctypes.POINTER(BNWARPFunction),
- count: ctypes.POINTER(ctypes.c_ulonglong)
- ) -> Optional[ctypes.POINTER(BNWARPConstraint)]:
- result = _BNWARPFunctionGetConstraints(function, count)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPFunctionGetGUID
-
-_BNWARPFunctionGetGUID = core.BNWARPFunctionGetGUID
-_BNWARPFunctionGetGUID.restype = BNWARPFunctionGUID
-_BNWARPFunctionGetGUID.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFunctionGetGUID(
- function: ctypes.POINTER(BNWARPFunction)
- ) -> BNWARPFunctionGUID:
- return _BNWARPFunctionGetGUID(function)
-
-
-# -------------------------------------------------------
-# _BNWARPFunctionGetSymbol
-
-_BNWARPFunctionGetSymbol = core.BNWARPFunctionGetSymbol
-_BNWARPFunctionGetSymbol.restype = ctypes.POINTER(BNSymbol)
-_BNWARPFunctionGetSymbol.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ctypes.POINTER(BNFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFunctionGetSymbol(
- function: ctypes.POINTER(BNWARPFunction),
- analysisFunction: ctypes.POINTER(BNFunction)
- ) -> Optional[ctypes.POINTER(BNSymbol)]:
- result = _BNWARPFunctionGetSymbol(function, analysisFunction)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPFunctionGetSymbolName
-
-_BNWARPFunctionGetSymbolName = core.BNWARPFunctionGetSymbolName
-_BNWARPFunctionGetSymbolName.restype = ctypes.POINTER(ctypes.c_byte)
-_BNWARPFunctionGetSymbolName.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFunctionGetSymbolName(
- function: ctypes.POINTER(BNWARPFunction)
- ) -> Optional[Optional[str]]:
- result = _BNWARPFunctionGetSymbolName(function)
- if not result:
- return None
- string = str(pyNativeStr(ctypes.cast(result, ctypes.c_char_p).value))
- BNFreeString(result)
- return string
-
-
-# -------------------------------------------------------
-# _BNWARPFunctionGetType
-
-_BNWARPFunctionGetType = core.BNWARPFunctionGetType
-_BNWARPFunctionGetType.restype = ctypes.POINTER(BNType)
-_BNWARPFunctionGetType.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ctypes.POINTER(BNFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFunctionGetType(
- function: ctypes.POINTER(BNWARPFunction),
- analysisFunction: ctypes.POINTER(BNFunction)
- ) -> Optional[ctypes.POINTER(BNType)]:
- result = _BNWARPFunctionGetType(function, analysisFunction)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPFunctionsEqual
-
-_BNWARPFunctionsEqual = core.BNWARPFunctionsEqual
-_BNWARPFunctionsEqual.restype = ctypes.c_bool
-_BNWARPFunctionsEqual.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ctypes.POINTER(BNWARPFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPFunctionsEqual(
- functionA: ctypes.POINTER(BNWARPFunction),
- functionB: ctypes.POINTER(BNWARPFunction)
- ) -> bool:
- return _BNWARPFunctionsEqual(functionA, functionB)
-
-
-# -------------------------------------------------------
-# _BNWARPGetAnalysisFunctionGUID
-
-_BNWARPGetAnalysisFunctionGUID = core.BNWARPGetAnalysisFunctionGUID
-_BNWARPGetAnalysisFunctionGUID.restype = ctypes.c_bool
-_BNWARPGetAnalysisFunctionGUID.argtypes = [
- ctypes.POINTER(BNFunction),
- ctypes.POINTER(BNWARPFunctionGUID),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPGetAnalysisFunctionGUID(
- analysisFunction: ctypes.POINTER(BNFunction),
- result: ctypes.POINTER(BNWARPFunctionGUID)
- ) -> bool:
- return _BNWARPGetAnalysisFunctionGUID(analysisFunction, result)
-
-
-# -------------------------------------------------------
-# _BNWARPGetBasicBlockGUID
-
-_BNWARPGetBasicBlockGUID = core.BNWARPGetBasicBlockGUID
-_BNWARPGetBasicBlockGUID.restype = ctypes.c_bool
-_BNWARPGetBasicBlockGUID.argtypes = [
- ctypes.POINTER(BNBasicBlock),
- ctypes.POINTER(BNWARPBasicBlockGUID),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPGetBasicBlockGUID(
- basicBlock: ctypes.POINTER(BNBasicBlock),
- result: ctypes.POINTER(BNWARPBasicBlockGUID)
- ) -> bool:
- return _BNWARPGetBasicBlockGUID(basicBlock, result)
-
-
-# -------------------------------------------------------
-# _BNWARPGetContainers
-
-_BNWARPGetContainers = core.BNWARPGetContainers
-_BNWARPGetContainers.restype = ctypes.POINTER(ctypes.POINTER(BNWARPContainer))
-_BNWARPGetContainers.argtypes = [
- ctypes.POINTER(ctypes.c_ulonglong),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPGetContainers(
- count: ctypes.POINTER(ctypes.c_ulonglong)
- ) -> Optional[ctypes.POINTER(ctypes.POINTER(BNWARPContainer))]:
- result = _BNWARPGetContainers(count)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPGetFunction
-
-_BNWARPGetFunction = core.BNWARPGetFunction
-_BNWARPGetFunction.restype = ctypes.POINTER(BNWARPFunction)
-_BNWARPGetFunction.argtypes = [
- ctypes.POINTER(BNFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPGetFunction(
- analysisFunction: ctypes.POINTER(BNFunction)
- ) -> Optional[ctypes.POINTER(BNWARPFunction)]:
- result = _BNWARPGetFunction(analysisFunction)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPGetMatchedFunction
-
-_BNWARPGetMatchedFunction = core.BNWARPGetMatchedFunction
-_BNWARPGetMatchedFunction.restype = ctypes.POINTER(BNWARPFunction)
-_BNWARPGetMatchedFunction.argtypes = [
- ctypes.POINTER(BNFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPGetMatchedFunction(
- analysisFunction: ctypes.POINTER(BNFunction)
- ) -> Optional[ctypes.POINTER(BNWARPFunction)]:
- result = _BNWARPGetMatchedFunction(analysisFunction)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPGetTarget
-
-_BNWARPGetTarget = core.BNWARPGetTarget
-_BNWARPGetTarget.restype = ctypes.POINTER(BNWARPTarget)
-_BNWARPGetTarget.argtypes = [
- ctypes.POINTER(BNPlatform),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPGetTarget(
- platform: ctypes.POINTER(BNPlatform)
- ) -> Optional[ctypes.POINTER(BNWARPTarget)]:
- result = _BNWARPGetTarget(platform)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPIsLiftedInstructionBlacklisted
-
-_BNWARPIsLiftedInstructionBlacklisted = core.BNWARPIsLiftedInstructionBlacklisted
-_BNWARPIsLiftedInstructionBlacklisted.restype = ctypes.c_bool
-_BNWARPIsLiftedInstructionBlacklisted.argtypes = [
- ctypes.POINTER(BNLowLevelILFunction),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPIsLiftedInstructionBlacklisted(
- liftedFunction: ctypes.POINTER(BNLowLevelILFunction),
- idx: int
- ) -> bool:
- return _BNWARPIsLiftedInstructionBlacklisted(liftedFunction, idx)
-
-
-# -------------------------------------------------------
-# _BNWARPIsLiftedInstructionVariant
-
-_BNWARPIsLiftedInstructionVariant = core.BNWARPIsLiftedInstructionVariant
-_BNWARPIsLiftedInstructionVariant.restype = ctypes.c_bool
-_BNWARPIsLiftedInstructionVariant.argtypes = [
- ctypes.POINTER(BNLowLevelILFunction),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPIsLiftedInstructionVariant(
- liftedFunction: ctypes.POINTER(BNLowLevelILFunction),
- idx: int
- ) -> bool:
- return _BNWARPIsLiftedInstructionVariant(liftedFunction, idx)
-
-
-# -------------------------------------------------------
-# _BNWARPIsLowLevelInstructionComputedVariant
-
-_BNWARPIsLowLevelInstructionComputedVariant = core.BNWARPIsLowLevelInstructionComputedVariant
-_BNWARPIsLowLevelInstructionComputedVariant.restype = ctypes.c_bool
-_BNWARPIsLowLevelInstructionComputedVariant.argtypes = [
- ctypes.POINTER(BNLowLevelILFunction),
- ctypes.c_ulonglong,
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPIsLowLevelInstructionComputedVariant(
- llilFunction: ctypes.POINTER(BNLowLevelILFunction),
- idx: int
- ) -> bool:
- return _BNWARPIsLowLevelInstructionComputedVariant(llilFunction, idx)
-
-
-# -------------------------------------------------------
-# _BNWARPNewContainerReference
-
-_BNWARPNewContainerReference = core.BNWARPNewContainerReference
-_BNWARPNewContainerReference.restype = ctypes.POINTER(BNWARPContainer)
-_BNWARPNewContainerReference.argtypes = [
- ctypes.POINTER(BNWARPContainer),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPNewContainerReference(
- container: ctypes.POINTER(BNWARPContainer)
- ) -> Optional[ctypes.POINTER(BNWARPContainer)]:
- result = _BNWARPNewContainerReference(container)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPNewFunctionReference
-
-_BNWARPNewFunctionReference = core.BNWARPNewFunctionReference
-_BNWARPNewFunctionReference.restype = ctypes.POINTER(BNWARPFunction)
-_BNWARPNewFunctionReference.argtypes = [
- ctypes.POINTER(BNWARPFunction),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPNewFunctionReference(
- function: ctypes.POINTER(BNWARPFunction)
- ) -> Optional[ctypes.POINTER(BNWARPFunction)]:
- result = _BNWARPNewFunctionReference(function)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPNewTargetReference
-
-_BNWARPNewTargetReference = core.BNWARPNewTargetReference
-_BNWARPNewTargetReference.restype = ctypes.POINTER(BNWARPTarget)
-_BNWARPNewTargetReference.argtypes = [
- ctypes.POINTER(BNWARPTarget),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPNewTargetReference(
- target: ctypes.POINTER(BNWARPTarget)
- ) -> Optional[ctypes.POINTER(BNWARPTarget)]:
- result = _BNWARPNewTargetReference(target)
- if not result:
- return None
- return result
-
-
-# -------------------------------------------------------
-# _BNWARPRunMatcher
-
-_BNWARPRunMatcher = core.BNWARPRunMatcher
-_BNWARPRunMatcher.restype = None
-_BNWARPRunMatcher.argtypes = [
- ctypes.POINTER(BNBinaryView),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPRunMatcher(
- view: ctypes.POINTER(BNBinaryView)
- ) -> None:
- return _BNWARPRunMatcher(view)
-
-
-# -------------------------------------------------------
-# _BNWARPUUIDEqual
-
-_BNWARPUUIDEqual = core.BNWARPUUIDEqual
-_BNWARPUUIDEqual.restype = ctypes.c_bool
-_BNWARPUUIDEqual.argtypes = [
- ctypes.POINTER(BNWARPUUID),
- ctypes.POINTER(BNWARPUUID),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPUUIDEqual(
- a: ctypes.POINTER(BNWARPUUID),
- b: ctypes.POINTER(BNWARPUUID)
- ) -> bool:
- return _BNWARPUUIDEqual(a, b)
-
-
-# -------------------------------------------------------
-# _BNWARPUUIDGetString
-
-_BNWARPUUIDGetString = core.BNWARPUUIDGetString
-_BNWARPUUIDGetString.restype = ctypes.POINTER(ctypes.c_byte)
-_BNWARPUUIDGetString.argtypes = [
- ctypes.POINTER(BNWARPUUID),
- ]
-
-
-# noinspection PyPep8Naming
-def BNWARPUUIDGetString(
- uuid: ctypes.POINTER(BNWARPUUID)
- ) -> Optional[Optional[str]]:
- result = _BNWARPUUIDGetString(uuid)
- if not result:
- return None
- string = str(pyNativeStr(ctypes.cast(result, ctypes.c_char_p).value))
- BNFreeString(result)
- return string
-
-
-
-# Helper functions
-def handle_of_type(value, handle_type):
- if isinstance(value, ctypes.POINTER(handle_type)) or isinstance(value, ctypes.c_void_p):
- return ctypes.cast(value, ctypes.POINTER(handle_type))
- raise ValueError('expected pointer to %s' % str(handle_type))