summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorBrandon Miller <brandon@vector35.com>2024-11-22 08:20:14 -0500
committerBrandon Miller <brandon@vector35.com>2024-11-22 08:20:53 -0500
commitc74fa0d5f974efa4ccd569a821701956063a31e9 (patch)
treeed20c1e13e22df9c5d3867294654a28931f4fbe7 /binaryninjacore.h
parent3617086969462676272786827089388047502883 (diff)
C++ and Python API for Firmware Ninja
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h66
1 files changed, 33 insertions, 33 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index ff1f3241..bb60b931 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -37,14 +37,14 @@
// Current ABI version for linking to the core. This is incremented any time
// there are changes to the API that affect linking, including new functions,
// new types, or modifications to existing functions or types.
-#define BN_CURRENT_CORE_ABI_VERSION 83
+#define BN_CURRENT_CORE_ABI_VERSION 84
// Minimum ABI version that is supported for loading of plugins. Plugins that
// are linked to an ABI version less than this will not be able to load and
// will require rebuilding. The minimum version is increased when there are
// incompatible changes that break binary compatibility, such as changes to
// existing types or functions.
-#define BN_MINIMUM_CORE_ABI_VERSION 81
+#define BN_MINIMUM_CORE_ABI_VERSION 82
#ifdef __GNUC__
#ifdef BINARYNINJACORE_LIBRARY
@@ -3497,37 +3497,38 @@ extern "C"
float entropy;
} BNFirmwareNinjaSection;
- typedef enum BNFirmwareNinjaMMIOHeuristic
+ typedef enum BNFirmwareNinjaMemoryHeuristic
{
- NoMMIOHeuristic,
- HasReadBarrierMMIOHeuristic,
- HasWriteBarrierMMIOHeuristic,
- StoreToOOBMemoryMMIOHeuristic,
- LoadFromOOBMemoryMMIOHeuristic,
- RepeatLoadStoreMMIOHeuristic,
- } BNFirmwareNinjaMMIOHeuristic;
+ NoMemoryHeuristic,
+ HasReadBarrierMemoryHeuristic,
+ HasWriteBarrierMemoryHeuristic,
+ StoreToOOBMemoryMemoryHeuristic,
+ LoadFromOOBMemoryMemoryHeuristic,
+ RepeatLoadStoreMemoryHeuristic,
+ } BNFirmwareNinjaMemoryHeuristic;
- typedef enum BNFirmwareNinjaMMIOAccessType
+ typedef enum BNFirmwareNinjaMemoryAccessType
{
- NoMMIOAccessType,
- ReadMMIOAccessType,
- WriteMMIOAccessType,
- } BNFirmwareNinjaMMIOAccessType;
+ NoMemoryAccessType,
+ ReadMemoryAccessType,
+ WriteMemoryAccessType,
+ } BNFirmwareNinjaMemoryAccessType;
- typedef struct BNFirmwareNinjaMMIOAccess
+ typedef struct BNFirmwareNinjaMemoryAccess
{
uint64_t instrAddress;
- BNRegisterValue reg;
- BNFirmwareNinjaMMIOHeuristic heuristic;
- BNFirmwareNinjaMMIOAccessType type;
- } BNFirmwareNinjaMMIOAccess;
+ BNRegisterValue memAddress;
+ BNFirmwareNinjaMemoryHeuristic heuristic;
+ BNFirmwareNinjaMemoryAccessType type;
+ BNRegisterValue value;
+ } BNFirmwareNinjaMemoryAccess;
- typedef struct BNFirmwareNinjaFunctionMMIOInfo
+ typedef struct BNFirmwareNinjaFunctionMemoryAccesses
{
uint64_t start;
size_t count;
- BNFirmwareNinjaMMIOAccess** accesses;
- } BNFirmwareNinjaFunctionMMIOInfo;
+ BNFirmwareNinjaMemoryAccess** accesses;
+ } BNFirmwareNinjaFunctionMemoryAccesses;
typedef struct BNFirmwareNinjaDeviceAccesses
{
@@ -8025,22 +8026,21 @@ extern "C"
// FirmwareNinja
BINARYNINJACOREAPI BNFirmwareNinja* BNCreateFirmwareNinja(BNBinaryView *view);
- BINARYNINJACOREAPI bool BNFirmwareNinjaAddCustomDevice(BNFirmwareNinja* fn, const char* name, uint64_t start, uint64_t end, const char* info);
- BINARYNINJACOREAPI bool BNFirmwareNinjaDeleteCustomDevice(BNFirmwareNinja* fn, const char* name);
+ BINARYNINJACOREAPI void BNFreeFirmwareNinja(BNFirmwareNinja* fn);
+ BINARYNINJACOREAPI bool BNFirmwareNinjaStoreCustomDevice(BNFirmwareNinja* fn, const char* name, uint64_t start, uint64_t end, const char* info);
+ BINARYNINJACOREAPI bool BNFirmwareNinjaRemoveCustomDevice(BNFirmwareNinja* fn, const char* name);
BINARYNINJACOREAPI int BNFirmwareNinjaQueryCustomDevices(BNFirmwareNinja* fn, BNFirmwareNinjaDevice** devices);
BINARYNINJACOREAPI void BNFirmwareNinjaFreeDevices(BNFirmwareNinjaDevice *devices, int size);
BINARYNINJACOREAPI int BNFirmwareNinjaQueryBoardNamesForArchitecture(BNFirmwareNinja* fn, BNArchitecture* arch, char ***boards);
BINARYNINJACOREAPI void BNFirmwareNinjaFreeBoardNames(char **boards, int size);
BINARYNINJACOREAPI int BNFirmwareNinjaQueryBoardDevices(BNFirmwareNinja* fn, BNArchitecture* arch, const char* board, BNFirmwareNinjaDevice** devices);
- BINARYNINJACOREAPI int BNFirmwareNinjaFindSectionsWithEntropy(BNFirmwareNinja* fn, BNFirmwareNinjaSection** sections,
- float highCodeEntropyThreshold, float lowCodeEntropyThreshold, size_t blockSize, BNFirmwareNinjaSectionAnalysisMode mode);
+ BINARYNINJACOREAPI int BNFirmwareNinjaFindSectionsWithEntropy(BNFirmwareNinja* fn, BNFirmwareNinjaSection** sections, float highCodeEntropyThreshold, float lowCodeEntropyThreshold, size_t blockSize, BNFirmwareNinjaSectionAnalysisMode mode);
BINARYNINJACOREAPI void BNFirmwareNinjaFreeSections(BNFirmwareNinjaSection *sections, int size);
- BINARYNINJACOREAPI int BNFirmwareNinjaFindMMIOAccesses(BNFirmwareNinja* fn, BNFirmwareNinjaFunctionMMIOInfo*** mmio, BNProgressFunction progress, void* progressContext);
- BINARYNINJACOREAPI void BNFirmwareNinjaFreeMMIOAccesses(BNFirmwareNinjaFunctionMMIOInfo **mmio, int size);
- BINARYNINJACOREAPI void BNFirmwareNinjaSaveMMIOAccessesToMetadata(BNFirmwareNinja* fn, BNFirmwareNinjaFunctionMMIOInfo** mmio, int size);
- BINARYNINJACOREAPI int BNFirmwareNinjaLoadMMIOAccessesFromMetadata(BNFirmwareNinja* fn, BNFirmwareNinjaFunctionMMIOInfo*** mmio);
- BINARYNINJACOREAPI int BNFirmwareNinjaGetBoardDeviceAccesses(BNFirmwareNinja* fn, BNFirmwareNinjaFunctionMMIOInfo** mmio, int size,
- BNFirmwareNinjaDeviceAccesses** accesses, BNArchitecture* arch);
+ BINARYNINJACOREAPI int BNFirmwareNinjaGetFunctionMemoryAccesses(BNFirmwareNinja* fn, BNFirmwareNinjaFunctionMemoryAccesses*** mmio, BNProgressFunction progress, void* progressContext);
+ BINARYNINJACOREAPI void BNFirmwareNinjaFreeFunctionMemoryAccesses(BNFirmwareNinjaFunctionMemoryAccesses **mmio, int size);
+ BINARYNINJACOREAPI void BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(BNFirmwareNinja* fn, BNFirmwareNinjaFunctionMemoryAccesses** mmio, int size);
+ BINARYNINJACOREAPI int BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(BNFirmwareNinja* fn, BNFirmwareNinjaFunctionMemoryAccesses*** mmio);
+ BINARYNINJACOREAPI int BNFirmwareNinjaGetBoardDeviceAccesses(BNFirmwareNinja* fn, BNFirmwareNinjaFunctionMemoryAccesses** mmio, int size, BNFirmwareNinjaDeviceAccesses** accesses, BNArchitecture* arch);
BINARYNINJACOREAPI void BNFirmwareNinjaFreeBoardDeviceAccesses(BNFirmwareNinjaDeviceAccesses *accesses, int size);
#ifdef __cplusplus
}