summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh F <josh@vector35.com>2022-06-30 20:26:11 -0400
committerJosh F <josh@vector35.com>2022-06-30 20:26:11 -0400
commit76a4788ca80deae75c43108142658a1b1fbfbdb7 (patch)
tree82f2f00d34059f5d1e5cdb509feb8f7085f4aaac
parent6e282b0e11fa15e9aacddf52f0fedb5ab2f13bbc (diff)
Add GetVersionInfo() and BNVersionInfo struct
-rw-r--r--binaryninjacore.h8
-rw-r--r--python/__init__.py16
2 files changed, 24 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index a7ec092c..d092a8bd 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -2834,6 +2834,13 @@ extern "C"
bool (*deleteData)(void* ctxt, const char* key);
};
+ struct BNVersionInfo
+ {
+ uint32_t major;
+ uint32_t minor;
+ uint32_t build;
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
BINARYNINJACOREAPI char** BNAllocStringList(const char** contents, size_t size);
@@ -2842,6 +2849,7 @@ extern "C"
BINARYNINJACOREAPI void BNShutdown(void);
BINARYNINJACOREAPI bool BNIsShutdownRequested(void);
+ BINARYNINJACOREAPI BNVersionInfo BNGetVersionInfo(void);
BINARYNINJACOREAPI char* BNGetVersionString(void);
BINARYNINJACOREAPI uint32_t BNGetBuildId(void);
BINARYNINJACOREAPI uint32_t BNGetCurrentCoreABIVersion(void);
diff --git a/python/__init__.py b/python/__init__.py
index 60b739e7..d3ace754 100644
--- a/python/__init__.py
+++ b/python/__init__.py
@@ -89,6 +89,13 @@ def shutdown():
atexit.register(shutdown)
+@dataclass
+class CoreVersionInfo:
+ major: int
+ minor: int
+ build: int
+
+
def get_unique_identifier():
return core.BNGetUniqueIdentifierString()
@@ -206,6 +213,15 @@ def core_version() -> Optional[str]:
"""
return core.BNGetVersionString()
+def core_version_info() -> CoreVersionInfo:
+ """
+ ``core_version_info`` returns a CoreVersionInfo containing the current version information
+
+ :return: current version information
+ :rtype: CoreVersionInfo
+ """
+ handle = core.BNGetVersionInfo()
+ return CoreVersionInfo(major=handle.major, minor=handle.minor, build=handle.build)
def core_build_id() -> int:
"""