summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h2462
1 files changed, 1337 insertions, 1125 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 257e98d5..4033a457 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -38,72 +38,72 @@
#define BN_MINIMUM_CORE_ABI_VERSION 13
#ifdef __GNUC__
-# ifdef BINARYNINJACORE_LIBRARY
-# define BINARYNINJACOREAPI __attribute__((visibility("default")))
-# else
-# define BINARYNINJACOREAPI
-# endif
-# define BINARYNINJAPLUGIN __attribute__((visibility("default")))
+ #ifdef BINARYNINJACORE_LIBRARY
+ #define BINARYNINJACOREAPI __attribute__((visibility("default")))
+ #else
+ #define BINARYNINJACOREAPI
+ #endif
+ #define BINARYNINJAPLUGIN __attribute__((visibility("default")))
#else
-#ifdef _MSC_VER
-# ifdef BINARYNINJACORE_LIBRARY
-# define BINARYNINJACOREAPI __declspec(dllexport)
-# else
-# define BINARYNINJACOREAPI
-# endif
-# define BINARYNINJAPLUGIN __declspec(dllexport)
-#else
-#define BINARYNINJACOREAPI
-#endif
+ #ifdef _MSC_VER
+ #ifdef BINARYNINJACORE_LIBRARY
+ #define BINARYNINJACOREAPI __declspec(dllexport)
+ #else
+ #define BINARYNINJACOREAPI
+ #endif
+ #define BINARYNINJAPLUGIN __declspec(dllexport)
+ #else
+ #define BINARYNINJACOREAPI
+ #endif
#endif
#ifdef WIN32
-#define PATH_SEP "\\"
+ #define PATH_SEP "\\"
#else
-#define PATH_SEP "/"
+ #define PATH_SEP "/"
#endif
-#define BN_MAX_INSTRUCTION_LENGTH 256
+#define BN_MAX_INSTRUCTION_LENGTH 256
#define BN_DEFAULT_INSTRUCTION_LENGTH 16
-#define BN_DEFAULT_OPCODE_DISPLAY 8
-#define BN_MAX_INSTRUCTION_BRANCHES 3
+#define BN_DEFAULT_OPCODE_DISPLAY 8
+#define BN_MAX_INSTRUCTION_BRANCHES 3
-#define BN_MAX_STORED_DATA_LENGTH 0x3fffffff
-#define BN_NULL_ID -1
+#define BN_MAX_STORED_DATA_LENGTH 0x3fffffff
+#define BN_NULL_ID -1
-#define LLIL_TEMP(n) (0x80000000 | (uint32_t)(n))
-#define LLIL_REG_IS_TEMP(n) (((n) & 0x80000000) != 0)
-#define LLIL_GET_TEMP_REG_INDEX(n) ((n) & 0x7fffffff)
-#define BN_INVALID_REGISTER 0xffffffff
+#define LLIL_TEMP(n) (0x80000000 | (uint32_t)(n))
+#define LLIL_REG_IS_TEMP(n) (((n)&0x80000000) != 0)
+#define LLIL_GET_TEMP_REG_INDEX(n) ((n)&0x7fffffff)
+#define BN_INVALID_REGISTER 0xffffffff
-#define BN_AUTOCOERCE_EXTERN_PTR 0xfffffffd
-#define BN_NOCOERCE_EXTERN_PTR 0xfffffffe
-#define BN_INVALID_OPERAND 0xffffffff
+#define BN_AUTOCOERCE_EXTERN_PTR 0xfffffffd
+#define BN_NOCOERCE_EXTERN_PTR 0xfffffffe
+#define BN_INVALID_OPERAND 0xffffffff
-#define BN_INVALID_EXPR ((size_t)-1)
+#define BN_INVALID_EXPR ((size_t)-1)
-#define BN_MAX_STRING_LENGTH 128
+#define BN_MAX_STRING_LENGTH 128
-#define LLVM_SVCS_CB_NOTE 0
+#define LLVM_SVCS_CB_NOTE 0
#define LLVM_SVCS_CB_WARNING 1
-#define LLVM_SVCS_CB_ERROR 2
+#define LLVM_SVCS_CB_ERROR 2
#define LLVM_SVCS_DIALECT_UNSPEC 0
-#define LLVM_SVCS_DIALECT_ATT 1
-#define LLVM_SVCS_DIALECT_INTEL 2
+#define LLVM_SVCS_DIALECT_ATT 1
+#define LLVM_SVCS_DIALECT_INTEL 2
#define LLVM_SVCS_CM_DEFAULT 0
-#define LLVM_SVCS_CM_SMALL 1
-#define LLVM_SVCS_CM_KERNEL 2
-#define LLVM_SVCS_CM_MEDIUM 3
-#define LLVM_SVCS_CM_LARGE 4
+#define LLVM_SVCS_CM_SMALL 1
+#define LLVM_SVCS_CM_KERNEL 2
+#define LLVM_SVCS_CM_MEDIUM 3
+#define LLVM_SVCS_CM_LARGE 4
-#define LLVM_SVCS_RM_STATIC 0
-#define LLVM_SVCS_RM_PIC 1
+#define LLVM_SVCS_RM_STATIC 0
+#define LLVM_SVCS_RM_PIC 1
#define LLVM_SVCS_RM_DYNAMIC_NO_PIC 2
-#define BN_MAX_VARIABLE_OFFSET 0x7fffffffffLL
-#define BN_MAX_VARIABLE_INDEX 0xfffff
+#define BN_MAX_VARIABLE_OFFSET 0x7fffffffffLL
+#define BN_MAX_VARIABLE_INDEX 0xfffff
#define BN_FULL_CONFIDENCE 255
#define BN_MINIMUM_CONFIDENCE 1
@@ -118,16 +118,13 @@
// The BN_DECLARE_CORE_ABI_VERSION must be included in native plugin modules. If
// the ABI version is not declared, the core will not load the plugin.
#ifdef DEMO_VERSION
-#define BN_DECLARE_CORE_ABI_VERSION
+ #define BN_DECLARE_CORE_ABI_VERSION
#else
-#define BN_DECLARE_CORE_ABI_VERSION \
- extern "C" \
- { \
- BINARYNINJAPLUGIN uint32_t CorePluginABIVersion() \
+ #define BN_DECLARE_CORE_ABI_VERSION \
+ extern "C" \
{ \
- return BN_CURRENT_CORE_ABI_VERSION; \
- } \
- }
+ BINARYNINJAPLUGIN uint32_t CorePluginABIVersion() { return BN_CURRENT_CORE_ABI_VERSION; } \
+ }
#endif
@@ -142,7 +139,8 @@ extern "C"
LatePluginLoadOrder
};
- enum PluginLoadStatus {
+ enum PluginLoadStatus
+ {
NotAttemptedStatus,
LoadSucceededStatus,
LoadFailedStatus
@@ -229,11 +227,11 @@ extern "C"
//! Console log levels
enum BNLogLevel
{
- DebugLog = 0, //! Debug logging level, most verbose logging level
- InfoLog = 1, //! Information logging level, default logging level
- WarningLog = 2, //! Warning logging level, messages show with warning icon in the UI
- ErrorLog = 3, //! Error logging level, messages show with error icon in the UI
- AlertLog = 4 //! Alert logging level, messages are displayed with popup message box in the UI
+ DebugLog = 0, //! Debug logging level, most verbose logging level
+ InfoLog = 1, //! Information logging level, default logging level
+ WarningLog = 2, //! Warning logging level, messages show with warning icon in the UI
+ ErrorLog = 3, //! Error logging level, messages show with error icon in the UI
+ AlertLog = 4 //! Alert logging level, messages are displayed with popup message box in the UI
};
enum BNEndianness
@@ -251,15 +249,15 @@ extern "C"
enum BNTransformType
{
- BinaryCodecTransform = 0, // Two-way transform of data, binary input/output
- TextCodecTransform = 1, // Two-way transform of data, encoder output is text
- UnicodeCodecTransform = 2, // Two-way transform of data, encoder output is Unicode string (as UTF8)
- DecodeTransform = 3, // One-way decode only
- BinaryEncodeTransform = 4, // One-way encode only, output is binary
- TextEncodeTransform = 5, // One-way encode only, output is text
- EncryptTransform = 6, // Two-way encryption
- InvertingTransform = 7, // Transform that can be undone by performing twice
- HashTransform = 8 // Hash function
+ BinaryCodecTransform = 0, // Two-way transform of data, binary input/output
+ TextCodecTransform = 1, // Two-way transform of data, encoder output is text
+ UnicodeCodecTransform = 2, // Two-way transform of data, encoder output is Unicode string (as UTF8)
+ DecodeTransform = 3, // One-way decode only
+ BinaryEncodeTransform = 4, // One-way encode only, output is binary
+ TextEncodeTransform = 5, // One-way encode only, output is text
+ EncryptTransform = 6, // Two-way encryption
+ InvertingTransform = 7, // Transform that can be undone by performing twice
+ HashTransform = 8 // Hash function
};
enum BNBranchType
@@ -395,27 +393,28 @@ extern "C"
enum BNLowLevelILOperation
{
LLIL_NOP,
- LLIL_SET_REG, // Not valid in SSA form (see LLIL_SET_REG_SSA)
- LLIL_SET_REG_SPLIT, // Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)
- LLIL_SET_FLAG, // Not valid in SSA form (see LLIL_SET_FLAG_SSA)
- LLIL_SET_REG_STACK_REL, // Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)
- LLIL_REG_STACK_PUSH, // Not valid in SSA form (expanded)
- LLIL_LOAD, // Not valid in SSA form (see LLIL_LOAD_SSA)
- LLIL_STORE, // Not valid in SSA form (see LLIL_STORE_SSA)
- LLIL_PUSH, // Not valid in SSA form (expanded)
- LLIL_POP, // Not valid in SSA form (expanded)
- LLIL_REG, // Not valid in SSA form (see LLIL_REG_SSA)
- LLIL_REG_SPLIT, // Not valid in SSA form (see LLIL_REG_SPLIT_SSA)
- LLIL_REG_STACK_REL, // Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)
- LLIL_REG_STACK_POP, // Not valid in SSA form (expanded)
- LLIL_REG_STACK_FREE_REG, // Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA, LLIL_REG_STACK_FREE_ABS_SSA)
- LLIL_REG_STACK_FREE_REL, // Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)
+ LLIL_SET_REG, // Not valid in SSA form (see LLIL_SET_REG_SSA)
+ LLIL_SET_REG_SPLIT, // Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)
+ LLIL_SET_FLAG, // Not valid in SSA form (see LLIL_SET_FLAG_SSA)
+ LLIL_SET_REG_STACK_REL, // Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)
+ LLIL_REG_STACK_PUSH, // Not valid in SSA form (expanded)
+ LLIL_LOAD, // Not valid in SSA form (see LLIL_LOAD_SSA)
+ LLIL_STORE, // Not valid in SSA form (see LLIL_STORE_SSA)
+ LLIL_PUSH, // Not valid in SSA form (expanded)
+ LLIL_POP, // Not valid in SSA form (expanded)
+ LLIL_REG, // Not valid in SSA form (see LLIL_REG_SSA)
+ LLIL_REG_SPLIT, // Not valid in SSA form (see LLIL_REG_SPLIT_SSA)
+ LLIL_REG_STACK_REL, // Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)
+ LLIL_REG_STACK_POP, // Not valid in SSA form (expanded)
+ LLIL_REG_STACK_FREE_REG, // Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,
+ // LLIL_REG_STACK_FREE_ABS_SSA)
+ LLIL_REG_STACK_FREE_REL, // Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)
LLIL_CONST,
LLIL_CONST_PTR,
LLIL_EXTERN_PTR,
LLIL_FLOAT_CONST,
- LLIL_FLAG, // Not valid in SSA form (see LLIL_FLAG_SSA)
- LLIL_FLAG_BIT, // Not valid in SSA form (see LLIL_FLAG_BIT_SSA)
+ LLIL_FLAG, // Not valid in SSA form (see LLIL_FLAG_SSA)
+ LLIL_FLAG_BIT, // Not valid in SSA form (see LLIL_FLAG_BIT_SSA)
LLIL_ADD,
LLIL_ADC,
LLIL_SUB,
@@ -455,8 +454,8 @@ extern "C"
LLIL_NORET,
LLIL_IF,
LLIL_GOTO,
- LLIL_FLAG_COND, // Valid only in Lifted IL
- LLIL_FLAG_GROUP, // Valid only in Lifted IL
+ LLIL_FLAG_COND, // Valid only in Lifted IL
+ LLIL_FLAG_GROUP, // Valid only in Lifted IL
LLIL_CMP_E,
LLIL_CMP_NE,
LLIL_CMP_SLT,
@@ -508,8 +507,8 @@ extern "C"
LLIL_SET_REG_SPLIT_SSA,
LLIL_SET_REG_STACK_REL_SSA,
LLIL_SET_REG_STACK_ABS_SSA,
- LLIL_REG_SPLIT_DEST_SSA, // Only valid within an LLIL_SET_REG_SPLIT_SSA instruction
- LLIL_REG_STACK_DEST_SSA, // Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA
+ LLIL_REG_SPLIT_DEST_SSA, // Only valid within an LLIL_SET_REG_SPLIT_SSA instruction
+ LLIL_REG_STACK_DEST_SSA, // Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA
LLIL_REG_SSA,
LLIL_REG_SSA_PARTIAL,
LLIL_REG_SPLIT_SSA,
@@ -523,9 +522,10 @@ extern "C"
LLIL_CALL_SSA,
LLIL_SYSCALL_SSA,
LLIL_TAILCALL_SSA,
- LLIL_CALL_PARAM, // Only valid within the LLIL_CALL_SSA, LLIL_SYSCALL_SSA, LLIL_INTRINSIC, LLIL_INTRINSIC_SSA instructions
- LLIL_CALL_STACK_SSA, // Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions
- LLIL_CALL_OUTPUT_SSA, // Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions
+ LLIL_CALL_PARAM, // Only valid within the LLIL_CALL_SSA, LLIL_SYSCALL_SSA, LLIL_INTRINSIC, LLIL_INTRINSIC_SSA
+ // instructions
+ LLIL_CALL_STACK_SSA, // Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions
+ LLIL_CALL_OUTPUT_SSA, // Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions
LLIL_LOAD_SSA,
LLIL_STORE_SSA,
LLIL_INTRINSIC_SSA,
@@ -649,7 +649,8 @@ extern "C"
UnionStructureType = 2
};
- enum BNMemberScope {
+ enum BNMemberScope
+ {
NoScope,
StaticScope,
VirtualScope,
@@ -873,7 +874,8 @@ extern "C"
enum BNDataFlowQueryOption
{
- FromAddressesInLookupTableQueryOption // Use addresses instead of index in the from list within LookupTableValue results
+ FromAddressesInLookupTableQueryOption // Use addresses instead of index in the from list within
+ // LookupTableValue results
};
enum BNPluginOrigin
@@ -885,17 +887,17 @@ extern "C"
enum BNPluginStatus
{
- NotInstalledPluginStatus = 0x00000000,
- InstalledPluginStatus = 0x00000001,
- EnabledPluginStatus = 0x00000002,
- UpdateAvailablePluginStatus = 0x00000010,
- DeletePendingPluginStatus = 0x00000020,
- UpdatePendingPluginStatus = 0x00000040,
- DisablePendingPluginStatus = 0x00000080,
- PendingRestartPluginStatus = 0x00000200,
- BeingUpdatedPluginStatus = 0x00000400,
- BeingDeletedPluginStatus = 0x00000800,
- DependenciesBeingInstalledStatus = 0x00001000
+ NotInstalledPluginStatus = 0x00000000,
+ InstalledPluginStatus = 0x00000001,
+ EnabledPluginStatus = 0x00000002,
+ UpdateAvailablePluginStatus = 0x00000010,
+ DeletePendingPluginStatus = 0x00000020,
+ UpdatePendingPluginStatus = 0x00000040,
+ DisablePendingPluginStatus = 0x00000080,
+ PendingRestartPluginStatus = 0x00000200,
+ BeingUpdatedPluginStatus = 0x00000400,
+ BeingDeletedPluginStatus = 0x00000800,
+ DependenciesBeingInstalledStatus = 0x00001000
};
enum BNPluginType
@@ -971,16 +973,16 @@ extern "C"
enum BNMediumLevelILOperation
{
MLIL_NOP,
- MLIL_SET_VAR, // Not valid in SSA form (see MLIL_SET_VAR_SSA)
- MLIL_SET_VAR_FIELD, // Not valid in SSA form (see MLIL_SET_VAR_FIELD)
- MLIL_SET_VAR_SPLIT, // Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)
- MLIL_LOAD, // Not valid in SSA form (see MLIL_LOAD_SSA)
- MLIL_LOAD_STRUCT, // Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)
- MLIL_STORE, // Not valid in SSA form (see MLIL_STORE_SSA)
- MLIL_STORE_STRUCT, // Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)
- MLIL_VAR, // Not valid in SSA form (see MLIL_VAR_SSA)
- MLIL_VAR_FIELD, // Not valid in SSA form (see MLIL_VAR_SSA_FIELD)
- MLIL_VAR_SPLIT, // Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)
+ MLIL_SET_VAR, // Not valid in SSA form (see MLIL_SET_VAR_SSA)
+ MLIL_SET_VAR_FIELD, // Not valid in SSA form (see MLIL_SET_VAR_FIELD)
+ MLIL_SET_VAR_SPLIT, // Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)
+ MLIL_LOAD, // Not valid in SSA form (see MLIL_LOAD_SSA)
+ MLIL_LOAD_STRUCT, // Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)
+ MLIL_STORE, // Not valid in SSA form (see MLIL_STORE_SSA)
+ MLIL_STORE_STRUCT, // Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)
+ MLIL_VAR, // Not valid in SSA form (see MLIL_VAR_SSA)
+ MLIL_VAR_FIELD, // Not valid in SSA form (see MLIL_VAR_SSA_FIELD)
+ MLIL_VAR_SPLIT, // Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)
MLIL_ADDRESS_OF,
MLIL_ADDRESS_OF_FIELD,
MLIL_CONST,
@@ -1020,11 +1022,11 @@ extern "C"
MLIL_LOW_PART,
MLIL_JUMP,
MLIL_JUMP_TO,
- MLIL_RET_HINT, // Intermediate stages, does not appear in final forms
- MLIL_CALL, // Not valid in SSA form (see MLIL_CALL_SSA)
- MLIL_CALL_UNTYPED, // Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)
- MLIL_CALL_OUTPUT, // Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions
- MLIL_CALL_PARAM, // Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions
+ MLIL_RET_HINT, // Intermediate stages, does not appear in final forms
+ MLIL_CALL, // Not valid in SSA form (see MLIL_CALL_SSA)
+ MLIL_CALL_UNTYPED, // Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)
+ MLIL_CALL_OUTPUT, // Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions
+ MLIL_CALL_PARAM, // Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions
MLIL_RET,
MLIL_NORET,
MLIL_IF,
@@ -1042,12 +1044,12 @@ extern "C"
MLIL_TEST_BIT,
MLIL_BOOL_TO_INT,
MLIL_ADD_OVERFLOW,
- MLIL_SYSCALL, // Not valid in SSA form (see MLIL_SYSCALL_SSA)
- MLIL_SYSCALL_UNTYPED, // Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)
- MLIL_TAILCALL, // Not valid in SSA form (see MLIL_TAILCALL_SSA)
- MLIL_TAILCALL_UNTYPED, // Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)
- MLIL_INTRINSIC, // Not valid in SSA form (see MLIL_INTRINSIC_SSA)
- MLIL_FREE_VAR_SLOT, // Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)
+ MLIL_SYSCALL, // Not valid in SSA form (see MLIL_SYSCALL_SSA)
+ MLIL_SYSCALL_UNTYPED, // Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)
+ MLIL_TAILCALL, // Not valid in SSA form (see MLIL_TAILCALL_SSA)
+ MLIL_TAILCALL_UNTYPED, // Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)
+ MLIL_INTRINSIC, // Not valid in SSA form (see MLIL_INTRINSIC_SSA)
+ MLIL_FREE_VAR_SLOT, // Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)
MLIL_BP,
MLIL_TRAP,
MLIL_UNDEF,
@@ -1095,8 +1097,10 @@ extern "C"
MLIL_SYSCALL_UNTYPED_SSA,
MLIL_TAILCALL_SSA,
MLIL_TAILCALL_UNTYPED_SSA,
- MLIL_CALL_PARAM_SSA, // Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family instructions
- MLIL_CALL_OUTPUT_SSA, // Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family instructions
+ MLIL_CALL_PARAM_SSA, // Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family
+ // instructions
+ MLIL_CALL_OUTPUT_SSA, // Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family
+ // instructions
MLIL_LOAD_SSA,
MLIL_LOAD_STRUCT_SSA,
MLIL_STORE_SSA,
@@ -1393,7 +1397,7 @@ extern "C"
{
char* name;
char* longName;
- size_t fixedLength; // Variable length if zero
+ size_t fixedLength; // Variable length if zero
};
struct BNTransformParameter
@@ -1407,8 +1411,10 @@ extern "C"
void* context;
BNTransformParameterInfo* (*getParameters)(void* ctxt, size_t* count);
void (*freeParameters)(BNTransformParameterInfo* params, size_t count);
- bool (*decode)(void* ctxt, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
- bool (*encode)(void* ctxt, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
+ bool (*decode)(
+ void* ctxt, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
+ bool (*encode)(
+ void* ctxt, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
};
struct BNInstructionInfo
@@ -1419,7 +1425,7 @@ extern "C"
bool branchDelay;
BNBranchType branchType[BN_MAX_INSTRUCTION_BRANCHES];
uint64_t branchTarget[BN_MAX_INSTRUCTION_BRANCHES];
- BNArchitecture* branchArch[BN_MAX_INSTRUCTION_BRANCHES]; // If null, same architecture as instruction
+ BNArchitecture* branchArch[BN_MAX_INSTRUCTION_BRANCHES]; // If null, same architecture as instruction
};
enum BNRelocationType
@@ -1431,28 +1437,28 @@ extern "C"
IgnoredRelocation,
UnhandledRelocation
};
- #define MAX_RELOCATION_SIZE 8
+#define MAX_RELOCATION_SIZE 8
struct BNRelocationInfo
{
- BNRelocationType type; // BinaryNinja Relocation Type
- bool pcRelative; // PC Relative or Absolute (subtract address from relocation)
- bool baseRelative; // Relative to start of module (Add module base to relocation)
- uint64_t base; // Base address for this binary view
- size_t size; // Size of the data to be written
- size_t truncateSize; // After addition/subtraction truncate to
- uint64_t nativeType; // Base type from relocation entry
- size_t addend; // Addend value from relocation entry
- bool hasSign; // Addend should be subtracted
- bool implicitAddend; // Addend should be read from the BinaryView
- bool external; // Relocation entry points to external symbol
- size_t symbolIndex; // Index into symbol table
- size_t sectionIndex; // Index into the section table
- uint64_t address; // Absolute address or segment offset
- uint64_t target; // Target (set automatically)
- bool dataRelocation; // This relocation is effecting data not code
+ BNRelocationType type; // BinaryNinja Relocation Type
+ bool pcRelative; // PC Relative or Absolute (subtract address from relocation)
+ bool baseRelative; // Relative to start of module (Add module base to relocation)
+ uint64_t base; // Base address for this binary view
+ size_t size; // Size of the data to be written
+ size_t truncateSize; // After addition/subtraction truncate to
+ uint64_t nativeType; // Base type from relocation entry
+ size_t addend; // Addend value from relocation entry
+ bool hasSign; // Addend should be subtracted
+ bool implicitAddend; // Addend should be read from the BinaryView
+ bool external; // Relocation entry points to external symbol
+ size_t symbolIndex; // Index into symbol table
+ size_t sectionIndex; // Index into the section table
+ uint64_t address; // Absolute address or segment offset
+ uint64_t target; // Target (set automatically)
+ bool dataRelocation; // This relocation is effecting data not code
uint8_t relocationDataCache[MAX_RELOCATION_SIZE];
- struct BNRelocationInfo* prev; // Link to relocation another related relocation
- struct BNRelocationInfo* next; // Link to relocation another related relocation
+ struct BNRelocationInfo* prev; // Link to relocation another related relocation
+ struct BNRelocationInfo* next; // Link to relocation another related relocation
};
struct BNInstructionTextToken
@@ -1505,11 +1511,13 @@ extern "C"
size_t (*getMaxInstructionLength)(void* ctxt);
size_t (*getOpcodeDisplayLength)(void* ctxt);
BNArchitecture* (*getAssociatedArchitectureByAddress)(void* ctxt, uint64_t* addr);
- bool (*getInstructionInfo)(void* ctxt, const uint8_t* data, uint64_t addr, size_t maxLen, BNInstructionInfo* result);
+ bool (*getInstructionInfo)(
+ void* ctxt, const uint8_t* data, uint64_t addr, size_t maxLen, BNInstructionInfo* result);
bool (*getInstructionText)(void* ctxt, const uint8_t* data, uint64_t addr, size_t* len,
- BNInstructionTextToken** result, size_t* count);
+ BNInstructionTextToken** result, size_t* count);
void (*freeInstructionText)(BNInstructionTextToken* tokens, size_t count);
- bool (*getInstructionLowLevelIL)(void* ctxt, const uint8_t* data, uint64_t addr, size_t* len, BNLowLevelILFunction* il);
+ bool (*getInstructionLowLevelIL)(
+ void* ctxt, const uint8_t* data, uint64_t addr, size_t* len, BNLowLevelILFunction* il);
char* (*getRegisterName)(void* ctxt, uint32_t reg);
char* (*getFlagName)(void* ctxt, uint32_t flag);
char* (*getFlagWriteTypeName)(void* ctxt, uint32_t flags);
@@ -1522,17 +1530,18 @@ extern "C"
uint32_t* (*getAllSemanticFlagClasses)(void* ctxt, size_t* count);
uint32_t* (*getAllSemanticFlagGroups)(void* ctxt, size_t* count);
BNFlagRole (*getFlagRole)(void* ctxt, uint32_t flag, uint32_t semClass);
- uint32_t* (*getFlagsRequiredForFlagCondition)(void* ctxt, BNLowLevelILFlagCondition cond,
- uint32_t semClass, size_t* count);
+ uint32_t* (*getFlagsRequiredForFlagCondition)(
+ void* ctxt, BNLowLevelILFlagCondition cond, uint32_t semClass, size_t* count);
uint32_t* (*getFlagsRequiredForSemanticFlagGroup)(void* ctxt, uint32_t semGroup, size_t* count);
- BNFlagConditionForSemanticClass* (*getFlagConditionsForSemanticFlagGroup)(void* ctxt, uint32_t semGroup, size_t* count);
+ BNFlagConditionForSemanticClass* (*getFlagConditionsForSemanticFlagGroup)(
+ void* ctxt, uint32_t semGroup, size_t* count);
void (*freeFlagConditionsForSemanticFlagGroup)(void* ctxt, BNFlagConditionForSemanticClass* conditions);
uint32_t* (*getFlagsWrittenByFlagWriteType)(void* ctxt, uint32_t writeType, size_t* count);
uint32_t (*getSemanticClassForFlagWriteType)(void* ctxt, uint32_t writeType);
size_t (*getFlagWriteLowLevelIL)(void* ctxt, BNLowLevelILOperation op, size_t size, uint32_t flagWriteType,
- uint32_t flag, BNRegisterOrConstant* operands, size_t operandCount, BNLowLevelILFunction* il);
- size_t (*getFlagConditionLowLevelIL)(void* ctxt, BNLowLevelILFlagCondition cond,
- uint32_t semClass, BNLowLevelILFunction* il);
+ uint32_t flag, BNRegisterOrConstant* operands, size_t operandCount, BNLowLevelILFunction* il);
+ size_t (*getFlagConditionLowLevelIL)(
+ void* ctxt, BNLowLevelILFlagCondition cond, uint32_t semClass, BNLowLevelILFunction* il);
size_t (*getSemanticFlagGroupLowLevelIL)(void* ctxt, uint32_t semGroup, BNLowLevelILFunction* il);
void (*freeRegisterList)(void* ctxt, uint32_t* regs);
void (*getRegisterInfo)(void* ctxt, uint32_t reg, BNRegisterInfo* result);
@@ -1684,12 +1693,12 @@ extern "C"
// The following edge styles map to Qt's Qt::PenStyle enumeration
enum BNEdgePenStyle
{
- NoPen = 0, // no line at all.
- SolidLine = 1, // A plain line (default)
- DashLine = 2, // Dashes separated by a few pixels.
- DotLine = 3, // Dots separated by a few pixels.
- DashDotLine = 4, // Alternate dots and dashes.
- DashDotDotLine = 5, // One dash, two dots, one dash, two dots.
+ NoPen = 0, // no line at all.
+ SolidLine = 1, // A plain line (default)
+ DashLine = 2, // Dashes separated by a few pixels.
+ DotLine = 3, // Dots separated by a few pixels.
+ DashDotLine = 4, // Alternate dots and dashes.
+ DashDotDotLine = 5, // One dash, two dots, one dash, two dots.
};
struct BNEdgeStyle
@@ -1966,12 +1975,12 @@ extern "C"
void* context;
void (*freeObject)(void* ctxt);
- bool (*getRelocationInfo)(void* ctxt, BNBinaryView* view, BNArchitecture* arch, BNRelocationInfo* result,
- size_t resultCount);
- bool (*applyRelocation)(void* ctxt, BNBinaryView* view, BNArchitecture* arch, BNRelocation* reloc, uint8_t* dest,
- size_t len);
+ bool (*getRelocationInfo)(
+ void* ctxt, BNBinaryView* view, BNArchitecture* arch, BNRelocationInfo* result, size_t resultCount);
+ bool (*applyRelocation)(
+ void* ctxt, BNBinaryView* view, BNArchitecture* arch, BNRelocation* reloc, uint8_t* dest, size_t len);
size_t (*getOperandForExternalRelocation)(void* ctxt, const uint8_t* data, uint64_t addr, size_t length,
- BNLowLevelILFunction* il, BNRelocation* relocation);
+ BNLowLevelILFunction* il, BNRelocation* relocation);
};
struct BNTypeParserResult
@@ -2045,9 +2054,11 @@ extern "C"
void (*lowLevelILFunctionCommand)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func);
void (*lowLevelILInstructionCommand)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func, size_t instr);
void (*mediumLevelILFunctionCommand)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func);
- void (*mediumLevelILInstructionCommand)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr);
+ void (*mediumLevelILInstructionCommand)(
+ void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr);
void (*highLevelILFunctionCommand)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func);
- void (*highLevelILInstructionCommand)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr);
+ void (*highLevelILInstructionCommand)(
+ void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr);
bool (*defaultIsValid)(void* ctxt, BNBinaryView* view);
bool (*addressIsValid)(void* ctxt, BNBinaryView* view, uint64_t addr);
@@ -2056,9 +2067,11 @@ extern "C"
bool (*lowLevelILFunctionIsValid)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func);
bool (*lowLevelILInstructionIsValid)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func, size_t instr);
bool (*mediumLevelILFunctionIsValid)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func);
- bool (*mediumLevelILInstructionIsValid)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr);
+ bool (*mediumLevelILInstructionIsValid)(
+ void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr);
bool (*highLevelILFunctionIsValid)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func);
- bool (*highLevelILInstructionIsValid)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr);
+ bool (*highLevelILInstructionIsValid)(
+ void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr);
};
struct BNCustomCallingConvention
@@ -2087,10 +2100,10 @@ extern "C"
void (*getIncomingRegisterValue)(void* ctxt, uint32_t reg, BNFunction* func, BNRegisterValue* result);
void (*getIncomingFlagValue)(void* ctxt, uint32_t flag, BNFunction* func, BNRegisterValue* result);
- void (*getIncomingVariableForParameterVariable)(void* ctxt, const BNVariable* var,
- BNFunction* func, BNVariable* result);
- void (*getParameterVariableForIncomingVariable)(void* ctxt, const BNVariable* var,
- BNFunction* func, BNVariable* result);
+ void (*getIncomingVariableForParameterVariable)(
+ void* ctxt, const BNVariable* var, BNFunction* func, BNVariable* result);
+ void (*getParameterVariableForIncomingVariable)(
+ void* ctxt, const BNVariable* var, BNFunction* func, BNVariable* result);
bool (*areArgumentRegistersUsedForVarArgs)(void* ctxt);
};
@@ -2231,7 +2244,8 @@ extern "C"
void* context;
void (*destroyInstance)(void* ctxt);
int (*performRequest)(void* ctxt, const char* url);
- int (*performCustomRequest)(void* ctxt, const char* method, const char* url, uint64_t headerCount, const char* const* headerKeys, const char* const* headerValues, BNDownloadInstanceResponse** response);
+ int (*performCustomRequest)(void* ctxt, const char* method, const char* url, uint64_t headerCount,
+ const char* const* headerKeys, const char* const* headerValues, BNDownloadInstanceResponse** response);
void (*freeResponse)(void* ctxt, BNDownloadInstanceResponse* response);
};
@@ -2254,7 +2268,8 @@ extern "C"
{
void* context;
void (*destroyClient)(void* ctxt);
- bool (*connect)(void* ctxt, const char* host, uint64_t headerCount, const char* const* headerKeys, const char* const* headerValues);
+ bool (*connect)(void* ctxt, const char* host, uint64_t headerCount, const char* const* headerKeys,
+ const char* const* headerValues);
bool (*write)(const uint8_t* data, uint64_t len, void* ctxt);
bool (*disconnect)(void* ctxt);
};
@@ -2403,12 +2418,12 @@ extern "C"
{
BNFormInputFieldType type;
const char* prompt;
- BNBinaryView* view; // For AddressFormField
- uint64_t currentAddress; // For AddressFormField
- const char** choices; // For ChoiceFormField
- size_t count; // For ChoiceFormField
- const char* ext; // For OpenFileNameFormField, SaveFileNameFormField
- const char* defaultName; // For SaveFileNameFormField
+ BNBinaryView* view; // For AddressFormField
+ uint64_t currentAddress; // For AddressFormField
+ const char** choices; // For ChoiceFormField
+ size_t count; // For ChoiceFormField
+ const char* ext; // For OpenFileNameFormField, SaveFileNameFormField
+ const char* defaultName; // For SaveFileNameFormField
int64_t intResult;
uint64_t addressResult;
char* stringResult;
@@ -2424,25 +2439,25 @@ extern "C"
{
void* context;
void (*showPlainTextReport)(void* ctxt, BNBinaryView* view, const char* title, const char* contents);
- void (*showMarkdownReport)(void* ctxt, BNBinaryView* view, const char* title, const char* contents,
- const char* plaintext);
- void (*showHTMLReport)(void* ctxt, BNBinaryView* view, const char* title, const char* contents,
- const char* plaintext);
+ void (*showMarkdownReport)(
+ void* ctxt, BNBinaryView* view, const char* title, const char* contents, const char* plaintext);
+ void (*showHTMLReport)(
+ void* ctxt, BNBinaryView* view, const char* title, const char* contents, const char* plaintext);
void (*showGraphReport)(void* ctxt, BNBinaryView* view, const char* title, BNFlowGraph* graph);
void (*showReportCollection)(void* ctxt, const char* title, BNReportCollection* reports);
bool (*getTextLineInput)(void* ctxt, char** result, const char* prompt, const char* title);
bool (*getIntegerInput)(void* ctxt, int64_t* result, const char* prompt, const char* title);
- bool (*getAddressInput)(void* ctxt, uint64_t* result, const char* prompt, const char* title,
- BNBinaryView* view, uint64_t currentAddr);
- bool (*getChoiceInput)(void* ctxt, size_t* result, const char* prompt, const char* title,
- const char** choices, size_t count);
+ bool (*getAddressInput)(void* ctxt, uint64_t* result, const char* prompt, const char* title, BNBinaryView* view,
+ uint64_t currentAddr);
+ bool (*getChoiceInput)(
+ void* ctxt, size_t* result, const char* prompt, const char* title, const char** choices, size_t count);
bool (*getOpenFileNameInput)(void* ctxt, char** result, const char* prompt, const char* ext);
- bool (*getSaveFileNameInput)(void* ctxt, char** result, const char* prompt, const char* ext,
- const char* defaultName);
+ bool (*getSaveFileNameInput)(
+ void* ctxt, char** result, const char* prompt, const char* ext, const char* defaultName);
bool (*getDirectoryNameInput)(void* ctxt, char** result, const char* prompt, const char* defaultName);
bool (*getFormInput)(void* ctxt, BNFormInputField* fields, size_t count, const char* title);
- BNMessageBoxButtonResult (*showMessageBox)(void* ctxt, const char* title, const char* text,
- BNMessageBoxButtonSet buttons, BNMessageBoxIcon icon);
+ BNMessageBoxButtonResult (*showMessageBox)(
+ void* ctxt, const char* title, const char* text, BNMessageBoxButtonSet buttons, BNMessageBoxIcon icon);
bool (*openUrl)(void* ctxt, const char* url);
};
@@ -2467,11 +2482,11 @@ extern "C"
{
void* context;
void (*freeObject)(void* ctxt);
- bool (*isValidForData)(void* ctxt, BNBinaryView* view, uint64_t addr, BNType* type, BNTypeContext* typeCtx,
- size_t ctxCount);
+ bool (*isValidForData)(
+ void* ctxt, BNBinaryView* view, uint64_t addr, BNType* type, BNTypeContext* typeCtx, size_t ctxCount);
BNDisassemblyTextLine* (*getLinesForData)(void* ctxt, BNBinaryView* view, uint64_t addr, BNType* type,
- const BNInstructionTextToken* prefix, size_t prefixCount, size_t width, size_t* count, BNTypeContext* typeCtx,
- size_t ctxCount);
+ const BNInstructionTextToken* prefix, size_t prefixCount, size_t width, size_t* count,
+ BNTypeContext* typeCtx, size_t ctxCount);
};
enum BNSegmentFlag
@@ -2688,7 +2703,8 @@ extern "C"
BINARYNINJACOREAPI bool BNIsUIEnabled(void);
BINARYNINJACOREAPI void BNSetLicense(const char* licenseData);
- BINARYNINJACOREAPI bool BNAuthenticateEnterpriseServerWithCredentials(const char* username, const char* password, bool remember);
+ BINARYNINJACOREAPI bool BNAuthenticateEnterpriseServerWithCredentials(
+ const char* username, const char* password, bool remember);
BINARYNINJACOREAPI bool BNAuthenticateEnterpriseServerWithMethod(const char* method, bool remember);
BINARYNINJACOREAPI size_t BNGetEnterpriseServerAuthenticationMethods(char*** methods, char*** names);
BINARYNINJACOREAPI bool BNDeauthenticateEnterpriseServer(void);
@@ -2720,10 +2736,10 @@ extern "C"
// Plugin initialization
BINARYNINJACOREAPI bool BNInitPlugins(bool allowUserPlugins);
- BINARYNINJACOREAPI bool BNInitCorePlugins(void); // Deprecated, use BNInitPlugins
+ BINARYNINJACOREAPI bool BNInitCorePlugins(void); // Deprecated, use BNInitPlugins
BINARYNINJACOREAPI void BNDisablePlugins(void);
BINARYNINJACOREAPI bool BNIsPluginsEnabled(void);
- BINARYNINJACOREAPI void BNInitUserPlugins(void); // Deprecated, use BNInitPlugins
+ BINARYNINJACOREAPI void BNInitUserPlugins(void); // Deprecated, use BNInitPlugins
BINARYNINJACOREAPI void BNInitRepoPlugins(void);
BINARYNINJACOREAPI char* BNGetInstallDirectory(void);
@@ -2739,9 +2755,8 @@ extern "C"
BINARYNINJACOREAPI char* BNGetPathRelativeToUserPluginDirectory(const char* path);
BINARYNINJACOREAPI char* BNGetPathRelativeToUserDirectory(const char* path);
- BINARYNINJACOREAPI bool BNExecuteWorkerProcess(const char* path, const char* args[],
- BNDataBuffer* input, char** output, char** error,
- bool stdoutIsText, bool stderrIsText);
+ BINARYNINJACOREAPI bool BNExecuteWorkerProcess(const char* path, const char* args[], BNDataBuffer* input,
+ char** output, char** error, bool stdoutIsText, bool stderrIsText);
BINARYNINJACOREAPI void BNSetCurrentPluginLoadOrder(BNPluginLoadOrder order);
BINARYNINJACOREAPI void BNAddRequiredPluginDependency(const char* name);
@@ -2749,34 +2764,40 @@ extern "C"
// Logging
#ifdef __GNUC__
-__attribute__ ((format (printf, 2, 3)))
+ __attribute__((format(printf, 2, 3)))
#endif
- BINARYNINJACOREAPI void BNLog(BNLogLevel level, const char* fmt, ...);
+ BINARYNINJACOREAPI void
+ BNLog(BNLogLevel level, const char* fmt, ...);
#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
+ __attribute__((format(printf, 1, 2)))
#endif
- BINARYNINJACOREAPI void BNLogDebug(const char* fmt, ...);
+ BINARYNINJACOREAPI void
+ BNLogDebug(const char* fmt, ...);
#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
+ __attribute__((format(printf, 1, 2)))
#endif
- BINARYNINJACOREAPI void BNLogInfo(const char* fmt, ...);
+ BINARYNINJACOREAPI void
+ BNLogInfo(const char* fmt, ...);
#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
+ __attribute__((format(printf, 1, 2)))
#endif
- BINARYNINJACOREAPI void BNLogWarn(const char* fmt, ...);
+ BINARYNINJACOREAPI void
+ BNLogWarn(const char* fmt, ...);
#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
+ __attribute__((format(printf, 1, 2)))
#endif
- BINARYNINJACOREAPI void BNLogError(const char* fmt, ...);
+ BINARYNINJACOREAPI void
+ BNLogError(const char* fmt, ...);
#ifdef __GNUC__
-__attribute__ ((format (printf, 1, 2)))
+ __attribute__((format(printf, 1, 2)))
#endif
- BINARYNINJACOREAPI void BNLogAlert(const char* fmt, ...);
+ BINARYNINJACOREAPI void
+ BNLogAlert(const char* fmt, ...);
BINARYNINJACOREAPI void BNLogString(BNLogLevel level, const char* str);
@@ -2829,10 +2850,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNSaveSettings* BNNewSaveSettingsReference(BNSaveSettings* settings);
BINARYNINJACOREAPI void BNFreeSaveSettings(BNSaveSettings* settings);
- BINARYNINJACOREAPI bool BNIsSaveSettingsOptionSet(BNSaveSettings* settings,
- BNSaveOption option);
- BINARYNINJACOREAPI void BNSetSaveSettingsOption(BNSaveSettings* settings,
- BNSaveOption option, bool state);
+ BINARYNINJACOREAPI bool BNIsSaveSettingsOptionSet(BNSaveSettings* settings, BNSaveOption option);
+ BINARYNINJACOREAPI void BNSetSaveSettingsOption(BNSaveSettings* settings, BNSaveOption option, bool state);
// File metadata object
BINARYNINJACOREAPI BNFileMetadata* BNCreateFileMetadata(void);
@@ -2848,17 +2867,20 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNIsBackedByDatabase(BNFileMetadata* file, const char* binaryViewType);
BINARYNINJACOREAPI bool BNCreateDatabase(BNBinaryView* data, const char* path, BNSaveSettings* settings);
- BINARYNINJACOREAPI bool BNCreateDatabaseWithProgress(BNBinaryView* data, const char* path,
- void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total), BNSaveSettings* settings);
+ BINARYNINJACOREAPI bool BNCreateDatabaseWithProgress(BNBinaryView* data, const char* path, void* ctxt,
+ bool (*progress)(void* ctxt, size_t progress, size_t total), BNSaveSettings* settings);
BINARYNINJACOREAPI BNBinaryView* BNOpenExistingDatabase(BNFileMetadata* file, const char* path);
BINARYNINJACOREAPI BNBinaryView* BNOpenExistingDatabaseWithProgress(BNFileMetadata* file, const char* path,
- void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total));
+ void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total));
BINARYNINJACOREAPI BNBinaryView* BNOpenDatabaseForConfiguration(BNFileMetadata* file, const char* path);
BINARYNINJACOREAPI bool BNSaveAutoSnapshot(BNBinaryView* data, BNSaveSettings* settings);
BINARYNINJACOREAPI bool BNSaveAutoSnapshotWithProgress(BNBinaryView* data, void* ctxt,
- bool (*progress)(void* ctxt, size_t progress, size_t total), BNSaveSettings* settings);
- BINARYNINJACOREAPI void BNGetSnapshotData(BNFileMetadata* file, BNKeyValueStore* data, BNKeyValueStore* cache, void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total));
- BINARYNINJACOREAPI void BNApplySnapshotData(BNFileMetadata* file, BNBinaryView* view, BNKeyValueStore* data, BNKeyValueStore* cache, void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total), bool openForConfiguration, bool restoreRawView);
+ bool (*progress)(void* ctxt, size_t progress, size_t total), BNSaveSettings* settings);
+ BINARYNINJACOREAPI void BNGetSnapshotData(BNFileMetadata* file, BNKeyValueStore* data, BNKeyValueStore* cache,
+ void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total));
+ BINARYNINJACOREAPI void BNApplySnapshotData(BNFileMetadata* file, BNBinaryView* view, BNKeyValueStore* data,
+ BNKeyValueStore* cache, void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total),
+ bool openForConfiguration, bool restoreRawView);
BINARYNINJACOREAPI BNDatabase* BNGetFileMetadataDatabase(BNFileMetadata* file);
// Key value store
@@ -2872,7 +2894,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetKeyValueStoreValue(BNKeyValueStore* store, const char* name);
BINARYNINJACOREAPI BNDataBuffer* BNGetKeyValueStoreBuffer(BNKeyValueStore* store, const char* name);
BINARYNINJACOREAPI bool BNSetKeyValueStoreValue(BNKeyValueStore* store, const char* name, const char* value);
- BINARYNINJACOREAPI bool BNSetKeyValueStoreBuffer(BNKeyValueStore* store, const char* name, const BNDataBuffer* value);
+ BINARYNINJACOREAPI bool BNSetKeyValueStoreBuffer(
+ BNKeyValueStore* store, const char* name, const BNDataBuffer* value);
BINARYNINJACOREAPI BNDataBuffer* BNGetKeyValueStoreSerializedData(BNKeyValueStore* store);
BINARYNINJACOREAPI void BNBeginKeyValueStoreNamespace(BNKeyValueStore* store, const char* name);
BINARYNINJACOREAPI void BNEndKeyValueStoreNamespace(BNKeyValueStore* store);
@@ -2889,7 +2912,9 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNSnapshot* BNGetDatabaseCurrentSnapshot(BNDatabase* database);
BINARYNINJACOREAPI BNSnapshot** BNGetDatabaseSnapshots(BNDatabase* database, size_t* count);
BINARYNINJACOREAPI BNSnapshot* BNGetDatabaseSnapshot(BNDatabase* database, int64_t id);
- BINARYNINJACOREAPI int64_t BNWriteDatabaseSnapshotData(BNDatabase* database, int64_t* parents, size_t parentCount, BNBinaryView* file, const char* name, BNKeyValueStore* data, bool autoSave, void* ctxt, bool(*progress)(void*, size_t, size_t));
+ BINARYNINJACOREAPI int64_t BNWriteDatabaseSnapshotData(BNDatabase* database, int64_t* parents, size_t parentCount,
+ BNBinaryView* file, const char* name, BNKeyValueStore* data, bool autoSave, void* ctxt,
+ bool (*progress)(void*, size_t, size_t));
BINARYNINJACOREAPI bool BNRemoveDatabaseSnapshot(BNDatabase* database, int64_t id);
BINARYNINJACOREAPI char** BNGetDatabaseGlobalKeys(BNDatabase* database, size_t* count);
BINARYNINJACOREAPI int BNDatabaseHasGlobal(BNDatabase* database, const char* key);
@@ -2917,17 +2942,20 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNDataBuffer* BNGetSnapshotFileContents(BNSnapshot* snapshot);
BINARYNINJACOREAPI BNDataBuffer* BNGetSnapshotFileContentsHash(BNSnapshot* snapshot);
BINARYNINJACOREAPI BNKeyValueStore* BNReadSnapshotData(BNSnapshot* snapshot);
- BINARYNINJACOREAPI BNKeyValueStore* BNReadSnapshotDataWithProgress(BNSnapshot* snapshot, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total));
+ BINARYNINJACOREAPI BNKeyValueStore* BNReadSnapshotDataWithProgress(
+ BNSnapshot* snapshot, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total));
BINARYNINJACOREAPI BNUndoEntry* BNGetSnapshotUndoEntries(BNSnapshot* snapshot, size_t* count);
- BINARYNINJACOREAPI BNUndoEntry* BNGetSnapshotUndoEntriesWithProgress(BNSnapshot* snapshot, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total), size_t* count);
+ BINARYNINJACOREAPI BNUndoEntry* BNGetSnapshotUndoEntriesWithProgress(
+ BNSnapshot* snapshot, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total), size_t* count);
BINARYNINJACOREAPI bool BNSnapshotHasAncestor(BNSnapshot* snapshot, BNSnapshot* other);
BINARYNINJACOREAPI bool BNRebase(BNBinaryView* data, uint64_t address);
- BINARYNINJACOREAPI bool BNRebaseWithProgress(BNBinaryView* data, uint64_t address, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total));
+ BINARYNINJACOREAPI bool BNRebaseWithProgress(
+ BNBinaryView* data, uint64_t address, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total));
- BINARYNINJACOREAPI BNMergeResult BNMergeUserAnalysis(BNFileMetadata* file, const char* name, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total),
- char** excludedHashes, size_t excludedHashesCount);
+ BINARYNINJACOREAPI BNMergeResult BNMergeUserAnalysis(BNFileMetadata* file, const char* name, void* ctxt,
+ bool (*progress)(void* ctxt, size_t progress, size_t total), char** excludedHashes, size_t excludedHashesCount);
BINARYNINJACOREAPI char* BNGetOriginalFilename(BNFileMetadata* file);
BINARYNINJACOREAPI void BNSetOriginalFilename(BNFileMetadata* file, const char* name);
@@ -2988,10 +3016,12 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNNotifyDataInserted(BNBinaryView* view, uint64_t offset, size_t len);
BINARYNINJACOREAPI void BNNotifyDataRemoved(BNBinaryView* view, uint64_t offset, uint64_t len);
- BINARYNINJACOREAPI size_t BNGetEntropy(BNBinaryView* view, uint64_t offset, size_t len, size_t blockSize, float* result);
+ BINARYNINJACOREAPI size_t BNGetEntropy(
+ BNBinaryView* view, uint64_t offset, size_t len, size_t blockSize, float* result);
BINARYNINJACOREAPI BNModificationStatus BNGetModification(BNBinaryView* view, uint64_t offset);
- BINARYNINJACOREAPI size_t BNGetModificationArray(BNBinaryView* view, uint64_t offset, BNModificationStatus* result, size_t len);
+ BINARYNINJACOREAPI size_t BNGetModificationArray(
+ BNBinaryView* view, uint64_t offset, BNModificationStatus* result, size_t len);
BINARYNINJACOREAPI bool BNIsValidOffset(BNBinaryView* view, uint64_t offset);
BINARYNINJACOREAPI bool BNIsOffsetReadable(BNBinaryView* view, uint64_t offset);
@@ -3020,10 +3050,10 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNSaveToFile(BNBinaryView* view, BNFileAccessor* file);
BINARYNINJACOREAPI bool BNSaveToFilename(BNBinaryView* view, const char* filename);
- BINARYNINJACOREAPI void BNDefineRelocation(BNBinaryView* view, BNArchitecture* arch, BNRelocationInfo* info,
- uint64_t target, uint64_t reloc);
- BINARYNINJACOREAPI void BNDefineSymbolRelocation(BNBinaryView* view, BNArchitecture* arch, BNRelocationInfo* info,
- BNSymbol* target, uint64_t reloc);
+ BINARYNINJACOREAPI void BNDefineRelocation(
+ BNBinaryView* view, BNArchitecture* arch, BNRelocationInfo* info, uint64_t target, uint64_t reloc);
+ BINARYNINJACOREAPI void BNDefineSymbolRelocation(
+ BNBinaryView* view, BNArchitecture* arch, BNRelocationInfo* info, BNSymbol* target, uint64_t reloc);
BINARYNINJACOREAPI BNRange* BNGetRelocationRanges(BNBinaryView* view, size_t* count);
BINARYNINJACOREAPI BNRange* BNGetRelocationRangesAtAddress(BNBinaryView* view, uint64_t addr, size_t* count);
BINARYNINJACOREAPI bool BNRangeContainsRelocation(BNBinaryView* view, uint64_t addr, size_t size);
@@ -3036,63 +3066,53 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNIsNeverBranchPatchAvailable(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI bool BNIsAlwaysBranchPatchAvailable(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI bool BNIsInvertBranchPatchAvailable(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI bool BNIsSkipAndReturnZeroPatchAvailable(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI bool BNIsSkipAndReturnValuePatchAvailable(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI bool BNIsSkipAndReturnZeroPatchAvailable(
+ BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI bool BNIsSkipAndReturnValuePatchAvailable(
+ BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI bool BNConvertToNop(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI bool BNAlwaysBranch(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI bool BNInvertBranch(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI bool BNSkipAndReturnValue(BNBinaryView* view, BNArchitecture* arch, uint64_t addr, uint64_t value);
+ BINARYNINJACOREAPI bool BNSkipAndReturnValue(
+ BNBinaryView* view, BNArchitecture* arch, uint64_t addr, uint64_t value);
BINARYNINJACOREAPI size_t BNGetInstructionLength(BNBinaryView* view, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI bool BNFindNextData(BNBinaryView* view, uint64_t start,
- BNDataBuffer* data, uint64_t* result, BNFindFlag flags);
- BINARYNINJACOREAPI bool BNFindNextText(BNBinaryView* view, uint64_t start, const char* data,
- uint64_t* result, BNDisassemblySettings* settings, BNFindFlag flags,
- BNFunctionGraphType graph);
- BINARYNINJACOREAPI bool BNFindNextConstant(BNBinaryView* view, uint64_t start,
- uint64_t constant, uint64_t* result, BNDisassemblySettings* settings,
- BNFunctionGraphType graph);
+ BINARYNINJACOREAPI bool BNFindNextData(
+ BNBinaryView* view, uint64_t start, BNDataBuffer* data, uint64_t* result, BNFindFlag flags);
+ BINARYNINJACOREAPI bool BNFindNextText(BNBinaryView* view, uint64_t start, const char* data, uint64_t* result,
+ BNDisassemblySettings* settings, BNFindFlag flags, BNFunctionGraphType graph);
+ BINARYNINJACOREAPI bool BNFindNextConstant(BNBinaryView* view, uint64_t start, uint64_t constant, uint64_t* result,
+ BNDisassemblySettings* settings, BNFunctionGraphType graph);
- BINARYNINJACOREAPI bool BNFindNextDataWithProgress(BNBinaryView* view, uint64_t start,
- uint64_t end, BNDataBuffer* data, uint64_t* result, BNFindFlag flags,
- void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total));
- BINARYNINJACOREAPI bool BNFindNextTextWithProgress(BNBinaryView* view, uint64_t start,
- uint64_t end, const char* data, uint64_t* result, BNDisassemblySettings* settings,
- BNFindFlag flags, BNFunctionGraphType graph, void* ctxt,
- bool (*progress)(void* ctxt, size_t current, size_t total));
- BINARYNINJACOREAPI bool BNFindNextConstantWithProgress(BNBinaryView* view, uint64_t start,
- uint64_t end, uint64_t constant, uint64_t* result, BNDisassemblySettings* settings,
- BNFunctionGraphType graph, void* ctxt,
- bool (*progress)(void* ctxt, size_t current, size_t total));
+ BINARYNINJACOREAPI bool BNFindNextDataWithProgress(BNBinaryView* view, uint64_t start, uint64_t end,
+ BNDataBuffer* data, uint64_t* result, BNFindFlag flags, void* ctxt,
+ bool (*progress)(void* ctxt, size_t current, size_t total));
+ BINARYNINJACOREAPI bool BNFindNextTextWithProgress(BNBinaryView* view, uint64_t start, uint64_t end,
+ const char* data, uint64_t* result, BNDisassemblySettings* settings, BNFindFlag flags,
+ BNFunctionGraphType graph, void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total));
+ BINARYNINJACOREAPI bool BNFindNextConstantWithProgress(BNBinaryView* view, uint64_t start, uint64_t end,
+ uint64_t constant, uint64_t* result, BNDisassemblySettings* settings, BNFunctionGraphType graph, void* ctxt,
+ bool (*progress)(void* ctxt, size_t current, size_t total));
- BINARYNINJACOREAPI bool BNFindAllDataWithProgress(BNBinaryView* view, uint64_t start,
- uint64_t end, BNDataBuffer* data, BNFindFlag flags,
- void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total),
- void* matchCtxt,
- bool (*matchCallback)(void* matchCtxt, uint64_t addr, BNDataBuffer* match));
- BINARYNINJACOREAPI bool BNFindAllTextWithProgress(BNBinaryView* view, uint64_t start,
- uint64_t end, const char* data, BNDisassemblySettings* settings, BNFindFlag flags,
- BNFunctionGraphType graph, void* ctxt,
- bool (*progress)(void* ctxt, size_t current, size_t total),
- void* matchCtxt,
- bool (*matchCallback)(void* matchCtxt, uint64_t addr, const char* match,
- BNLinearDisassemblyLine* line));
- BINARYNINJACOREAPI bool BNFindAllConstantWithProgress(BNBinaryView* view, uint64_t start,
- uint64_t end, uint64_t constant, BNDisassemblySettings* settings,
- BNFunctionGraphType graph,
- void* ctxt,
- bool (*progress)(void* ctxt, size_t current, size_t total),
- void* matchCtxt,
- bool (*matchCallback)(void* matchCtxt, uint64_t addr,
- BNLinearDisassemblyLine* line));
+ BINARYNINJACOREAPI bool BNFindAllDataWithProgress(BNBinaryView* view, uint64_t start, uint64_t end,
+ BNDataBuffer* data, BNFindFlag flags, void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total),
+ void* matchCtxt, bool (*matchCallback)(void* matchCtxt, uint64_t addr, BNDataBuffer* match));
+ BINARYNINJACOREAPI bool BNFindAllTextWithProgress(BNBinaryView* view, uint64_t start, uint64_t end,
+ const char* data, BNDisassemblySettings* settings, BNFindFlag flags, BNFunctionGraphType graph, void* ctxt,
+ bool (*progress)(void* ctxt, size_t current, size_t total), void* matchCtxt,
+ bool (*matchCallback)(void* matchCtxt, uint64_t addr, const char* match, BNLinearDisassemblyLine* line));
+ BINARYNINJACOREAPI bool BNFindAllConstantWithProgress(BNBinaryView* view, uint64_t start, uint64_t end,
+ uint64_t constant, BNDisassemblySettings* settings, BNFunctionGraphType graph, void* ctxt,
+ bool (*progress)(void* ctxt, size_t current, size_t total), void* matchCtxt,
+ bool (*matchCallback)(void* matchCtxt, uint64_t addr, BNLinearDisassemblyLine* line));
- BINARYNINJACOREAPI void BNAddAutoSegment(BNBinaryView* view, uint64_t start, uint64_t length,
- uint64_t dataOffset, uint64_t dataLength, uint32_t flags);
+ BINARYNINJACOREAPI void BNAddAutoSegment(
+ BNBinaryView* view, uint64_t start, uint64_t length, uint64_t dataOffset, uint64_t dataLength, uint32_t flags);
BINARYNINJACOREAPI void BNRemoveAutoSegment(BNBinaryView* view, uint64_t start, uint64_t length);
- BINARYNINJACOREAPI void BNAddUserSegment(BNBinaryView* view, uint64_t start, uint64_t length,
- uint64_t dataOffset, uint64_t dataLength, uint32_t flags);
+ BINARYNINJACOREAPI void BNAddUserSegment(
+ BNBinaryView* view, uint64_t start, uint64_t length, uint64_t dataOffset, uint64_t dataLength, uint32_t flags);
BINARYNINJACOREAPI void BNRemoveUserSegment(BNBinaryView* view, uint64_t start, uint64_t length);
BINARYNINJACOREAPI BNSegment** BNGetSegments(BNBinaryView* view, size_t* count);
BINARYNINJACOREAPI void BNFreeSegmentList(BNSegment** segments, size_t count);
@@ -3100,12 +3120,12 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNGetAddressForDataOffset(BNBinaryView* view, uint64_t offset, uint64_t* addr);
BINARYNINJACOREAPI void BNAddAutoSection(BNBinaryView* view, const char* name, uint64_t start, uint64_t length,
- BNSectionSemantics semantics, const char* type, uint64_t align, uint64_t entrySize,
- const char* linkedSection, const char* infoSection, uint64_t infoData);
+ BNSectionSemantics semantics, const char* type, uint64_t align, uint64_t entrySize, const char* linkedSection,
+ const char* infoSection, uint64_t infoData);
BINARYNINJACOREAPI void BNRemoveAutoSection(BNBinaryView* view, const char* name);
BINARYNINJACOREAPI void BNAddUserSection(BNBinaryView* view, const char* name, uint64_t start, uint64_t length,
- BNSectionSemantics semantics, const char* type, uint64_t align, uint64_t entrySize,
- const char* linkedSection, const char* infoSection, uint64_t infoData);
+ BNSectionSemantics semantics, const char* type, uint64_t align, uint64_t entrySize, const char* linkedSection,
+ const char* infoSection, uint64_t infoData);
BINARYNINJACOREAPI void BNRemoveUserSection(BNBinaryView* view, const char* name);
BINARYNINJACOREAPI BNSection** BNGetSections(BNBinaryView* view, size_t* count);
BINARYNINJACOREAPI BNSection** BNGetSectionsAt(BNBinaryView* view, uint64_t addr, size_t* count);
@@ -3133,7 +3153,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNBinaryView* BNCreateBinaryDataViewFromFile(BNFileMetadata* file, BNFileAccessor* accessor);
// Creation of new types of binary views
- BINARYNINJACOREAPI BNBinaryView* BNCreateCustomBinaryView(const char* name, BNFileMetadata* file, BNBinaryView* parent, BNCustomBinaryView* view);
+ BINARYNINJACOREAPI BNBinaryView* BNCreateCustomBinaryView(
+ const char* name, BNFileMetadata* file, BNBinaryView* parent, BNCustomBinaryView* view);
BINARYNINJACOREAPI BNBinaryViewType* BNGetBinaryViewTypeByName(const char* name);
BINARYNINJACOREAPI BNBinaryViewType** BNGetBinaryViewTypes(size_t* count);
@@ -3145,24 +3166,25 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNBinaryView* BNCreateBinaryViewOfType(BNBinaryViewType* type, BNBinaryView* data);
BINARYNINJACOREAPI BNBinaryView* BNParseBinaryViewOfType(BNBinaryViewType* type, BNBinaryView* data);
BINARYNINJACOREAPI bool BNIsBinaryViewTypeValidForData(BNBinaryViewType* type, BNBinaryView* data);
- BINARYNINJACOREAPI BNSettings* BNGetBinaryViewDefaultLoadSettingsForData(BNBinaryViewType* type, BNBinaryView* data);
+ BINARYNINJACOREAPI BNSettings* BNGetBinaryViewDefaultLoadSettingsForData(
+ BNBinaryViewType* type, BNBinaryView* data);
BINARYNINJACOREAPI BNSettings* BNGetBinaryViewLoadSettingsForData(BNBinaryViewType* type, BNBinaryView* data);
- BINARYNINJACOREAPI BNBinaryViewType* BNRegisterBinaryViewType(const char* name, const char* longName,
- BNCustomBinaryViewType* type);
+ BINARYNINJACOREAPI BNBinaryViewType* BNRegisterBinaryViewType(
+ const char* name, const char* longName, BNCustomBinaryViewType* type);
- BINARYNINJACOREAPI void BNRegisterArchitectureForViewType(BNBinaryViewType* type, uint32_t id,
- BNEndianness endian, BNArchitecture* arch); // Deprecated, use BNRegisterPlatformRecognizerForViewType
+ BINARYNINJACOREAPI void BNRegisterArchitectureForViewType(BNBinaryViewType* type, uint32_t id, BNEndianness endian,
+ BNArchitecture* arch); // Deprecated, use BNRegisterPlatformRecognizerForViewType
BINARYNINJACOREAPI BNArchitecture* BNGetArchitectureForViewType(BNBinaryViewType* type, uint32_t id,
- BNEndianness endian); // Deprecated, use BNRecognizePlatformForViewType
+ BNEndianness endian); // Deprecated, use BNRecognizePlatformForViewType
- BINARYNINJACOREAPI void BNRegisterPlatformForViewType(BNBinaryViewType* type, uint32_t id,
- BNArchitecture* arch, BNPlatform* platform); // Deprecated, use BNRegisterPlatformRecognizerForViewType
- BINARYNINJACOREAPI BNPlatform* BNGetPlatformForViewType(BNBinaryViewType* type,
- uint32_t id, BNArchitecture* arch); // Deprecated, use BNRecognizePlatformForViewType
+ BINARYNINJACOREAPI void BNRegisterPlatformForViewType(BNBinaryViewType* type, uint32_t id, BNArchitecture* arch,
+ BNPlatform* platform); // Deprecated, use BNRegisterPlatformRecognizerForViewType
+ BINARYNINJACOREAPI BNPlatform* BNGetPlatformForViewType(
+ BNBinaryViewType* type, uint32_t id, BNArchitecture* arch); // Deprecated, use BNRecognizePlatformForViewType
- BINARYNINJACOREAPI void BNRegisterDefaultPlatformForViewType(BNBinaryViewType* type, BNArchitecture* arch,
- BNPlatform* platform);
+ BINARYNINJACOREAPI void BNRegisterDefaultPlatformForViewType(
+ BNBinaryViewType* type, BNArchitecture* arch, BNPlatform* platform);
// Expanded identification of Platform for BinaryViewTypes. Supersedes BNRegisterArchitectureForViewType
// and BNRegisterPlatformForViewType, as these have certain edge cases (overloaded elf families, for example)
@@ -3182,21 +3204,22 @@ __attribute__ ((format (printf, 1, 2)))
// are invoked.
//
// Support for this API tentatively requires explicit support in the BinaryView implementation.
- BINARYNINJACOREAPI void BNRegisterPlatformRecognizerForViewType(BNBinaryViewType* type, uint64_t id, BNEndianness endian,
- BNPlatform* (*callback)(void* ctx, BNBinaryView* view, BNMetadata* metadata), void* ctx);
+ BINARYNINJACOREAPI void BNRegisterPlatformRecognizerForViewType(BNBinaryViewType* type, uint64_t id,
+ BNEndianness endian, BNPlatform* (*callback)(void* ctx, BNBinaryView* view, BNMetadata* metadata), void* ctx);
- // BinaryView* passed in here should be the parent view (not the partially constructed object!), and this function should
- // be called from the BNCustomBinaryView::init implementation.
+ // BinaryView* passed in here should be the parent view (not the partially constructed object!), and this function
+ // should be called from the BNCustomBinaryView::init implementation.
//
- // 'id' and 'endianness' are used to determine which registered callbacks are actually invoked to eliminate some common sources
- // of boilerplate that all callbacks would have to implement otherwise. If these aren't applicable to your binaryviewtype just
- // use constants here and document them so that people registering Platform recognizers for your view type know what to use.
- BINARYNINJACOREAPI BNPlatform* BNRecognizePlatformForViewType(BNBinaryViewType* type, uint64_t id, BNEndianness endian,
- BNBinaryView* view, BNMetadata* metadata);
+ // 'id' and 'endianness' are used to determine which registered callbacks are actually invoked to eliminate some
+ // common sources of boilerplate that all callbacks would have to implement otherwise. If these aren't applicable to
+ // your binaryviewtype just use constants here and document them so that people registering Platform recognizers for
+ // your view type know what to use.
+ BINARYNINJACOREAPI BNPlatform* BNRecognizePlatformForViewType(
+ BNBinaryViewType* type, uint64_t id, BNEndianness endian, BNBinaryView* view, BNMetadata* metadata);
- BINARYNINJACOREAPI void BNRegisterBinaryViewEvent(BNBinaryViewEventType type,
- void (*callback)(void* ctx, BNBinaryView* view), void* ctx);
+ BINARYNINJACOREAPI void BNRegisterBinaryViewEvent(
+ BNBinaryViewEventType type, void (*callback)(void* ctx, BNBinaryView* view), void* ctx);
// Stream reader object
BINARYNINJACOREAPI BNBinaryReader* BNCreateBinaryReader(BNBinaryView* view);
@@ -3247,8 +3270,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNTransform* BNGetTransformByName(const char* name);
BINARYNINJACOREAPI BNTransform** BNGetTransformTypeList(size_t* count);
BINARYNINJACOREAPI void BNFreeTransformTypeList(BNTransform** xforms);
- BINARYNINJACOREAPI BNTransform* BNRegisterTransformType(BNTransformType type, const char* name, const char* longName,
- const char* group, BNCustomTransform* xform);
+ BINARYNINJACOREAPI BNTransform* BNRegisterTransformType(
+ BNTransformType type, const char* name, const char* longName, const char* group, BNCustomTransform* xform);
BINARYNINJACOREAPI BNTransformType BNGetTransformType(BNTransform* xform);
BINARYNINJACOREAPI char* BNGetTransformName(BNTransform* xform);
@@ -3256,19 +3279,20 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetTransformGroup(BNTransform* xform);
BINARYNINJACOREAPI BNTransformParameterInfo* BNGetTransformParameterList(BNTransform* xform, size_t* count);
BINARYNINJACOREAPI void BNFreeTransformParameterList(BNTransformParameterInfo* params, size_t count);
- BINARYNINJACOREAPI bool BNDecode(BNTransform* xform, BNDataBuffer* input, BNDataBuffer* output,
- BNTransformParameter* params, size_t paramCount);
- BINARYNINJACOREAPI bool BNEncode(BNTransform* xform, BNDataBuffer* input, BNDataBuffer* output,
- BNTransformParameter* params, size_t paramCount);
+ BINARYNINJACOREAPI bool BNDecode(
+ BNTransform* xform, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
+ BINARYNINJACOREAPI bool BNEncode(
+ BNTransform* xform, BNDataBuffer* input, BNDataBuffer* output, BNTransformParameter* params, size_t paramCount);
// Architectures
BINARYNINJACOREAPI BNArchitecture* BNGetArchitectureByName(const char* name);
BINARYNINJACOREAPI BNArchitecture** BNGetArchitectureList(size_t* count);
BINARYNINJACOREAPI void BNFreeArchitectureList(BNArchitecture** archs);
BINARYNINJACOREAPI BNArchitecture* BNRegisterArchitecture(const char* name, BNCustomArchitecture* arch);
- BINARYNINJACOREAPI BNArchitecture* BNRegisterArchitectureExtension(const char* name,
- BNArchitecture* base, BNCustomArchitecture* arch);
- BINARYNINJACOREAPI void BNAddArchitectureRedirection(BNArchitecture* arch, BNArchitecture* from, BNArchitecture* to);
+ BINARYNINJACOREAPI BNArchitecture* BNRegisterArchitectureExtension(
+ const char* name, BNArchitecture* base, BNCustomArchitecture* arch);
+ BINARYNINJACOREAPI void BNAddArchitectureRedirection(
+ BNArchitecture* arch, BNArchitecture* from, BNArchitecture* to);
BINARYNINJACOREAPI BNArchitecture* BNRegisterArchitectureHook(BNArchitecture* base, BNCustomArchitecture* arch);
BINARYNINJACOREAPI void BNFinalizeArchitectureHook(BNArchitecture* base);
BINARYNINJACOREAPI BNArchitecture* BNGetNativeTypeParserArchitecture();
@@ -3281,12 +3305,12 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI size_t BNGetArchitectureMaxInstructionLength(BNArchitecture* arch);
BINARYNINJACOREAPI size_t BNGetArchitectureOpcodeDisplayLength(BNArchitecture* arch);
BINARYNINJACOREAPI BNArchitecture* BNGetAssociatedArchitectureByAddress(BNArchitecture* arch, uint64_t* addr);
- BINARYNINJACOREAPI bool BNGetInstructionInfo(BNArchitecture* arch, const uint8_t* data, uint64_t addr,
- size_t maxLen, BNInstructionInfo* result);
- BINARYNINJACOREAPI bool BNGetInstructionText(BNArchitecture* arch, const uint8_t* data, uint64_t addr,
- size_t* len, BNInstructionTextToken** result, size_t* count);
- BINARYNINJACOREAPI bool BNGetInstructionLowLevelIL(BNArchitecture* arch, const uint8_t* data, uint64_t addr,
- size_t* len, BNLowLevelILFunction* il);
+ BINARYNINJACOREAPI bool BNGetInstructionInfo(
+ BNArchitecture* arch, const uint8_t* data, uint64_t addr, size_t maxLen, BNInstructionInfo* result);
+ BINARYNINJACOREAPI bool BNGetInstructionText(BNArchitecture* arch, const uint8_t* data, uint64_t addr, size_t* len,
+ BNInstructionTextToken** result, size_t* count);
+ BINARYNINJACOREAPI bool BNGetInstructionLowLevelIL(
+ BNArchitecture* arch, const uint8_t* data, uint64_t addr, size_t* len, BNLowLevelILFunction* il);
BINARYNINJACOREAPI void BNFreeInstructionText(BNInstructionTextToken* tokens, size_t count);
BINARYNINJACOREAPI void BNFreeInstructionTextLines(BNInstructionTextLine* lines, size_t count);
BINARYNINJACOREAPI char* BNGetArchitectureRegisterName(BNArchitecture* arch, uint32_t reg);
@@ -3301,28 +3325,31 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI uint32_t* BNGetAllArchitectureSemanticFlagClasses(BNArchitecture* arch, size_t* count);
BINARYNINJACOREAPI uint32_t* BNGetAllArchitectureSemanticFlagGroups(BNArchitecture* arch, size_t* count);
BINARYNINJACOREAPI BNFlagRole BNGetArchitectureFlagRole(BNArchitecture* arch, uint32_t flag, uint32_t semClass);
- BINARYNINJACOREAPI uint32_t* BNGetArchitectureFlagsRequiredForFlagCondition(BNArchitecture* arch, BNLowLevelILFlagCondition cond,
- uint32_t semClass, size_t* count);
- BINARYNINJACOREAPI uint32_t* BNGetArchitectureFlagsRequiredForSemanticFlagGroup(BNArchitecture* arch,
- uint32_t semGroup, size_t* count);
- BINARYNINJACOREAPI BNFlagConditionForSemanticClass* BNGetArchitectureFlagConditionsForSemanticFlagGroup(BNArchitecture* arch,
- uint32_t semGroup, size_t* count);
+ BINARYNINJACOREAPI uint32_t* BNGetArchitectureFlagsRequiredForFlagCondition(
+ BNArchitecture* arch, BNLowLevelILFlagCondition cond, uint32_t semClass, size_t* count);
+ BINARYNINJACOREAPI uint32_t* BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
+ BNArchitecture* arch, uint32_t semGroup, size_t* count);
+ BINARYNINJACOREAPI BNFlagConditionForSemanticClass* BNGetArchitectureFlagConditionsForSemanticFlagGroup(
+ BNArchitecture* arch, uint32_t semGroup, size_t* count);
BINARYNINJACOREAPI void BNFreeFlagConditionsForSemanticFlagGroup(BNFlagConditionForSemanticClass* conditions);
- BINARYNINJACOREAPI uint32_t* BNGetArchitectureFlagsWrittenByFlagWriteType(BNArchitecture* arch, uint32_t writeType,
- size_t* count);
- BINARYNINJACOREAPI uint32_t BNGetArchitectureSemanticClassForFlagWriteType(BNArchitecture* arch, uint32_t writeType);
+ BINARYNINJACOREAPI uint32_t* BNGetArchitectureFlagsWrittenByFlagWriteType(
+ BNArchitecture* arch, uint32_t writeType, size_t* count);
+ BINARYNINJACOREAPI uint32_t BNGetArchitectureSemanticClassForFlagWriteType(
+ BNArchitecture* arch, uint32_t writeType);
BINARYNINJACOREAPI size_t BNGetArchitectureFlagWriteLowLevelIL(BNArchitecture* arch, BNLowLevelILOperation op,
- size_t size, uint32_t flagWriteType, uint32_t flag, BNRegisterOrConstant* operands, size_t operandCount,
- BNLowLevelILFunction* il);
- BINARYNINJACOREAPI size_t BNGetDefaultArchitectureFlagWriteLowLevelIL(BNArchitecture* arch, BNLowLevelILOperation op,
- size_t size, BNFlagRole role, BNRegisterOrConstant* operands, size_t operandCount, BNLowLevelILFunction* il);
- BINARYNINJACOREAPI size_t BNGetArchitectureFlagConditionLowLevelIL(BNArchitecture* arch, BNLowLevelILFlagCondition cond,
- uint32_t semClass, BNLowLevelILFunction* il);
- BINARYNINJACOREAPI size_t BNGetDefaultArchitectureFlagConditionLowLevelIL(BNArchitecture* arch, BNLowLevelILFlagCondition cond,
- uint32_t semClass, BNLowLevelILFunction* il);
- BINARYNINJACOREAPI size_t BNGetArchitectureSemanticFlagGroupLowLevelIL(BNArchitecture* arch,
- uint32_t semGroup, BNLowLevelILFunction* il);
- BINARYNINJACOREAPI uint32_t* BNGetModifiedArchitectureRegistersOnWrite(BNArchitecture* arch, uint32_t reg, size_t* count);
+ size_t size, uint32_t flagWriteType, uint32_t flag, BNRegisterOrConstant* operands, size_t operandCount,
+ BNLowLevelILFunction* il);
+ BINARYNINJACOREAPI size_t BNGetDefaultArchitectureFlagWriteLowLevelIL(BNArchitecture* arch,
+ BNLowLevelILOperation op, size_t size, BNFlagRole role, BNRegisterOrConstant* operands, size_t operandCount,
+ BNLowLevelILFunction* il);
+ BINARYNINJACOREAPI size_t BNGetArchitectureFlagConditionLowLevelIL(
+ BNArchitecture* arch, BNLowLevelILFlagCondition cond, uint32_t semClass, BNLowLevelILFunction* il);
+ BINARYNINJACOREAPI size_t BNGetDefaultArchitectureFlagConditionLowLevelIL(
+ BNArchitecture* arch, BNLowLevelILFlagCondition cond, uint32_t semClass, BNLowLevelILFunction* il);
+ BINARYNINJACOREAPI size_t BNGetArchitectureSemanticFlagGroupLowLevelIL(
+ BNArchitecture* arch, uint32_t semGroup, BNLowLevelILFunction* il);
+ BINARYNINJACOREAPI uint32_t* BNGetModifiedArchitectureRegistersOnWrite(
+ BNArchitecture* arch, uint32_t reg, size_t* count);
BINARYNINJACOREAPI void BNFreeRegisterList(uint32_t* regs);
BINARYNINJACOREAPI BNRegisterInfo BNGetArchitectureRegisterInfo(BNArchitecture* arch, uint32_t reg);
BINARYNINJACOREAPI uint32_t BNGetArchitectureStackPointerRegister(BNArchitecture* arch);
@@ -3340,53 +3367,56 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetArchitectureIntrinsicName(BNArchitecture* arch, uint32_t intrinsic);
BINARYNINJACOREAPI uint32_t* BNGetAllArchitectureIntrinsics(BNArchitecture* arch, size_t* count);
- BINARYNINJACOREAPI BNNameAndType* BNGetArchitectureIntrinsicInputs(BNArchitecture* arch, uint32_t intrinsic, size_t* count);
+ BINARYNINJACOREAPI BNNameAndType* BNGetArchitectureIntrinsicInputs(
+ BNArchitecture* arch, uint32_t intrinsic, size_t* count);
BINARYNINJACOREAPI void BNFreeNameAndTypeList(BNNameAndType* nt, size_t count);
- BINARYNINJACOREAPI BNTypeWithConfidence* BNGetArchitectureIntrinsicOutputs(BNArchitecture* arch, uint32_t intrinsic,
- size_t* count);
+ BINARYNINJACOREAPI BNTypeWithConfidence* BNGetArchitectureIntrinsicOutputs(
+ BNArchitecture* arch, uint32_t intrinsic, size_t* count);
BINARYNINJACOREAPI void BNFreeOutputTypeList(BNTypeWithConfidence* types, size_t count);
BINARYNINJACOREAPI bool BNCanArchitectureAssemble(BNArchitecture* arch);
- BINARYNINJACOREAPI bool BNAssemble(BNArchitecture* arch, const char* code, uint64_t addr, BNDataBuffer* result, char** errors);
+ BINARYNINJACOREAPI bool BNAssemble(
+ BNArchitecture* arch, const char* code, uint64_t addr, BNDataBuffer* result, char** errors);
- BINARYNINJACOREAPI bool BNIsArchitectureNeverBranchPatchAvailable(BNArchitecture* arch, const uint8_t* data,
- uint64_t addr, size_t len);
- BINARYNINJACOREAPI bool BNIsArchitectureAlwaysBranchPatchAvailable(BNArchitecture* arch, const uint8_t* data,
- uint64_t addr, size_t len);
- BINARYNINJACOREAPI bool BNIsArchitectureInvertBranchPatchAvailable(BNArchitecture* arch, const uint8_t* data,
- uint64_t addr, size_t len);
- BINARYNINJACOREAPI bool BNIsArchitectureSkipAndReturnZeroPatchAvailable(BNArchitecture* arch, const uint8_t* data,
- uint64_t addr, size_t len);
- BINARYNINJACOREAPI bool BNIsArchitectureSkipAndReturnValuePatchAvailable(BNArchitecture* arch, const uint8_t* data,
- uint64_t addr, size_t len);
+ BINARYNINJACOREAPI bool BNIsArchitectureNeverBranchPatchAvailable(
+ BNArchitecture* arch, const uint8_t* data, uint64_t addr, size_t len);
+ BINARYNINJACOREAPI bool BNIsArchitectureAlwaysBranchPatchAvailable(
+ BNArchitecture* arch, const uint8_t* data, uint64_t addr, size_t len);
+ BINARYNINJACOREAPI bool BNIsArchitectureInvertBranchPatchAvailable(
+ BNArchitecture* arch, const uint8_t* data, uint64_t addr, size_t len);
+ BINARYNINJACOREAPI bool BNIsArchitectureSkipAndReturnZeroPatchAvailable(
+ BNArchitecture* arch, const uint8_t* data, uint64_t addr, size_t len);
+ BINARYNINJACOREAPI bool BNIsArchitectureSkipAndReturnValuePatchAvailable(
+ BNArchitecture* arch, const uint8_t* data, uint64_t addr, size_t len);
BINARYNINJACOREAPI bool BNArchitectureConvertToNop(BNArchitecture* arch, uint8_t* data, uint64_t addr, size_t len);
BINARYNINJACOREAPI bool BNArchitectureAlwaysBranch(BNArchitecture* arch, uint8_t* data, uint64_t addr, size_t len);
BINARYNINJACOREAPI bool BNArchitectureInvertBranch(BNArchitecture* arch, uint8_t* data, uint64_t addr, size_t len);
- BINARYNINJACOREAPI bool BNArchitectureSkipAndReturnValue(BNArchitecture* arch, uint8_t* data, uint64_t addr,
- size_t len, uint64_t value);
+ BINARYNINJACOREAPI bool BNArchitectureSkipAndReturnValue(
+ BNArchitecture* arch, uint8_t* data, uint64_t addr, size_t len, uint64_t value);
BINARYNINJACOREAPI void BNRegisterArchitectureFunctionRecognizer(BNArchitecture* arch, BNFunctionRecognizer* rec);
- BINARYNINJACOREAPI bool BNIsBinaryViewTypeArchitectureConstantDefined(BNArchitecture* arch, const char* type,
- const char* name);
- BINARYNINJACOREAPI uint64_t BNGetBinaryViewTypeArchitectureConstant(BNArchitecture* arch, const char* type,
- const char* name, uint64_t defaultValue);
- BINARYNINJACOREAPI void BNSetBinaryViewTypeArchitectureConstant(BNArchitecture* arch, const char* type,
- const char* name, uint64_t value);
+ BINARYNINJACOREAPI bool BNIsBinaryViewTypeArchitectureConstantDefined(
+ BNArchitecture* arch, const char* type, const char* name);
+ BINARYNINJACOREAPI uint64_t BNGetBinaryViewTypeArchitectureConstant(
+ BNArchitecture* arch, const char* type, const char* name, uint64_t defaultValue);
+ BINARYNINJACOREAPI void BNSetBinaryViewTypeArchitectureConstant(
+ BNArchitecture* arch, const char* type, const char* name, uint64_t value);
- BINARYNINJACOREAPI void BNArchitectureRegisterRelocationHandler(BNArchitecture* arch, const char* viewName,
- BNRelocationHandler* handler);
+ BINARYNINJACOREAPI void BNArchitectureRegisterRelocationHandler(
+ BNArchitecture* arch, const char* viewName, BNRelocationHandler* handler);
BINARYNINJACOREAPI BNRelocationHandler* BNCreateRelocationHandler(BNCustomRelocationHandler* handler);
- BINARYNINJACOREAPI BNRelocationHandler* BNArchitectureGetRelocationHandler(BNArchitecture* arch, const char* viewName);
+ BINARYNINJACOREAPI BNRelocationHandler* BNArchitectureGetRelocationHandler(
+ BNArchitecture* arch, const char* viewName);
BINARYNINJACOREAPI BNRelocationHandler* BNNewRelocationHandlerReference(BNRelocationHandler* handler);
BINARYNINJACOREAPI void BNFreeRelocationHandler(BNRelocationHandler* handler);
BINARYNINJACOREAPI bool BNRelocationHandlerGetRelocationInfo(BNRelocationHandler* handler, BNBinaryView* data,
- BNArchitecture* arch, BNRelocationInfo* info, size_t infoCount);
+ BNArchitecture* arch, BNRelocationInfo* info, size_t infoCount);
BINARYNINJACOREAPI bool BNRelocationHandlerApplyRelocation(BNRelocationHandler* handler, BNBinaryView* view,
- BNArchitecture* arch, BNRelocation* reloc, uint8_t* dest, size_t len);
+ BNArchitecture* arch, BNRelocation* reloc, uint8_t* dest, size_t len);
BINARYNINJACOREAPI bool BNRelocationHandlerDefaultApplyRelocation(BNRelocationHandler* handler, BNBinaryView* view,
- BNArchitecture* arch, BNRelocation* reloc, uint8_t* dest, size_t len);
+ BNArchitecture* arch, BNRelocation* reloc, uint8_t* dest, size_t len);
BINARYNINJACOREAPI size_t BNRelocationHandlerGetOperandForExternalRelocation(BNRelocationHandler* handler,
- const uint8_t* data, uint64_t addr, size_t length, const BNLowLevelILFunction* il, BNRelocation* relocation);
+ const uint8_t* data, uint64_t addr, size_t length, const BNLowLevelILFunction* il, BNRelocation* relocation);
// Analysis
BINARYNINJACOREAPI void BNAddAnalysisOption(BNBinaryView* view, const char* name);
BINARYNINJACOREAPI void BNAddFunctionForAnalysis(BNBinaryView* view, BNPlatform* platform, uint64_t addr);
@@ -3414,7 +3444,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNFunction* BNGetAnalysisFunction(BNBinaryView* view, BNPlatform* platform, uint64_t addr);
BINARYNINJACOREAPI BNFunction* BNGetRecentAnalysisFunctionForAddress(BNBinaryView* view, uint64_t addr);
BINARYNINJACOREAPI BNFunction** BNGetAnalysisFunctionsForAddress(BNBinaryView* view, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNFunction** BNGetAnalysisFunctionsContainingAddress(BNBinaryView* view, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNFunction** BNGetAnalysisFunctionsContainingAddress(
+ BNBinaryView* view, uint64_t addr, size_t* count);
BINARYNINJACOREAPI BNFunction* BNGetAnalysisEntryPoint(BNBinaryView* view);
BINARYNINJACOREAPI char* BNGetGlobalCommentForAddress(BNBinaryView* view, uint64_t addr);
@@ -3439,26 +3470,30 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNSetFunctionComment(BNFunction* func, const char* comment);
BINARYNINJACOREAPI void BNSetCommentForAddress(BNFunction* func, uint64_t addr, const char* comment);
- BINARYNINJACOREAPI void BNAddUserCodeReference(BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr, uint64_t toAddr);
- BINARYNINJACOREAPI void BNRemoveUserCodeReference(BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr, uint64_t toAddr);
+ BINARYNINJACOREAPI void BNAddUserCodeReference(
+ BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr, uint64_t toAddr);
+ BINARYNINJACOREAPI void BNRemoveUserCodeReference(
+ BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr, uint64_t toAddr);
- BINARYNINJACOREAPI void BNAddUserTypeReference(BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr, BNQualifiedName* name);
- BINARYNINJACOREAPI void BNRemoveUserTypeReference(BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr, BNQualifiedName* name);
- BINARYNINJACOREAPI void BNAddUserTypeFieldReference(BNFunction* func,
- BNArchitecture* fromArch, uint64_t fromAddr, BNQualifiedName* name, uint64_t offset,
- size_t size);
- BINARYNINJACOREAPI void BNRemoveUserTypeFieldReference(BNFunction* func,
- BNArchitecture* fromArch, uint64_t fromAddr, BNQualifiedName* name, uint64_t offset,
- size_t size);
+ BINARYNINJACOREAPI void BNAddUserTypeReference(
+ BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr, BNQualifiedName* name);
+ BINARYNINJACOREAPI void BNRemoveUserTypeReference(
+ BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr, BNQualifiedName* name);
+ BINARYNINJACOREAPI void BNAddUserTypeFieldReference(BNFunction* func, BNArchitecture* fromArch, uint64_t fromAddr,
+ BNQualifiedName* name, uint64_t offset, size_t size);
+ BINARYNINJACOREAPI void BNRemoveUserTypeFieldReference(BNFunction* func, BNArchitecture* fromArch,
+ uint64_t fromAddr, BNQualifiedName* name, uint64_t offset, size_t size);
BINARYNINJACOREAPI BNBasicBlock* BNNewBasicBlockReference(BNBasicBlock* block);
BINARYNINJACOREAPI void BNFreeBasicBlock(BNBasicBlock* block);
BINARYNINJACOREAPI BNBasicBlock** BNGetFunctionBasicBlockList(BNFunction* func, size_t* count);
BINARYNINJACOREAPI void BNFreeBasicBlockList(BNBasicBlock** blocks, size_t count);
- BINARYNINJACOREAPI BNBasicBlock* BNGetFunctionBasicBlockAtAddress(BNFunction* func, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI BNBasicBlock* BNGetFunctionBasicBlockAtAddress(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI BNBasicBlock* BNGetRecentBasicBlockForAddress(BNBinaryView* view, uint64_t addr);
BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlocksForAddress(BNBinaryView* view, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlocksStartingAtAddress(BNBinaryView* view, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlocksStartingAtAddress(
+ BNBinaryView* view, uint64_t addr, size_t* count);
BINARYNINJACOREAPI uint64_t BNGetFunctionHighestAddress(BNFunction* func);
BINARYNINJACOREAPI uint64_t BNGetFunctionLowestAddress(BNFunction* func);
@@ -3467,8 +3502,10 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNLowLevelILFunction* BNGetFunctionLowLevelIL(BNFunction* func);
BINARYNINJACOREAPI BNLowLevelILFunction* BNGetFunctionLowLevelILIfAvailable(BNFunction* func);
BINARYNINJACOREAPI size_t BNGetLowLevelILForInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI size_t* BNGetLowLevelILInstructionsForAddress(BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetLowLevelILExitsForInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLowLevelILInstructionsForAddress(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLowLevelILExitsForInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
BINARYNINJACOREAPI void BNFreeILInstructionList(size_t* list);
BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetFunctionMediumLevelIL(BNFunction* func);
BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetFunctionMediumLevelILIfAvailable(BNFunction* func);
@@ -3477,36 +3514,39 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNHighLevelILFunction* BNGetFunctionHighLevelIL(BNFunction* func);
BINARYNINJACOREAPI BNHighLevelILFunction* BNGetFunctionHighLevelILIfAvailable(BNFunction* func);
BINARYNINJACOREAPI BNLanguageRepresentationFunction* BNGetFunctionLanguageRepresentation(BNFunction* func);
- BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAtInstruction(BNFunction* func, BNArchitecture* arch,
- uint64_t addr, uint32_t reg);
- BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAfterInstruction(BNFunction* func, BNArchitecture* arch,
- uint64_t addr, uint32_t reg);
- BINARYNINJACOREAPI BNRegisterValue BNGetStackContentsAtInstruction(BNFunction* func, BNArchitecture* arch,
- uint64_t addr, int64_t offset, size_t size);
- BINARYNINJACOREAPI BNRegisterValue BNGetStackContentsAfterInstruction(BNFunction* func, BNArchitecture* arch,
- uint64_t addr, int64_t offset, size_t size);
- BINARYNINJACOREAPI BNRegisterValue BNGetParameterValueAtInstruction(BNFunction* func, BNArchitecture* arch,
- uint64_t addr, BNType* functionType, size_t i);
- BINARYNINJACOREAPI BNRegisterValue BNGetParameterValueAtLowLevelILInstruction(BNFunction* func, size_t instr,
- BNType* functionType, size_t i);
+ BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAtInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, uint32_t reg);
+ BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAfterInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, uint32_t reg);
+ BINARYNINJACOREAPI BNRegisterValue BNGetStackContentsAtInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, int64_t offset, size_t size);
+ BINARYNINJACOREAPI BNRegisterValue BNGetStackContentsAfterInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, int64_t offset, size_t size);
+ BINARYNINJACOREAPI BNRegisterValue BNGetParameterValueAtInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNType* functionType, size_t i);
+ BINARYNINJACOREAPI BNRegisterValue BNGetParameterValueAtLowLevelILInstruction(
+ BNFunction* func, size_t instr, BNType* functionType, size_t i);
BINARYNINJACOREAPI void BNFreePossibleValueSet(BNPossibleValueSet* value);
- BINARYNINJACOREAPI uint32_t* BNGetRegistersReadByInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- size_t* count);
- BINARYNINJACOREAPI uint32_t* BNGetRegistersWrittenByInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- size_t* count);
- BINARYNINJACOREAPI BNStackVariableReference* BNGetStackVariablesReferencedByInstruction(BNFunction* func, BNArchitecture* arch,
- uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI uint32_t* BNGetRegistersReadByInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI uint32_t* BNGetRegistersWrittenByInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNStackVariableReference* BNGetStackVariablesReferencedByInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
BINARYNINJACOREAPI void BNFreeStackVariableReferenceList(BNStackVariableReference* refs, size_t count);
- BINARYNINJACOREAPI BNConstantReference* BNGetConstantsReferencedByInstruction(BNFunction* func,
- BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNConstantReference* BNGetConstantsReferencedByInstruction(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
BINARYNINJACOREAPI void BNFreeConstantReferenceList(BNConstantReference* refs);
BINARYNINJACOREAPI BNLowLevelILFunction* BNGetFunctionLiftedIL(BNFunction* func);
BINARYNINJACOREAPI BNLowLevelILFunction* BNGetFunctionLiftedILIfAvailable(BNFunction* func);
BINARYNINJACOREAPI size_t BNGetLiftedILForInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI size_t* BNGetLiftedILInstructionsForAddress(BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetLiftedILFlagUsesForDefinition(BNFunction* func, size_t i, uint32_t flag, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetLiftedILFlagDefinitionsForUse(BNFunction* func, size_t i, uint32_t flag, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLiftedILInstructionsForAddress(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLiftedILFlagUsesForDefinition(
+ BNFunction* func, size_t i, uint32_t flag, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLiftedILFlagDefinitionsForUse(
+ BNFunction* func, size_t i, uint32_t flag, size_t* count);
BINARYNINJACOREAPI uint32_t* BNGetFlagsReadByLiftedILInstruction(BNFunction* func, size_t i, size_t* count);
BINARYNINJACOREAPI uint32_t* BNGetFlagsWrittenByLiftedILInstruction(BNFunction* func, size_t i, size_t* count);
@@ -3518,45 +3558,50 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNFreeParameterVariables(BNParameterVariablesWithConfidence* vars);
BINARYNINJACOREAPI BNBoolWithConfidence BNFunctionHasVariableArguments(BNFunction* func);
BINARYNINJACOREAPI BNOffsetWithConfidence BNGetFunctionStackAdjustment(BNFunction* func);
- BINARYNINJACOREAPI BNRegisterStackAdjustment* BNGetFunctionRegisterStackAdjustments(BNFunction* func, size_t* count);
+ BINARYNINJACOREAPI BNRegisterStackAdjustment* BNGetFunctionRegisterStackAdjustments(
+ BNFunction* func, size_t* count);
BINARYNINJACOREAPI void BNFreeRegisterStackAdjustments(BNRegisterStackAdjustment* adjustments);
BINARYNINJACOREAPI BNRegisterSetWithConfidence BNGetFunctionClobberedRegisters(BNFunction* func);
BINARYNINJACOREAPI void BNFreeRegisterSet(BNRegisterSetWithConfidence* regs);
BINARYNINJACOREAPI void BNSetAutoFunctionReturnType(BNFunction* func, BNTypeWithConfidence* type);
BINARYNINJACOREAPI void BNSetAutoFunctionReturnRegisters(BNFunction* func, BNRegisterSetWithConfidence* regs);
- BINARYNINJACOREAPI void BNSetAutoFunctionCallingConvention(BNFunction* func, BNCallingConventionWithConfidence* convention);
- BINARYNINJACOREAPI void BNSetAutoFunctionParameterVariables(BNFunction* func, BNParameterVariablesWithConfidence* vars);
+ BINARYNINJACOREAPI void BNSetAutoFunctionCallingConvention(
+ BNFunction* func, BNCallingConventionWithConfidence* convention);
+ BINARYNINJACOREAPI void BNSetAutoFunctionParameterVariables(
+ BNFunction* func, BNParameterVariablesWithConfidence* vars);
BINARYNINJACOREAPI void BNSetAutoFunctionHasVariableArguments(BNFunction* func, BNBoolWithConfidence* varArgs);
BINARYNINJACOREAPI void BNSetAutoFunctionCanReturn(BNFunction* func, BNBoolWithConfidence* returns);
BINARYNINJACOREAPI void BNSetAutoFunctionStackAdjustment(BNFunction* func, BNOffsetWithConfidence* stackAdjust);
- BINARYNINJACOREAPI void BNSetAutoFunctionRegisterStackAdjustments(BNFunction* func,
- BNRegisterStackAdjustment* adjustments, size_t count);
+ BINARYNINJACOREAPI void BNSetAutoFunctionRegisterStackAdjustments(
+ BNFunction* func, BNRegisterStackAdjustment* adjustments, size_t count);
BINARYNINJACOREAPI void BNSetAutoFunctionClobberedRegisters(BNFunction* func, BNRegisterSetWithConfidence* regs);
BINARYNINJACOREAPI void BNSetUserFunctionReturnType(BNFunction* func, BNTypeWithConfidence* type);
BINARYNINJACOREAPI void BNSetUserFunctionReturnRegisters(BNFunction* func, BNRegisterSetWithConfidence* regs);
- BINARYNINJACOREAPI void BNSetUserFunctionCallingConvention(BNFunction* func, BNCallingConventionWithConfidence* convention);
- BINARYNINJACOREAPI void BNSetUserFunctionParameterVariables(BNFunction* func, BNParameterVariablesWithConfidence* vars);
+ BINARYNINJACOREAPI void BNSetUserFunctionCallingConvention(
+ BNFunction* func, BNCallingConventionWithConfidence* convention);
+ BINARYNINJACOREAPI void BNSetUserFunctionParameterVariables(
+ BNFunction* func, BNParameterVariablesWithConfidence* vars);
BINARYNINJACOREAPI void BNSetUserFunctionHasVariableArguments(BNFunction* func, BNBoolWithConfidence* varArgs);
BINARYNINJACOREAPI void BNSetUserFunctionCanReturn(BNFunction* func, BNBoolWithConfidence* returns);
BINARYNINJACOREAPI void BNSetUserFunctionStackAdjustment(BNFunction* func, BNOffsetWithConfidence* stackAdjust);
- BINARYNINJACOREAPI void BNSetUserFunctionRegisterStackAdjustments(BNFunction* func,
- BNRegisterStackAdjustment* adjustments, size_t count);
+ BINARYNINJACOREAPI void BNSetUserFunctionRegisterStackAdjustments(
+ BNFunction* func, BNRegisterStackAdjustment* adjustments, size_t count);
BINARYNINJACOREAPI void BNSetUserFunctionClobberedRegisters(BNFunction* func, BNRegisterSetWithConfidence* regs);
BINARYNINJACOREAPI void BNApplyImportedTypes(BNFunction* func, BNSymbol* sym, BNType* type);
BINARYNINJACOREAPI void BNApplyAutoDiscoveredFunctionType(BNFunction* func, BNType* type);
BINARYNINJACOREAPI bool BNFunctionHasExplicitlyDefinedType(BNFunction* func);
- BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetFunctionTypeTokens(BNFunction* func,
- BNDisassemblySettings* settings, size_t* count);
+ BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetFunctionTypeTokens(
+ BNFunction* func, BNDisassemblySettings* settings, size_t* count);
BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetFunctionGlobalPointerValue(BNFunction* func);
BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetFunctionRegisterValueAtExit(BNFunction* func, uint32_t reg);
- BINARYNINJACOREAPI bool BNGetInstructionContainingAddress(BNFunction* func,
- BNArchitecture* arch, uint64_t addr, uint64_t* start);
+ BINARYNINJACOREAPI bool BNGetInstructionContainingAddress(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, uint64_t* start);
BINARYNINJACOREAPI BNFunction* BNGetBasicBlockFunction(BNBasicBlock* block);
BINARYNINJACOREAPI BNArchitecture* BNGetBasicBlockArchitecture(BNBasicBlock* block);
@@ -3575,10 +3620,11 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockDominators(BNBasicBlock* block, size_t* count, bool post);
BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockStrictDominators(BNBasicBlock* block, size_t* count, bool post);
BINARYNINJACOREAPI BNBasicBlock* BNGetBasicBlockImmediateDominator(BNBasicBlock* block, bool post);
- BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockDominatorTreeChildren(BNBasicBlock* block, size_t* count, bool post);
+ BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockDominatorTreeChildren(
+ BNBasicBlock* block, size_t* count, bool post);
BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockDominanceFrontier(BNBasicBlock* block, size_t* count, bool post);
- BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockIteratedDominanceFrontier(BNBasicBlock** blocks,
- size_t incomingCount, size_t* outputCount);
+ BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockIteratedDominanceFrontier(
+ BNBasicBlock** blocks, size_t incomingCount, size_t* outputCount);
BINARYNINJACOREAPI bool BNIsILBasicBlock(BNBasicBlock* block);
BINARYNINJACOREAPI bool BNIsLowLevelILBasicBlock(BNBasicBlock* block);
BINARYNINJACOREAPI bool BNIsMediumLevelILBasicBlock(BNBasicBlock* block);
@@ -3587,140 +3633,155 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNLowLevelILFunction* BNGetBasicBlockLowLevelILFunction(BNBasicBlock* block);
BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetBasicBlockMediumLevelILFunction(BNBasicBlock* block);
BINARYNINJACOREAPI BNHighLevelILFunction* BNGetBasicBlockHighLevelILFunction(BNBasicBlock* block);
- BINARYNINJACOREAPI bool BNGetBasicBlockInstructionContainingAddress(BNBasicBlock* block,
- uint64_t addr, uint64_t* start);
+ BINARYNINJACOREAPI bool BNGetBasicBlockInstructionContainingAddress(
+ BNBasicBlock* block, uint64_t addr, uint64_t* start);
BINARYNINJACOREAPI BNBasicBlock* BNGetBasicBlockSourceBlock(BNBasicBlock* block);
- BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetBasicBlockDisassemblyText(BNBasicBlock* block,
- BNDisassemblySettings* settings, size_t* count);
+ BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetBasicBlockDisassemblyText(
+ BNBasicBlock* block, BNDisassemblySettings* settings, size_t* count);
BINARYNINJACOREAPI void BNFreeDisassemblyTextLines(BNDisassemblyTextLine* lines, size_t count);
- BINARYNINJACOREAPI char* BNGetDisplayStringForInteger(BNBinaryView* binaryView, BNIntegerDisplayType type,
- uint64_t value, size_t inputWidth, bool isSigned);
- BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateDisassemblyTextRenderer(BNFunction* func,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateLowLevelILDisassemblyTextRenderer(BNLowLevelILFunction* func,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateMediumLevelILDisassemblyTextRenderer(BNMediumLevelILFunction* func,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateHighLevelILDisassemblyTextRenderer(BNHighLevelILFunction* func,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNNewDisassemblyTextRendererReference(BNDisassemblyTextRenderer* renderer);
+ BINARYNINJACOREAPI char* BNGetDisplayStringForInteger(
+ BNBinaryView* binaryView, BNIntegerDisplayType type, uint64_t value, size_t inputWidth, bool isSigned);
+ BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateDisassemblyTextRenderer(
+ BNFunction* func, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateLowLevelILDisassemblyTextRenderer(
+ BNLowLevelILFunction* func, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateMediumLevelILDisassemblyTextRenderer(
+ BNMediumLevelILFunction* func, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateHighLevelILDisassemblyTextRenderer(
+ BNHighLevelILFunction* func, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNNewDisassemblyTextRendererReference(
+ BNDisassemblyTextRenderer* renderer);
BINARYNINJACOREAPI void BNFreeDisassemblyTextRenderer(BNDisassemblyTextRenderer* renderer);
BINARYNINJACOREAPI BNFunction* BNGetDisassemblyTextRendererFunction(BNDisassemblyTextRenderer* renderer);
- BINARYNINJACOREAPI BNLowLevelILFunction* BNGetDisassemblyTextRendererLowLevelILFunction(BNDisassemblyTextRenderer* renderer);
- BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetDisassemblyTextRendererMediumLevelILFunction(BNDisassemblyTextRenderer* renderer);
- BINARYNINJACOREAPI BNHighLevelILFunction* BNGetDisassemblyTextRendererHighLevelILFunction(BNDisassemblyTextRenderer* renderer);
+ BINARYNINJACOREAPI BNLowLevelILFunction* BNGetDisassemblyTextRendererLowLevelILFunction(
+ BNDisassemblyTextRenderer* renderer);
+ BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetDisassemblyTextRendererMediumLevelILFunction(
+ BNDisassemblyTextRenderer* renderer);
+ BINARYNINJACOREAPI BNHighLevelILFunction* BNGetDisassemblyTextRendererHighLevelILFunction(
+ BNDisassemblyTextRenderer* renderer);
BINARYNINJACOREAPI BNBasicBlock* BNGetDisassemblyTextRendererBasicBlock(BNDisassemblyTextRenderer* renderer);
BINARYNINJACOREAPI BNArchitecture* BNGetDisassemblyTextRendererArchitecture(BNDisassemblyTextRenderer* renderer);
BINARYNINJACOREAPI BNDisassemblySettings* BNGetDisassemblyTextRendererSettings(BNDisassemblyTextRenderer* renderer);
- BINARYNINJACOREAPI void BNSetDisassemblyTextRendererBasicBlock(BNDisassemblyTextRenderer* renderer, BNBasicBlock* block);
- BINARYNINJACOREAPI void BNSetDisassemblyTextRendererArchitecture(BNDisassemblyTextRenderer* renderer, BNArchitecture* arch);
- BINARYNINJACOREAPI void BNSetDisassemblyTextRendererSettings(BNDisassemblyTextRenderer* renderer, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI void BNSetDisassemblyTextRendererBasicBlock(
+ BNDisassemblyTextRenderer* renderer, BNBasicBlock* block);
+ BINARYNINJACOREAPI void BNSetDisassemblyTextRendererArchitecture(
+ BNDisassemblyTextRenderer* renderer, BNArchitecture* arch);
+ BINARYNINJACOREAPI void BNSetDisassemblyTextRendererSettings(
+ BNDisassemblyTextRenderer* renderer, BNDisassemblySettings* settings);
BINARYNINJACOREAPI bool BNIsILDisassemblyTextRenderer(BNDisassemblyTextRenderer* renderer);
BINARYNINJACOREAPI bool BNDisassemblyTextRendererHasDataFlow(BNDisassemblyTextRenderer* renderer);
BINARYNINJACOREAPI BNInstructionTextToken* BNGetDisassemblyTextRendererInstructionAnnotations(
- BNDisassemblyTextRenderer* renderer, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI bool BNGetDisassemblyTextRendererInstructionText(BNDisassemblyTextRenderer* renderer,
- uint64_t addr, size_t* len, BNDisassemblyTextLine** result, size_t* count);
- BINARYNINJACOREAPI bool BNGetDisassemblyTextRendererLines(BNDisassemblyTextRenderer* renderer,
- uint64_t addr, size_t* len, BNDisassemblyTextLine** result, size_t* count);
- BINARYNINJACOREAPI BNDisassemblyTextLine* BNPostProcessDisassemblyTextRendererLines(BNDisassemblyTextRenderer* renderer,
- uint64_t addr, size_t len, BNDisassemblyTextLine* inLines, size_t inCount, size_t* outCount, const char* indentSpaces);
+ BNDisassemblyTextRenderer* renderer, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI bool BNGetDisassemblyTextRendererInstructionText(
+ BNDisassemblyTextRenderer* renderer, uint64_t addr, size_t* len, BNDisassemblyTextLine** result, size_t* count);
+ BINARYNINJACOREAPI bool BNGetDisassemblyTextRendererLines(
+ BNDisassemblyTextRenderer* renderer, uint64_t addr, size_t* len, BNDisassemblyTextLine** result, size_t* count);
+ BINARYNINJACOREAPI BNDisassemblyTextLine* BNPostProcessDisassemblyTextRendererLines(
+ BNDisassemblyTextRenderer* renderer, uint64_t addr, size_t len, BNDisassemblyTextLine* inLines, size_t inCount,
+ size_t* outCount, const char* indentSpaces);
BINARYNINJACOREAPI void BNResetDisassemblyTextRendererDeduplicatedComments(BNDisassemblyTextRenderer* renderer);
BINARYNINJACOREAPI bool BNGetDisassemblyTextRendererSymbolTokens(BNDisassemblyTextRenderer* renderer, uint64_t addr,
- size_t size, size_t operand, BNInstructionTextToken** result, size_t* count);
+ size_t size, size_t operand, BNInstructionTextToken** result, size_t* count);
BINARYNINJACOREAPI BNInstructionTextToken* BNGetDisassemblyTextRendererStackVariableReferenceTokens(
- BNDisassemblyTextRenderer* renderer, BNStackVariableReference* ref, size_t* count);
+ BNDisassemblyTextRenderer* renderer, BNStackVariableReference* ref, size_t* count);
BINARYNINJACOREAPI bool BNIsIntegerToken(BNInstructionTextTokenType type);
- BINARYNINJACOREAPI BNInstructionTextToken* BNGetDisassemblyTextRendererIntegerTokens(BNDisassemblyTextRenderer* renderer,
- BNInstructionTextToken* token, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNInstructionTextToken* BNGetDisassemblyTextRendererIntegerTokens(
+ BNDisassemblyTextRenderer* renderer, BNInstructionTextToken* token, BNArchitecture* arch, uint64_t addr,
+ size_t* count);
BINARYNINJACOREAPI BNDisassemblyTextLine* BNDisassemblyTextRendererWrapComment(BNDisassemblyTextRenderer* renderer,
- const BNDisassemblyTextLine* inLine, size_t* outLineCount, const char* comment, bool hasAutoAnnotations,
- const char* leadingSpaces, const char* indentSpaces);
+ const BNDisassemblyTextLine* inLine, size_t* outLineCount, const char* comment, bool hasAutoAnnotations,
+ const char* leadingSpaces, const char* indentSpaces);
BINARYNINJACOREAPI void BNMarkFunctionAsRecentlyUsed(BNFunction* func);
BINARYNINJACOREAPI void BNMarkBasicBlockAsRecentlyUsed(BNBasicBlock* block);
BINARYNINJACOREAPI BNReferenceSource* BNGetCodeReferences(BNBinaryView* view, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNReferenceSource* BNGetCodeReferencesInRange(BNBinaryView* view, uint64_t addr,
- uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNReferenceSource* BNGetCodeReferencesInRange(
+ BNBinaryView* view, uint64_t addr, uint64_t len, size_t* count);
BINARYNINJACOREAPI void BNFreeCodeReferences(BNReferenceSource* refs, size_t count);
BINARYNINJACOREAPI void BNFreeTypeFieldReferences(BNTypeFieldReference* refs, size_t count);
BINARYNINJACOREAPI void BNFreeILReferences(BNILReferenceSource* refs, size_t count);
BINARYNINJACOREAPI uint64_t* BNGetCodeReferencesFrom(BNBinaryView* view, BNReferenceSource* src, size_t* count);
- BINARYNINJACOREAPI uint64_t* BNGetCodeReferencesFromInRange(BNBinaryView* view, BNReferenceSource* src, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI uint64_t* BNGetCodeReferencesFromInRange(
+ BNBinaryView* view, BNReferenceSource* src, uint64_t len, size_t* count);
BINARYNINJACOREAPI uint64_t* BNGetDataReferences(BNBinaryView* view, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI uint64_t* BNGetDataReferencesInRange(BNBinaryView* view, uint64_t addr, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI uint64_t* BNGetDataReferencesInRange(
+ BNBinaryView* view, uint64_t addr, uint64_t len, size_t* count);
BINARYNINJACOREAPI uint64_t* BNGetDataReferencesFrom(BNBinaryView* view, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI uint64_t* BNGetDataReferencesFromInRange(BNBinaryView* view, uint64_t addr, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI uint64_t* BNGetDataReferencesFromInRange(
+ BNBinaryView* view, uint64_t addr, uint64_t len, size_t* count);
BINARYNINJACOREAPI void BNAddUserDataReference(BNBinaryView* view, uint64_t fromAddr, uint64_t toAddr);
BINARYNINJACOREAPI void BNRemoveUserDataReference(BNBinaryView* view, uint64_t fromAddr, uint64_t toAddr);
BINARYNINJACOREAPI void BNFreeDataReferences(uint64_t* refs);
BINARYNINJACOREAPI void BNFreeTypeReferences(BNTypeReferenceSource* refs, size_t count);
- BINARYNINJACOREAPI void BNFreeTypeFieldReferenceSizeInfo(
- BNTypeFieldReferenceSizeInfo* refs, size_t count);
- BINARYNINJACOREAPI void BNFreeTypeFieldReferenceTypeInfo(
- BNTypeFieldReferenceTypeInfo* refs, size_t count);
+ BINARYNINJACOREAPI void BNFreeTypeFieldReferenceSizeInfo(BNTypeFieldReferenceSizeInfo* refs, size_t count);
+ BINARYNINJACOREAPI void BNFreeTypeFieldReferenceTypeInfo(BNTypeFieldReferenceTypeInfo* refs, size_t count);
BINARYNINJACOREAPI void BNFreeTypeFieldReferenceSizes(size_t* refs, size_t count);
- BINARYNINJACOREAPI void BNFreeTypeFieldReferenceTypes(BNTypeWithConfidence* refs,
- size_t count);
+ BINARYNINJACOREAPI void BNFreeTypeFieldReferenceTypes(BNTypeWithConfidence* refs, size_t count);
// References to type
- BINARYNINJACOREAPI BNReferenceSource* BNGetCodeReferencesForType(BNBinaryView* view, BNQualifiedName* type, size_t* count);
+ BINARYNINJACOREAPI BNReferenceSource* BNGetCodeReferencesForType(
+ BNBinaryView* view, BNQualifiedName* type, size_t* count);
BINARYNINJACOREAPI uint64_t* BNGetDataReferencesForType(BNBinaryView* view, BNQualifiedName* type, size_t* count);
- BINARYNINJACOREAPI BNTypeReferenceSource* BNGetTypeReferencesForType(BNBinaryView* view, BNQualifiedName* type, size_t* count);
+ BINARYNINJACOREAPI BNTypeReferenceSource* BNGetTypeReferencesForType(
+ BNBinaryView* view, BNQualifiedName* type, size_t* count);
// References to type field
- BINARYNINJACOREAPI BNTypeFieldReference* BNGetCodeReferencesForTypeField(BNBinaryView* view,
- BNQualifiedName* type, uint64_t offset, size_t* count);
- BINARYNINJACOREAPI uint64_t* BNGetDataReferencesForTypeField(BNBinaryView* view,
- BNQualifiedName* type, uint64_t offset, size_t* count);
- BINARYNINJACOREAPI BNTypeReferenceSource* BNGetTypeReferencesForTypeField(BNBinaryView* view,
- BNQualifiedName* type, uint64_t offset, size_t* count);
+ BINARYNINJACOREAPI BNTypeFieldReference* BNGetCodeReferencesForTypeField(
+ BNBinaryView* view, BNQualifiedName* type, uint64_t offset, size_t* count);
+ BINARYNINJACOREAPI uint64_t* BNGetDataReferencesForTypeField(
+ BNBinaryView* view, BNQualifiedName* type, uint64_t offset, size_t* count);
+ BINARYNINJACOREAPI BNTypeReferenceSource* BNGetTypeReferencesForTypeField(
+ BNBinaryView* view, BNQualifiedName* type, uint64_t offset, size_t* count);
- BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFrom(BNBinaryView* view, BNReferenceSource* addr, size_t* count);
- BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFromInRange(BNBinaryView* view, BNReferenceSource* addr, uint64_t len, size_t* count);
- BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFieldsFrom(BNBinaryView* view, BNReferenceSource* addr, size_t* count);
- BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFieldsFromInRange(BNBinaryView* view, BNReferenceSource* addr, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFrom(
+ BNBinaryView* view, BNReferenceSource* addr, size_t* count);
+ BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFromInRange(
+ BNBinaryView* view, BNReferenceSource* addr, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFieldsFrom(
+ BNBinaryView* view, BNReferenceSource* addr, size_t* count);
+ BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFieldsFromInRange(
+ BNBinaryView* view, BNReferenceSource* addr, uint64_t len, size_t* count);
- BINARYNINJACOREAPI uint64_t* BNGetAllFieldsReferenced(BNBinaryView* view,
- BNQualifiedName* type, size_t* count);
+ BINARYNINJACOREAPI uint64_t* BNGetAllFieldsReferenced(BNBinaryView* view, BNQualifiedName* type, size_t* count);
BINARYNINJACOREAPI BNTypeFieldReferenceSizeInfo* BNGetAllSizesReferenced(
- BNBinaryView* view, BNQualifiedName* type, size_t* count);
+ BNBinaryView* view, BNQualifiedName* type, size_t* count);
BINARYNINJACOREAPI BNTypeFieldReferenceTypeInfo* BNGetAllTypesReferenced(
- BNBinaryView* view, BNQualifiedName* type, size_t* count);
+ BNBinaryView* view, BNQualifiedName* type, size_t* count);
BINARYNINJACOREAPI size_t* BNGetSizesReferenced(
- BNBinaryView* view, BNQualifiedName* type, uint64_t offset, size_t* count);
+ BNBinaryView* view, BNQualifiedName* type, uint64_t offset, size_t* count);
BINARYNINJACOREAPI BNTypeWithConfidence* BNGetTypesReferenced(
- BNBinaryView* view, BNQualifiedName* type, uint64_t offset, size_t* count);
+ BNBinaryView* view, BNQualifiedName* type, uint64_t offset, size_t* count);
BINARYNINJACOREAPI void BNRegisterGlobalFunctionRecognizer(BNFunctionRecognizer* rec);
BINARYNINJACOREAPI bool BNGetStringAtAddress(BNBinaryView* view, uint64_t addr, BNStringReference* strRef);
BINARYNINJACOREAPI BNStringReference* BNGetStrings(BNBinaryView* view, size_t* count);
- BINARYNINJACOREAPI BNStringReference* BNGetStringsInRange(BNBinaryView* view, uint64_t start, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNStringReference* BNGetStringsInRange(
+ BNBinaryView* view, uint64_t start, uint64_t len, size_t* count);
BINARYNINJACOREAPI void BNFreeStringReferenceList(BNStringReference* strings);
BINARYNINJACOREAPI BNVariableNameAndType* BNGetStackLayout(BNFunction* func, size_t* count);
BINARYNINJACOREAPI void BNFreeVariableNameAndTypeList(BNVariableNameAndType* vars, size_t count);
- BINARYNINJACOREAPI void BNCreateAutoStackVariable(BNFunction* func, int64_t offset,
- BNTypeWithConfidence* type, const char* name);
- BINARYNINJACOREAPI void BNCreateUserStackVariable(BNFunction* func, int64_t offset,
- BNTypeWithConfidence* type, const char* name);
+ BINARYNINJACOREAPI void BNCreateAutoStackVariable(
+ BNFunction* func, int64_t offset, BNTypeWithConfidence* type, const char* name);
+ BINARYNINJACOREAPI void BNCreateUserStackVariable(
+ BNFunction* func, int64_t offset, BNTypeWithConfidence* type, const char* name);
BINARYNINJACOREAPI void BNDeleteAutoStackVariable(BNFunction* func, int64_t offset);
BINARYNINJACOREAPI void BNDeleteUserStackVariable(BNFunction* func, int64_t offset);
- BINARYNINJACOREAPI bool BNGetStackVariableAtFrameOffset(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- int64_t offset, BNVariableNameAndType* var);
+ BINARYNINJACOREAPI bool BNGetStackVariableAtFrameOffset(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, int64_t offset, BNVariableNameAndType* var);
BINARYNINJACOREAPI void BNFreeVariableNameAndType(BNVariableNameAndType* var);
BINARYNINJACOREAPI BNVariableNameAndType* BNGetFunctionVariables(BNFunction* func, size_t* count);
- BINARYNINJACOREAPI void BNCreateAutoVariable(BNFunction* func, const BNVariable* var, BNTypeWithConfidence* type,
- const char* name, bool ignoreDisjointUses);
- BINARYNINJACOREAPI void BNCreateUserVariable(BNFunction* func, const BNVariable* var, BNTypeWithConfidence* type,
- const char* name, bool ignoreDisjointUses);
+ BINARYNINJACOREAPI void BNCreateAutoVariable(
+ BNFunction* func, const BNVariable* var, BNTypeWithConfidence* type, const char* name, bool ignoreDisjointUses);
+ BINARYNINJACOREAPI void BNCreateUserVariable(
+ BNFunction* func, const BNVariable* var, BNTypeWithConfidence* type, const char* name, bool ignoreDisjointUses);
BINARYNINJACOREAPI void BNDeleteUserVariable(BNFunction* func, const BNVariable* var);
BINARYNINJACOREAPI bool BNIsVariableUserDefined(BNFunction* func, const BNVariable* var);
BINARYNINJACOREAPI BNTypeWithConfidence BNGetVariableType(BNFunction* func, const BNVariable* var);
@@ -3728,60 +3789,62 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetRealVariableName(BNFunction* func, BNArchitecture* arch, const BNVariable* var);
BINARYNINJACOREAPI uint64_t BNToVariableIdentifier(const BNVariable* var);
BINARYNINJACOREAPI BNVariable BNFromVariableIdentifier(uint64_t id);
- BINARYNINJACOREAPI BNDeadStoreElimination BNGetFunctionVariableDeadStoreElimination(BNFunction* func,
- const BNVariable* var);
- BINARYNINJACOREAPI void BNSetFunctionVariableDeadStoreElimination(BNFunction* func,
- const BNVariable* var, BNDeadStoreElimination mode);
+ BINARYNINJACOREAPI BNDeadStoreElimination BNGetFunctionVariableDeadStoreElimination(
+ BNFunction* func, const BNVariable* var);
+ BINARYNINJACOREAPI void BNSetFunctionVariableDeadStoreElimination(
+ BNFunction* func, const BNVariable* var, BNDeadStoreElimination mode);
BINARYNINJACOREAPI BNReferenceSource* BNGetFunctionCallSites(BNFunction* func, size_t* count);
BINARYNINJACOREAPI uint64_t* BNGetCallees(BNBinaryView* view, BNReferenceSource* callSite, size_t* count);
BINARYNINJACOREAPI BNReferenceSource* BNGetCallers(BNBinaryView* view, uint64_t callee, size_t* count);
BINARYNINJACOREAPI void BNSetAutoIndirectBranches(BNFunction* func, BNArchitecture* sourceArch, uint64_t source,
- BNArchitectureAndAddress* branches, size_t count);
+ BNArchitectureAndAddress* branches, size_t count);
BINARYNINJACOREAPI void BNSetUserIndirectBranches(BNFunction* func, BNArchitecture* sourceArch, uint64_t source,
- BNArchitectureAndAddress* branches, size_t count);
+ BNArchitectureAndAddress* branches, size_t count);
BINARYNINJACOREAPI BNIndirectBranchInfo* BNGetIndirectBranches(BNFunction* func, size_t* count);
- BINARYNINJACOREAPI BNIndirectBranchInfo* BNGetIndirectBranchesAt(BNFunction* func, BNArchitecture* arch,
- uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNIndirectBranchInfo* BNGetIndirectBranchesAt(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
BINARYNINJACOREAPI void BNFreeIndirectBranchList(BNIndirectBranchInfo* branches);
BINARYNINJACOREAPI uint64_t* BNGetUnresolvedIndirectBranches(BNFunction* func, size_t* count);
BINARYNINJACOREAPI bool BNHasUnresolvedIndirectBranches(BNFunction* func);
- BINARYNINJACOREAPI void BNSetAutoCallTypeAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- BNTypeWithConfidence* type);
- BINARYNINJACOREAPI void BNSetUserCallTypeAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- BNTypeWithConfidence* type);
- BINARYNINJACOREAPI void BNSetAutoCallStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- int64_t adjust, uint8_t confidence);
- BINARYNINJACOREAPI void BNSetUserCallStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- int64_t adjust, uint8_t confidence);
- BINARYNINJACOREAPI void BNSetAutoCallRegisterStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- BNRegisterStackAdjustment* adjust, size_t count);
- BINARYNINJACOREAPI void BNSetUserCallRegisterStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- BNRegisterStackAdjustment* adjust, size_t count);
- BINARYNINJACOREAPI void BNSetAutoCallRegisterStackAdjustmentForRegisterStack(BNFunction* func,
- BNArchitecture* arch, uint64_t addr, uint32_t regStack, int32_t adjust, uint8_t confidence);
- BINARYNINJACOREAPI void BNSetUserCallRegisterStackAdjustmentForRegisterStack(BNFunction* func,
- BNArchitecture* arch, uint64_t addr, uint32_t regStack, int32_t adjust, uint8_t confidence);
+ BINARYNINJACOREAPI void BNSetAutoCallTypeAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTypeWithConfidence* type);
+ BINARYNINJACOREAPI void BNSetUserCallTypeAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTypeWithConfidence* type);
+ BINARYNINJACOREAPI void BNSetAutoCallStackAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, int64_t adjust, uint8_t confidence);
+ BINARYNINJACOREAPI void BNSetUserCallStackAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, int64_t adjust, uint8_t confidence);
+ BINARYNINJACOREAPI void BNSetAutoCallRegisterStackAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNRegisterStackAdjustment* adjust, size_t count);
+ BINARYNINJACOREAPI void BNSetUserCallRegisterStackAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNRegisterStackAdjustment* adjust, size_t count);
+ BINARYNINJACOREAPI void BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, uint32_t regStack, int32_t adjust, uint8_t confidence);
+ BINARYNINJACOREAPI void BNSetUserCallRegisterStackAdjustmentForRegisterStack(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, uint32_t regStack, int32_t adjust, uint8_t confidence);
- BINARYNINJACOREAPI BNTypeWithConfidence BNGetCallTypeAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI BNOffsetWithConfidence BNGetCallStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI BNRegisterStackAdjustment* BNGetCallRegisterStackAdjustment(BNFunction* func,
- BNArchitecture* arch, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNRegisterStackAdjustment BNGetCallRegisterStackAdjustmentForRegisterStack(BNFunction* func,
- BNArchitecture* arch, uint64_t addr, uint32_t regStack);
+ BINARYNINJACOREAPI BNTypeWithConfidence BNGetCallTypeAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI BNOffsetWithConfidence BNGetCallStackAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI BNRegisterStackAdjustment* BNGetCallRegisterStackAdjustment(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNRegisterStackAdjustment BNGetCallRegisterStackAdjustmentForRegisterStack(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, uint32_t regStack);
BINARYNINJACOREAPI bool BNIsCallInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI BNInstructionTextLine* BNGetFunctionBlockAnnotations(BNFunction* func, BNArchitecture* arch,
- uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNInstructionTextLine* BNGetFunctionBlockAnnotations(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNIntegerDisplayType BNGetIntegerConstantDisplayType(BNFunction* func, BNArchitecture* arch,
- uint64_t instrAddr, uint64_t value, size_t operand);
- BINARYNINJACOREAPI void BNSetIntegerConstantDisplayType(BNFunction* func, BNArchitecture* arch,
- uint64_t instrAddr, uint64_t value, size_t operand, BNIntegerDisplayType type);
+ BINARYNINJACOREAPI BNIntegerDisplayType BNGetIntegerConstantDisplayType(
+ BNFunction* func, BNArchitecture* arch, uint64_t instrAddr, uint64_t value, size_t operand);
+ BINARYNINJACOREAPI void BNSetIntegerConstantDisplayType(BNFunction* func, BNArchitecture* arch, uint64_t instrAddr,
+ uint64_t value, size_t operand, BNIntegerDisplayType type);
BINARYNINJACOREAPI bool BNIsFunctionTooLarge(BNFunction* func);
BINARYNINJACOREAPI bool BNIsFunctionAnalysisSkipped(BNFunction* func);
@@ -3799,9 +3862,10 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNGetNewAutoFunctionAnalysisSuppressed(BNBinaryView* view);
BINARYNINJACOREAPI void BNSetNewAutoFunctionAnalysisSuppressed(BNBinaryView* view, bool suppress);
- BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNAddAnalysisCompletionEvent(BNBinaryView* view, void* ctxt,
- void (*callback)(void* ctxt));
- BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNNewAnalysisCompletionEventReference(BNAnalysisCompletionEvent* event);
+ BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNAddAnalysisCompletionEvent(
+ BNBinaryView* view, void* ctxt, void (*callback)(void* ctxt));
+ BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNNewAnalysisCompletionEventReference(
+ BNAnalysisCompletionEvent* event);
BINARYNINJACOREAPI void BNFreeAnalysisCompletionEvent(BNAnalysisCompletionEvent* event);
BINARYNINJACOREAPI void BNCancelAnalysisCompletionEvent(BNAnalysisCompletionEvent* event);
@@ -3820,78 +3884,78 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI uint64_t BNGetPreviousDataBeforeAddress(BNBinaryView* view, uint64_t addr);
BINARYNINJACOREAPI uint64_t BNGetPreviousDataVariableStartBeforeAddress(BNBinaryView* view, uint64_t addr);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewDisassembly(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewLiftedIL(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewLowLevelIL(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewLowLevelILSSAForm(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewMediumLevelIL(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewMediumLevelILSSAForm(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewMappedMediumLevelIL(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewMappedMediumLevelILSSAForm(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewHighLevelIL(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewHighLevelILSSAForm(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewLanguageRepresentation(BNBinaryView* view,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewDataOnly(BNBinaryView* view,
- BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewDisassembly(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewLiftedIL(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewLowLevelIL(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewLowLevelILSSAForm(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewMediumLevelIL(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewMediumLevelILSSAForm(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewMappedMediumLevelIL(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewMappedMediumLevelILSSAForm(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewHighLevelIL(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewHighLevelILSSAForm(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewLanguageRepresentation(
+ BNBinaryView* view, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewDataOnly(
+ BNBinaryView* view, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionDisassembly(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionLiftedIL(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionLowLevelIL(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionMediumLevelIL(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionHighLevelIL(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNCreateLinearViewSingleFunctionLanguageRepresentation(
- BNFunction* func, BNDisassemblySettings* settings);
+ BNFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNLinearViewObject* BNNewLinearViewObjectReference(BNLinearViewObject* obj);
BINARYNINJACOREAPI void BNFreeLinearViewObject(BNLinearViewObject* obj);
BINARYNINJACOREAPI BNLinearViewObject* BNGetFirstLinearViewObjectChild(BNLinearViewObject* obj);
BINARYNINJACOREAPI BNLinearViewObject* BNGetLastLinearViewObjectChild(BNLinearViewObject* obj);
- BINARYNINJACOREAPI BNLinearViewObject* BNGetPreviousLinearViewObjectChild(BNLinearViewObject* parent,
- BNLinearViewObject* child);
- BINARYNINJACOREAPI BNLinearViewObject* BNGetNextLinearViewObjectChild(BNLinearViewObject* parent,
- BNLinearViewObject* child);
- BINARYNINJACOREAPI BNLinearViewObject* BNGetLinearViewObjectChildForAddress(BNLinearViewObject* parent,
- uint64_t addr);
- BINARYNINJACOREAPI BNLinearViewObject* BNGetLinearViewObjectChildForIdentifier(BNLinearViewObject* parent,
- BNLinearViewObjectIdentifier* id);
- BINARYNINJACOREAPI BNLinearDisassemblyLine* BNGetLinearViewObjectLines(BNLinearViewObject* obj,
- BNLinearViewObject* prev, BNLinearViewObject* next, size_t* count);
+ BINARYNINJACOREAPI BNLinearViewObject* BNGetPreviousLinearViewObjectChild(
+ BNLinearViewObject* parent, BNLinearViewObject* child);
+ BINARYNINJACOREAPI BNLinearViewObject* BNGetNextLinearViewObjectChild(
+ BNLinearViewObject* parent, BNLinearViewObject* child);
+ BINARYNINJACOREAPI BNLinearViewObject* BNGetLinearViewObjectChildForAddress(
+ BNLinearViewObject* parent, uint64_t addr);
+ BINARYNINJACOREAPI BNLinearViewObject* BNGetLinearViewObjectChildForIdentifier(
+ BNLinearViewObject* parent, BNLinearViewObjectIdentifier* id);
+ BINARYNINJACOREAPI BNLinearDisassemblyLine* BNGetLinearViewObjectLines(
+ BNLinearViewObject* obj, BNLinearViewObject* prev, BNLinearViewObject* next, size_t* count);
BINARYNINJACOREAPI void BNFreeLinearDisassemblyLines(BNLinearDisassemblyLine* lines, size_t count);
BINARYNINJACOREAPI uint64_t BNGetLinearViewObjectStart(BNLinearViewObject* obj);
BINARYNINJACOREAPI uint64_t BNGetLinearViewObjectEnd(BNLinearViewObject* obj);
BINARYNINJACOREAPI BNLinearViewObjectIdentifier BNGetLinearViewObjectIdentifier(BNLinearViewObject* obj);
BINARYNINJACOREAPI void BNFreeLinearViewObjectIdentifier(BNLinearViewObjectIdentifier* id);
- BINARYNINJACOREAPI int BNCompareLinearViewObjectChildren(BNLinearViewObject* obj,
- BNLinearViewObject* a, BNLinearViewObject* b);
+ BINARYNINJACOREAPI int BNCompareLinearViewObjectChildren(
+ BNLinearViewObject* obj, BNLinearViewObject* a, BNLinearViewObject* b);
BINARYNINJACOREAPI uint64_t BNGetLinearViewObjectOrderingIndexTotal(BNLinearViewObject* obj);
- BINARYNINJACOREAPI uint64_t BNGetLinearViewObjectOrderingIndexForChild(BNLinearViewObject* parent,
- BNLinearViewObject* child);
- BINARYNINJACOREAPI BNLinearViewObject* BNGetLinearViewObjectChildForOrderingIndex(BNLinearViewObject* parent,
- uint64_t idx);
+ BINARYNINJACOREAPI uint64_t BNGetLinearViewObjectOrderingIndexForChild(
+ BNLinearViewObject* parent, BNLinearViewObject* child);
+ BINARYNINJACOREAPI BNLinearViewObject* BNGetLinearViewObjectChildForOrderingIndex(
+ BNLinearViewObject* parent, uint64_t idx);
BINARYNINJACOREAPI BNLinearViewCursor* BNCreateLinearViewCursor(BNLinearViewObject* root);
BINARYNINJACOREAPI BNLinearViewCursor* BNDuplicateLinearViewCursor(BNLinearViewCursor* cursor);
@@ -3900,7 +3964,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNIsLinearViewCursorBeforeBegin(BNLinearViewCursor* cursor);
BINARYNINJACOREAPI bool BNIsLinearViewCursorAfterEnd(BNLinearViewCursor* cursor);
BINARYNINJACOREAPI BNLinearViewObject* BNGetLinearViewCursorCurrentObject(BNLinearViewCursor* cursor);
- BINARYNINJACOREAPI BNLinearViewObjectIdentifier* BNGetLinearViewCursorPath(BNLinearViewCursor* cursor, size_t* count);
+ BINARYNINJACOREAPI BNLinearViewObjectIdentifier* BNGetLinearViewCursorPath(
+ BNLinearViewCursor* cursor, size_t* count);
BINARYNINJACOREAPI void BNFreeLinearViewCursorPath(BNLinearViewObjectIdentifier* objs, size_t count);
BINARYNINJACOREAPI BNLinearViewObject** BNGetLinearViewCursorPathObjects(BNLinearViewCursor* cursor, size_t* count);
BINARYNINJACOREAPI void BNFreeLinearViewCursorPathObjects(BNLinearViewObject** objs, size_t count);
@@ -3909,13 +3974,13 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNSeekLinearViewCursorToBegin(BNLinearViewCursor* cursor);
BINARYNINJACOREAPI void BNSeekLinearViewCursorToEnd(BNLinearViewCursor* cursor);
BINARYNINJACOREAPI void BNSeekLinearViewCursorToAddress(BNLinearViewCursor* cursor, uint64_t addr);
- BINARYNINJACOREAPI bool BNSeekLinearViewCursorToPath(BNLinearViewCursor* cursor,
- BNLinearViewObjectIdentifier* ids, size_t count);
- BINARYNINJACOREAPI bool BNSeekLinearViewCursorToPathAndAddress(BNLinearViewCursor* cursor,
- BNLinearViewObjectIdentifier* ids, size_t count, uint64_t addr);
+ BINARYNINJACOREAPI bool BNSeekLinearViewCursorToPath(
+ BNLinearViewCursor* cursor, BNLinearViewObjectIdentifier* ids, size_t count);
+ BINARYNINJACOREAPI bool BNSeekLinearViewCursorToPathAndAddress(
+ BNLinearViewCursor* cursor, BNLinearViewObjectIdentifier* ids, size_t count, uint64_t addr);
BINARYNINJACOREAPI bool BNSeekLinearViewCursorToCursorPath(BNLinearViewCursor* cursor, BNLinearViewCursor* path);
- BINARYNINJACOREAPI bool BNSeekLinearViewCursorToCursorPathAndAddress(BNLinearViewCursor* cursor,
- BNLinearViewCursor* path, uint64_t addr);
+ BINARYNINJACOREAPI bool BNSeekLinearViewCursorToCursorPathAndAddress(
+ BNLinearViewCursor* cursor, BNLinearViewCursor* path, uint64_t addr);
BINARYNINJACOREAPI void BNSeekLinearViewCursorToOrderingIndex(BNLinearViewCursor* cursor, uint64_t idx);
BINARYNINJACOREAPI bool BNLinearViewCursorNext(BNLinearViewCursor* cursor);
BINARYNINJACOREAPI bool BNLinearViewCursorPrevious(BNLinearViewCursor* cursor);
@@ -3931,10 +3996,10 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNFreeDataVariablesAndName(BNDataVariableAndName* vars, size_t count);
BINARYNINJACOREAPI bool BNGetDataVariableAtAddress(BNBinaryView* view, uint64_t addr, BNDataVariable* var);
- BINARYNINJACOREAPI bool BNParseTypeString(BNBinaryView* view, const char* text,
- BNQualifiedNameAndType* result, char** errors, BNQualifiedNameList* typesAllowRedefinition);
+ BINARYNINJACOREAPI bool BNParseTypeString(BNBinaryView* view, const char* text, BNQualifiedNameAndType* result,
+ char** errors, BNQualifiedNameList* typesAllowRedefinition);
BINARYNINJACOREAPI bool BNParseTypesString(BNBinaryView* view, const char* text, BNTypeParserResult* result,
- char** errors, BNQualifiedNameList* typesAllowRedefinition);
+ char** errors, BNQualifiedNameList* typesAllowRedefinition);
BINARYNINJACOREAPI void BNFreeQualifiedNameAndType(BNQualifiedNameAndType* obj);
BINARYNINJACOREAPI void BNFreeQualifiedNameAndTypeArray(BNQualifiedNameAndType* obj, size_t count);
@@ -3947,12 +4012,13 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetAnalysisTypeId(BNBinaryView* view, BNQualifiedName* name);
BINARYNINJACOREAPI BNQualifiedName BNGetAnalysisTypeNameById(BNBinaryView* view, const char* id);
BINARYNINJACOREAPI bool BNIsAnalysisTypeAutoDefined(BNBinaryView* view, BNQualifiedName* name);
- BINARYNINJACOREAPI BNQualifiedName BNDefineAnalysisType(BNBinaryView* view, const char* id,
- BNQualifiedName* defaultName, BNType* type);
+ BINARYNINJACOREAPI BNQualifiedName BNDefineAnalysisType(
+ BNBinaryView* view, const char* id, BNQualifiedName* defaultName, BNType* type);
BINARYNINJACOREAPI void BNDefineUserAnalysisType(BNBinaryView* view, BNQualifiedName* name, BNType* type);
BINARYNINJACOREAPI void BNUndefineAnalysisType(BNBinaryView* view, const char* id);
BINARYNINJACOREAPI void BNUndefineUserAnalysisType(BNBinaryView* view, BNQualifiedName* name);
- BINARYNINJACOREAPI void BNRenameAnalysisType(BNBinaryView* view, BNQualifiedName* oldName, BNQualifiedName* newName);
+ BINARYNINJACOREAPI void BNRenameAnalysisType(
+ BNBinaryView* view, BNQualifiedName* oldName, BNQualifiedName* newName);
BINARYNINJACOREAPI char* BNGenerateAutoTypeId(const char* source, BNQualifiedName* name);
BINARYNINJACOREAPI char* BNGenerateAutoPlatformTypeId(BNPlatform* platform, BNQualifiedName* name);
BINARYNINJACOREAPI char* BNGenerateAutoDemangledTypeId(BNQualifiedName* name);
@@ -3969,11 +4035,12 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNWorkflow* BNGetWorkflowForBinaryView(BNBinaryView* view);
BINARYNINJACOREAPI BNWorkflow* BNGetWorkflowForFunction(BNFunction* func);
- BINARYNINJACOREAPI BNHighlightColor BNGetInstructionHighlight(BNFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI void BNSetAutoInstructionHighlight(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- BNHighlightColor color);
- BINARYNINJACOREAPI void BNSetUserInstructionHighlight(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- BNHighlightColor color);
+ BINARYNINJACOREAPI BNHighlightColor BNGetInstructionHighlight(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI void BNSetAutoInstructionHighlight(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNHighlightColor color);
+ BINARYNINJACOREAPI void BNSetUserInstructionHighlight(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNHighlightColor color);
BINARYNINJACOREAPI BNHighlightColor BNGetBasicBlockHighlight(BNBasicBlock* block);
BINARYNINJACOREAPI void BNSetAutoBasicBlockHighlight(BNBasicBlock* block, BNHighlightColor color);
BINARYNINJACOREAPI void BNSetUserBasicBlockHighlight(BNBasicBlock* block, BNHighlightColor color);
@@ -4017,7 +4084,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNTagReference* BNGetAllTagReferences(BNBinaryView* view, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetAllAddressTagReferences(BNBinaryView* view, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetAllFunctionTagReferences(BNBinaryView* view, size_t* count);
- BINARYNINJACOREAPI BNTagReference* BNGetAllTagReferencesOfType(BNBinaryView* view, BNTagType* tagType, size_t* count);
+ BINARYNINJACOREAPI BNTagReference* BNGetAllTagReferencesOfType(
+ BNBinaryView* view, BNTagType* tagType, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetTagReferencesOfType(BNBinaryView* view, BNTagType* tagType, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetDataTagReferences(BNBinaryView* view, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetAutoDataTagReferences(BNBinaryView* view, size_t* count);
@@ -4027,12 +4095,18 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNTag** BNGetDataTags(BNBinaryView* view, uint64_t addr, size_t* count);
BINARYNINJACOREAPI BNTag** BNGetAutoDataTags(BNBinaryView* view, uint64_t addr, size_t* count);
BINARYNINJACOREAPI BNTag** BNGetUserDataTags(BNBinaryView* view, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNTag** BNGetDataTagsOfType(BNBinaryView* view, uint64_t addr, BNTagType* tagType, size_t* count);
- BINARYNINJACOREAPI BNTag** BNGetAutoDataTagsOfType(BNBinaryView* view, uint64_t addr, BNTagType* tagType, size_t* count);
- BINARYNINJACOREAPI BNTag** BNGetUserDataTagsOfType(BNBinaryView* view, uint64_t addr, BNTagType* tagType, size_t* count);
- BINARYNINJACOREAPI BNTagReference* BNGetDataTagsInRange(BNBinaryView* view, uint64_t start, uint64_t end, size_t* count);
- BINARYNINJACOREAPI BNTagReference* BNGetAutoDataTagsInRange(BNBinaryView* view, uint64_t start, uint64_t end, size_t* count);
- BINARYNINJACOREAPI BNTagReference* BNGetUserDataTagsInRange(BNBinaryView* view, uint64_t start, uint64_t end, size_t* count);
+ BINARYNINJACOREAPI BNTag** BNGetDataTagsOfType(
+ BNBinaryView* view, uint64_t addr, BNTagType* tagType, size_t* count);
+ BINARYNINJACOREAPI BNTag** BNGetAutoDataTagsOfType(
+ BNBinaryView* view, uint64_t addr, BNTagType* tagType, size_t* count);
+ BINARYNINJACOREAPI BNTag** BNGetUserDataTagsOfType(
+ BNBinaryView* view, uint64_t addr, BNTagType* tagType, size_t* count);
+ BINARYNINJACOREAPI BNTagReference* BNGetDataTagsInRange(
+ BNBinaryView* view, uint64_t start, uint64_t end, size_t* count);
+ BINARYNINJACOREAPI BNTagReference* BNGetAutoDataTagsInRange(
+ BNBinaryView* view, uint64_t start, uint64_t end, size_t* count);
+ BINARYNINJACOREAPI BNTagReference* BNGetUserDataTagsInRange(
+ BNBinaryView* view, uint64_t start, uint64_t end, size_t* count);
BINARYNINJACOREAPI void BNAddAutoDataTag(BNBinaryView* view, uint64_t addr, BNTag* tag);
BINARYNINJACOREAPI void BNRemoveAutoDataTag(BNBinaryView* view, uint64_t addr, BNTag* tag);
BINARYNINJACOREAPI void BNRemoveAutoDataTagsOfType(BNBinaryView* view, uint64_t addr, BNTagType* tagType);
@@ -4042,30 +4116,42 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI size_t BNGetTagReferencesOfTypeCount(BNBinaryView* view, BNTagType* tagType);
BINARYNINJACOREAPI size_t BNGetAllTagReferencesOfTypeCount(BNBinaryView* view, BNTagType* tagType);
- BINARYNINJACOREAPI void BNGetAllTagReferenceTypeCounts(BNBinaryView* view, BNTagType*** tagTypes, size_t** counts, size_t* count);
+ BINARYNINJACOREAPI void BNGetAllTagReferenceTypeCounts(
+ BNBinaryView* view, BNTagType*** tagTypes, size_t** counts, size_t* count);
BINARYNINJACOREAPI void BNFreeTagReferenceTypeCounts(BNTagType** tagTypes, size_t* counts);
BINARYNINJACOREAPI BNTagReference* BNGetFunctionAllTagReferences(BNFunction* func, size_t* count);
- BINARYNINJACOREAPI BNTagReference* BNGetFunctionTagReferencesOfType(BNFunction* func, BNTagType* tagType, size_t* count);
+ BINARYNINJACOREAPI BNTagReference* BNGetFunctionTagReferencesOfType(
+ BNFunction* func, BNTagType* tagType, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetAddressTagReferences(BNFunction* func, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetAutoAddressTagReferences(BNFunction* func, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetUserAddressTagReferences(BNFunction* func, size_t* count);
BINARYNINJACOREAPI BNTag** BNGetAddressTags(BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNTag** BNGetAutoAddressTags(BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNTag** BNGetUserAddressTags(BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
- BINARYNINJACOREAPI BNTag** BNGetAddressTagsOfType(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType, size_t* count);
- BINARYNINJACOREAPI BNTag** BNGetAutoAddressTagsOfType(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType, size_t* count);
- BINARYNINJACOREAPI BNTag** BNGetUserAddressTagsOfType(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType, size_t* count);
- BINARYNINJACOREAPI BNTagReference* BNGetAddressTagsInRange(BNFunction* func, BNArchitecture* arch, uint64_t start, uint64_t end, size_t* count);
- BINARYNINJACOREAPI BNTagReference* BNGetAutoAddressTagsInRange(BNFunction* func, BNArchitecture* arch, uint64_t start, uint64_t end, size_t* count);
- BINARYNINJACOREAPI BNTagReference* BNGetUserAddressTagsInRange(BNFunction* func, BNArchitecture* arch, uint64_t start, uint64_t end, size_t* count);
+ BINARYNINJACOREAPI BNTag** BNGetAutoAddressTags(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNTag** BNGetUserAddressTags(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNTag** BNGetAddressTagsOfType(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType, size_t* count);
+ BINARYNINJACOREAPI BNTag** BNGetAutoAddressTagsOfType(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType, size_t* count);
+ BINARYNINJACOREAPI BNTag** BNGetUserAddressTagsOfType(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType, size_t* count);
+ BINARYNINJACOREAPI BNTagReference* BNGetAddressTagsInRange(
+ BNFunction* func, BNArchitecture* arch, uint64_t start, uint64_t end, size_t* count);
+ BINARYNINJACOREAPI BNTagReference* BNGetAutoAddressTagsInRange(
+ BNFunction* func, BNArchitecture* arch, uint64_t start, uint64_t end, size_t* count);
+ BINARYNINJACOREAPI BNTagReference* BNGetUserAddressTagsInRange(
+ BNFunction* func, BNArchitecture* arch, uint64_t start, uint64_t end, size_t* count);
BINARYNINJACOREAPI void BNAddAutoAddressTag(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTag* tag);
BINARYNINJACOREAPI void BNRemoveAutoAddressTag(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTag* tag);
- BINARYNINJACOREAPI void BNRemoveAutoAddressTagsOfType(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType);
+ BINARYNINJACOREAPI void BNRemoveAutoAddressTagsOfType(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType);
BINARYNINJACOREAPI void BNAddUserAddressTag(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTag* tag);
BINARYNINJACOREAPI void BNRemoveUserAddressTag(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTag* tag);
- BINARYNINJACOREAPI void BNRemoveUserAddressTagsOfType(BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType);
+ BINARYNINJACOREAPI void BNRemoveUserAddressTagsOfType(
+ BNFunction* func, BNArchitecture* arch, uint64_t addr, BNTagType* tagType);
BINARYNINJACOREAPI BNTagReference* BNGetFunctionTagReferences(BNFunction* func, size_t* count);
BINARYNINJACOREAPI BNTagReference* BNGetAutoFunctionTagReferences(BNFunction* func, size_t* count);
@@ -4088,36 +4174,42 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNFlowGraph* BNGetUnresolvedStackAdjustmentGraph(BNFunction* func);
- BINARYNINJACOREAPI void BNSetUserVariableValue(BNFunction* func, const BNVariable* var, const BNArchitectureAndAddress* defSite, const BNPossibleValueSet* value);
- BINARYNINJACOREAPI void BNClearUserVariableValue(BNFunction* func, const BNVariable* var, const BNArchitectureAndAddress* defSite);
- BINARYNINJACOREAPI BNUserVariableValue* BNGetAllUserVariableValues(BNFunction *func, size_t* count);
+ BINARYNINJACOREAPI void BNSetUserVariableValue(BNFunction* func, const BNVariable* var,
+ const BNArchitectureAndAddress* defSite, const BNPossibleValueSet* value);
+ BINARYNINJACOREAPI void BNClearUserVariableValue(
+ BNFunction* func, const BNVariable* var, const BNArchitectureAndAddress* defSite);
+ BINARYNINJACOREAPI BNUserVariableValue* BNGetAllUserVariableValues(BNFunction* func, size_t* count);
BINARYNINJACOREAPI void BNFreeUserVariableValues(BNUserVariableValue* result);
- BINARYNINJACOREAPI bool BNParsePossibleValueSet(BNBinaryView* view, const char* valueText, BNRegisterValueType state,
- BNPossibleValueSet* result, uint64_t here, char** errors);
+ BINARYNINJACOREAPI bool BNParsePossibleValueSet(BNBinaryView* view, const char* valueText,
+ BNRegisterValueType state, BNPossibleValueSet* result, uint64_t here, char** errors);
BINARYNINJACOREAPI void BNRequestFunctionDebugReport(BNFunction* func, const char* name);
- BINARYNINJACOREAPI BNILReferenceSource* BNGetMediumLevelILVariableReferences(BNFunction* func, BNVariable* var, size_t * count);
- BINARYNINJACOREAPI BNVariableReferenceSource* BNGetMediumLevelILVariableReferencesFrom(BNFunction* func, BNArchitecture* arch,
- uint64_t address, size_t* count);
- BINARYNINJACOREAPI BNVariableReferenceSource* BNGetMediumLevelILVariableReferencesInRange(BNFunction* func, BNArchitecture* arch,
- uint64_t address, uint64_t len, size_t* count);
- BINARYNINJACOREAPI BNILReferenceSource* BNGetMediumLevelILVariableReferencesIfAvailable(BNFunction* func, BNVariable* var, size_t * count);
- BINARYNINJACOREAPI BNVariableReferenceSource* BNGetMediumLevelILVariableReferencesFromIfAvailable(BNFunction* func, BNArchitecture* arch,
- uint64_t address, size_t* count);
- BINARYNINJACOREAPI BNVariableReferenceSource* BNGetMediumLevelILVariableReferencesInRangeIfAvailable(BNFunction* func, BNArchitecture* arch,
- uint64_t address, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNILReferenceSource* BNGetMediumLevelILVariableReferences(
+ BNFunction* func, BNVariable* var, size_t* count);
+ BINARYNINJACOREAPI BNVariableReferenceSource* BNGetMediumLevelILVariableReferencesFrom(
+ BNFunction* func, BNArchitecture* arch, uint64_t address, size_t* count);
+ BINARYNINJACOREAPI BNVariableReferenceSource* BNGetMediumLevelILVariableReferencesInRange(
+ BNFunction* func, BNArchitecture* arch, uint64_t address, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNILReferenceSource* BNGetMediumLevelILVariableReferencesIfAvailable(
+ BNFunction* func, BNVariable* var, size_t* count);
+ BINARYNINJACOREAPI BNVariableReferenceSource* BNGetMediumLevelILVariableReferencesFromIfAvailable(
+ BNFunction* func, BNArchitecture* arch, uint64_t address, size_t* count);
+ BINARYNINJACOREAPI BNVariableReferenceSource* BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
+ BNFunction* func, BNArchitecture* arch, uint64_t address, uint64_t len, size_t* count);
- BINARYNINJACOREAPI BNILReferenceSource* BNGetHighLevelILVariableReferences(BNFunction* func, BNVariable* var, size_t * count);
- BINARYNINJACOREAPI BNVariableReferenceSource* BNGetHighLevelILVariableReferencesFrom(BNFunction* func, BNArchitecture* arch,
- uint64_t address, size_t* count);
- BINARYNINJACOREAPI BNVariableReferenceSource* BNGetHighLevelILVariableReferencesInRange(BNFunction* func, BNArchitecture* arch,
- uint64_t address, uint64_t len, size_t* count);
- BINARYNINJACOREAPI BNILReferenceSource* BNGetHighLevelILVariableReferencesIfAvailable(BNFunction* func, BNVariable* var, size_t * count);
- BINARYNINJACOREAPI BNVariableReferenceSource* BNGetHighLevelILVariableReferencesFromIfAvailable(BNFunction* func, BNArchitecture* arch,
- uint64_t address, size_t* count);
- BINARYNINJACOREAPI BNVariableReferenceSource* BNGetHighLevelILVariableReferencesInRangeIfAvailable(BNFunction* func, BNArchitecture* arch,
- uint64_t address, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNILReferenceSource* BNGetHighLevelILVariableReferences(
+ BNFunction* func, BNVariable* var, size_t* count);
+ BINARYNINJACOREAPI BNVariableReferenceSource* BNGetHighLevelILVariableReferencesFrom(
+ BNFunction* func, BNArchitecture* arch, uint64_t address, size_t* count);
+ BINARYNINJACOREAPI BNVariableReferenceSource* BNGetHighLevelILVariableReferencesInRange(
+ BNFunction* func, BNArchitecture* arch, uint64_t address, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNILReferenceSource* BNGetHighLevelILVariableReferencesIfAvailable(
+ BNFunction* func, BNVariable* var, size_t* count);
+ BINARYNINJACOREAPI BNVariableReferenceSource* BNGetHighLevelILVariableReferencesFromIfAvailable(
+ BNFunction* func, BNArchitecture* arch, uint64_t address, size_t* count);
+ BINARYNINJACOREAPI BNVariableReferenceSource* BNGetHighLevelILVariableReferencesInRangeIfAvailable(
+ BNFunction* func, BNArchitecture* arch, uint64_t address, uint64_t len, size_t* count);
BINARYNINJACOREAPI void BNFreeVariableList(BNVariable* vars);
BINARYNINJACOREAPI void BNFreeVariableReferenceSourceList(BNVariableReferenceSource* vars, size_t count);
@@ -4128,18 +4220,25 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNFreeAnalysisContext(BNAnalysisContext* analysisContext);
BINARYNINJACOREAPI BNFunction* BNAnalysisContextGetFunction(BNAnalysisContext* analysisContext);
BINARYNINJACOREAPI BNLowLevelILFunction* BNAnalysisContextGetLowLevelILFunction(BNAnalysisContext* analysisContext);
- BINARYNINJACOREAPI BNMediumLevelILFunction* BNAnalysisContextGetMediumLevelILFunction(BNAnalysisContext* analysisContext);
- BINARYNINJACOREAPI BNHighLevelILFunction* BNAnalysisContextGetHighLevelILFunction(BNAnalysisContext* analysisContext);
+ BINARYNINJACOREAPI BNMediumLevelILFunction* BNAnalysisContextGetMediumLevelILFunction(
+ BNAnalysisContext* analysisContext);
+ BINARYNINJACOREAPI BNHighLevelILFunction* BNAnalysisContextGetHighLevelILFunction(
+ BNAnalysisContext* analysisContext);
- BINARYNINJACOREAPI void BNSetBasicBlockList(BNAnalysisContext* analysisContext, BNBasicBlock** basicBlocks, size_t count);
+ BINARYNINJACOREAPI void BNSetBasicBlockList(
+ BNAnalysisContext* analysisContext, BNBasicBlock** basicBlocks, size_t count);
BINARYNINJACOREAPI void BNSetLiftedILFunction(BNAnalysisContext* analysisContext, BNLowLevelILFunction* liftedIL);
- BINARYNINJACOREAPI void BNSetLowLevelILFunction(BNAnalysisContext* analysisContext, BNLowLevelILFunction* lowLevelIL);
- BINARYNINJACOREAPI void BNSetMediumLevelILFunction(BNAnalysisContext* analysisContext, BNMediumLevelILFunction* mediumLevelIL);
- BINARYNINJACOREAPI void BNSetHighLevelILFunction(BNAnalysisContext* analysisContext, BNHighLevelILFunction* highLevelIL);
+ BINARYNINJACOREAPI void BNSetLowLevelILFunction(
+ BNAnalysisContext* analysisContext, BNLowLevelILFunction* lowLevelIL);
+ BINARYNINJACOREAPI void BNSetMediumLevelILFunction(
+ BNAnalysisContext* analysisContext, BNMediumLevelILFunction* mediumLevelIL);
+ BINARYNINJACOREAPI void BNSetHighLevelILFunction(
+ BNAnalysisContext* analysisContext, BNHighLevelILFunction* highLevelIL);
BINARYNINJACOREAPI bool BNAnalysisContextInform(BNAnalysisContext* analysisContext, const char* request);
// Activity
- BINARYNINJACOREAPI BNActivity* BNCreateActivity(const char* name, void* ctxt, void (*action)(void*, BNAnalysisContext*));
+ BINARYNINJACOREAPI BNActivity* BNCreateActivity(
+ const char* name, void* ctxt, void (*action)(void*, BNAnalysisContext*));
BINARYNINJACOREAPI BNActivity* BNNewActivityReference(BNActivity* activity);
BINARYNINJACOREAPI void BNFreeActivity(BNActivity* activity);
@@ -4156,7 +4255,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNRegisterWorkflow(BNWorkflow* workflow, const char* description);
BINARYNINJACOREAPI BNWorkflow* BNWorkflowClone(BNWorkflow* workflow, const char* name, const char* activity);
- BINARYNINJACOREAPI bool BNWorkflowRegisterActivity(BNWorkflow* workflow, BNActivity* activity, const char** subactivities, size_t size, const char* description);
+ BINARYNINJACOREAPI bool BNWorkflowRegisterActivity(
+ BNWorkflow* workflow, BNActivity* activity, const char** subactivities, size_t size, const char* description);
BINARYNINJACOREAPI bool BNWorkflowContains(BNWorkflow* workflow, const char* activity);
BINARYNINJACOREAPI char* BNWorkflowGetConfiguration(BNWorkflow* workflow, const char* activity);
@@ -4165,28 +4265,32 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI size_t BNWorkflowSize(BNWorkflow* workflow);
BINARYNINJACOREAPI BNActivity* BNWorkflowGetActivity(BNWorkflow* workflow, const char* activity);
- BINARYNINJACOREAPI const char** BNWorkflowGetActivityRoots(BNWorkflow* workflow, const char* activity, size_t* inoutSize);
- BINARYNINJACOREAPI const char** BNWorkflowGetSubactivities(BNWorkflow* workflow, const char* activity, bool immediate, size_t* inoutSize);
- BINARYNINJACOREAPI bool BNWorkflowAssignSubactivities(BNWorkflow* workflow, const char* activity, const char** activities, size_t size);
+ BINARYNINJACOREAPI const char** BNWorkflowGetActivityRoots(
+ BNWorkflow* workflow, const char* activity, size_t* inoutSize);
+ BINARYNINJACOREAPI const char** BNWorkflowGetSubactivities(
+ BNWorkflow* workflow, const char* activity, bool immediate, size_t* inoutSize);
+ BINARYNINJACOREAPI bool BNWorkflowAssignSubactivities(
+ BNWorkflow* workflow, const char* activity, const char** activities, size_t size);
BINARYNINJACOREAPI bool BNWorkflowClear(BNWorkflow* workflow);
- BINARYNINJACOREAPI bool BNWorkflowInsert(BNWorkflow* workflow, const char* activity, const char** activities, size_t size);
+ BINARYNINJACOREAPI bool BNWorkflowInsert(
+ BNWorkflow* workflow, const char* activity, const char** activities, size_t size);
BINARYNINJACOREAPI bool BNWorkflowRemove(BNWorkflow* workflow, const char* activity);
BINARYNINJACOREAPI bool BNWorkflowReplace(BNWorkflow* workflow, const char* activity, const char* newActivity);
BINARYNINJACOREAPI BNFlowGraph* BNWorkflowGetGraph(BNWorkflow* workflow, const char* activity, bool sequential);
BINARYNINJACOREAPI void BNWorkflowShowReport(BNWorkflow* workflow, const char* name);
- //BINARYNINJACOREAPI bool BNWorkflowRun(const char* activity, BNAnalysisContext* analysisContext);
+ // BINARYNINJACOREAPI bool BNWorkflowRun(const char* activity, BNAnalysisContext* analysisContext);
// Disassembly settings
BINARYNINJACOREAPI BNDisassemblySettings* BNCreateDisassemblySettings(void);
BINARYNINJACOREAPI BNDisassemblySettings* BNNewDisassemblySettingsReference(BNDisassemblySettings* settings);
BINARYNINJACOREAPI void BNFreeDisassemblySettings(BNDisassemblySettings* settings);
- BINARYNINJACOREAPI bool BNIsDisassemblySettingsOptionSet(BNDisassemblySettings* settings,
- BNDisassemblyOption option);
- BINARYNINJACOREAPI void BNSetDisassemblySettingsOption(BNDisassemblySettings* settings,
- BNDisassemblyOption option, bool state);
+ BINARYNINJACOREAPI bool BNIsDisassemblySettingsOptionSet(
+ BNDisassemblySettings* settings, BNDisassemblyOption option);
+ BINARYNINJACOREAPI void BNSetDisassemblySettingsOption(
+ BNDisassemblySettings* settings, BNDisassemblyOption option, bool state);
BINARYNINJACOREAPI size_t BNGetDisassemblyWidth(BNDisassemblySettings* settings);
BINARYNINJACOREAPI void BNSetDisassemblyWidth(BNDisassemblySettings* settings, size_t width);
@@ -4197,14 +4301,14 @@ __attribute__ ((format (printf, 1, 2)))
// Flow graphs
BINARYNINJACOREAPI BNFlowGraph* BNCreateFlowGraph();
- BINARYNINJACOREAPI BNFlowGraph* BNCreateFunctionGraph(BNFunction* func, BNFunctionGraphType type,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNFlowGraph* BNCreateLowLevelILFunctionGraph(BNLowLevelILFunction* func,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNFlowGraph* BNCreateMediumLevelILFunctionGraph(BNMediumLevelILFunction* func,
- BNDisassemblySettings* settings);
- BINARYNINJACOREAPI BNFlowGraph* BNCreateHighLevelILFunctionGraph(BNHighLevelILFunction* func,
- BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNFlowGraph* BNCreateFunctionGraph(
+ BNFunction* func, BNFunctionGraphType type, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNFlowGraph* BNCreateLowLevelILFunctionGraph(
+ BNLowLevelILFunction* func, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNFlowGraph* BNCreateMediumLevelILFunctionGraph(
+ BNMediumLevelILFunction* func, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNFlowGraph* BNCreateHighLevelILFunctionGraph(
+ BNHighLevelILFunction* func, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNFlowGraph* BNCreateCustomFlowGraph(BNCustomFlowGraph* callbacks);
BINARYNINJACOREAPI BNFlowGraph* BNNewFlowGraphReference(BNFlowGraph* graph);
BINARYNINJACOREAPI void BNFreeFlowGraph(BNFlowGraph* graph);
@@ -4217,7 +4321,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI int BNGetVerticalFlowGraphNodeMargin(BNFlowGraph* graph);
BINARYNINJACOREAPI void BNSetFlowGraphNodeMargins(BNFlowGraph* graph, int horiz, int vert);
- BINARYNINJACOREAPI BNFlowGraphLayoutRequest* BNStartFlowGraphLayout(BNFlowGraph* graph, void* ctxt, void (*func)(void* ctxt));
+ BINARYNINJACOREAPI BNFlowGraphLayoutRequest* BNStartFlowGraphLayout(
+ BNFlowGraph* graph, void* ctxt, void (*func)(void* ctxt));
BINARYNINJACOREAPI bool BNIsFlowGraphLayoutComplete(BNFlowGraph* graph);
BINARYNINJACOREAPI BNFlowGraphLayoutRequest* BNNewFlowGraphLayoutRequestReference(BNFlowGraphLayoutRequest* layout);
BINARYNINJACOREAPI void BNFreeFlowGraphLayoutRequest(BNFlowGraphLayoutRequest* layout);
@@ -4238,7 +4343,7 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNFlowGraphNode** BNGetFlowGraphNodes(BNFlowGraph* graph, size_t* count);
BINARYNINJACOREAPI BNFlowGraphNode* BNGetFlowGraphNode(BNFlowGraph* graph, size_t i);
BINARYNINJACOREAPI BNFlowGraphNode** BNGetFlowGraphNodesInRegion(
- BNFlowGraph* graph, int left, int top, int right, int bottom, size_t* count);
+ BNFlowGraph* graph, int left, int top, int right, int bottom, size_t* count);
BINARYNINJACOREAPI void BNFreeFlowGraphNodeList(BNFlowGraphNode** nodes, size_t count);
BINARYNINJACOREAPI bool BNFlowGraphHasNodes(BNFlowGraph* graph);
BINARYNINJACOREAPI size_t BNAddFlowGraphNode(BNFlowGraph* graph, BNFlowGraphNode* node);
@@ -4263,7 +4368,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNFlowGraphEdge* BNGetFlowGraphNodeOutgoingEdges(BNFlowGraphNode* node, size_t* count);
BINARYNINJACOREAPI BNFlowGraphEdge* BNGetFlowGraphNodeIncomingEdges(BNFlowGraphNode* node, size_t* count);
BINARYNINJACOREAPI void BNFreeFlowGraphNodeEdgeList(BNFlowGraphEdge* edges, size_t count);
- BINARYNINJACOREAPI void BNAddFlowGraphNodeOutgoingEdge(BNFlowGraphNode* node, BNBranchType type, BNFlowGraphNode* target, BNEdgeStyle edgeStyle);
+ BINARYNINJACOREAPI void BNAddFlowGraphNodeOutgoingEdge(
+ BNFlowGraphNode* node, BNBranchType type, BNFlowGraphNode* target, BNEdgeStyle edgeStyle);
BINARYNINJACOREAPI BNHighlightColor BNGetFlowGraphNodeHighlight(BNFlowGraphNode* node);
BINARYNINJACOREAPI void BNSetFlowGraphNodeHighlight(BNFlowGraphNode* node, BNHighlightColor color);
@@ -4282,7 +4388,7 @@ __attribute__ ((format (printf, 1, 2)))
// Symbols
BINARYNINJACOREAPI BNSymbol* BNCreateSymbol(BNSymbolType type, const char* shortName, const char* fullName,
- const char* rawName, uint64_t addr, BNSymbolBinding binding, const BNNameSpace* nameSpace, uint64_t ordinal);
+ const char* rawName, uint64_t addr, BNSymbolBinding binding, const BNNameSpace* nameSpace, uint64_t ordinal);
BINARYNINJACOREAPI BNSymbol* BNNewSymbolReference(BNSymbol* sym);
BINARYNINJACOREAPI void BNFreeSymbol(BNSymbol* sym);
BINARYNINJACOREAPI BNSymbolType BNGetSymbolType(BNSymbol* sym);
@@ -4299,14 +4405,19 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNIsSymbolAutoDefined(BNSymbol* sym);
BINARYNINJACOREAPI BNSymbol* BNGetSymbolByAddress(BNBinaryView* view, uint64_t addr, const BNNameSpace* nameSpace);
- BINARYNINJACOREAPI BNSymbol* BNGetSymbolByRawName(BNBinaryView* view, const char* name, const BNNameSpace* nameSpace);
- BINARYNINJACOREAPI BNSymbol** BNGetSymbolsByName(BNBinaryView* view, const char* name, size_t* count, const BNNameSpace* nameSpace);
- BINARYNINJACOREAPI BNSymbol** BNGetSymbolsByRawName(BNBinaryView* view, const char* name, size_t* count, const BNNameSpace* nameSpace);
+ BINARYNINJACOREAPI BNSymbol* BNGetSymbolByRawName(
+ BNBinaryView* view, const char* name, const BNNameSpace* nameSpace);
+ BINARYNINJACOREAPI BNSymbol** BNGetSymbolsByName(
+ BNBinaryView* view, const char* name, size_t* count, const BNNameSpace* nameSpace);
+ BINARYNINJACOREAPI BNSymbol** BNGetSymbolsByRawName(
+ BNBinaryView* view, const char* name, size_t* count, const BNNameSpace* nameSpace);
BINARYNINJACOREAPI BNSymbol** BNGetSymbols(BNBinaryView* view, size_t* count, const BNNameSpace* nameSpace);
- BINARYNINJACOREAPI BNSymbol** BNGetSymbolsInRange(BNBinaryView* view, uint64_t start, uint64_t len, size_t* count, const BNNameSpace* nameSpace);
- BINARYNINJACOREAPI BNSymbol** BNGetSymbolsOfType(BNBinaryView* view, BNSymbolType type, size_t* count, const BNNameSpace* nameSpace);
- BINARYNINJACOREAPI BNSymbol** BNGetSymbolsOfTypeInRange(BNBinaryView* view, BNSymbolType type,
- uint64_t start, uint64_t len, size_t* count, const BNNameSpace* nameSpace);
+ BINARYNINJACOREAPI BNSymbol** BNGetSymbolsInRange(
+ BNBinaryView* view, uint64_t start, uint64_t len, size_t* count, const BNNameSpace* nameSpace);
+ BINARYNINJACOREAPI BNSymbol** BNGetSymbolsOfType(
+ BNBinaryView* view, BNSymbolType type, size_t* count, const BNNameSpace* nameSpace);
+ BINARYNINJACOREAPI BNSymbol** BNGetSymbolsOfTypeInRange(BNBinaryView* view, BNSymbolType type, uint64_t start,
+ uint64_t len, size_t* count, const BNNameSpace* nameSpace);
BINARYNINJACOREAPI void BNFreeSymbolList(BNSymbol** syms, size_t count);
BINARYNINJACOREAPI BNSymbol** BNGetVisibleSymbols(BNBinaryView* view, size_t* count, const BNNameSpace* nameSpace);
@@ -4314,8 +4425,10 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNUndefineAutoSymbol(BNBinaryView* view, BNSymbol* sym);
BINARYNINJACOREAPI void BNDefineUserSymbol(BNBinaryView* view, BNSymbol* sym);
BINARYNINJACOREAPI void BNUndefineUserSymbol(BNBinaryView* view, BNSymbol* sym);
- BINARYNINJACOREAPI void BNDefineImportedFunction(BNBinaryView* view, BNSymbol* importAddressSym, BNFunction* func, BNType* type);
- BINARYNINJACOREAPI BNSymbol* BNDefineAutoSymbolAndVariableOrFunction(BNBinaryView* view, BNPlatform* platform, BNSymbol* sym, BNType* type);
+ BINARYNINJACOREAPI void BNDefineImportedFunction(
+ BNBinaryView* view, BNSymbol* importAddressSym, BNFunction* func, BNType* type);
+ BINARYNINJACOREAPI BNSymbol* BNDefineAutoSymbolAndVariableOrFunction(
+ BNBinaryView* view, BNPlatform* platform, BNSymbol* sym, BNType* type);
BINARYNINJACOREAPI BNDebugInfo* BNGetDebugInfo(BNBinaryView* view);
BINARYNINJACOREAPI void BNApplyDebugInfo(BNBinaryView* view, BNDebugInfo* newDebugInfo);
@@ -4329,26 +4442,28 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNFreeLowLevelILFunction(BNLowLevelILFunction* func);
BINARYNINJACOREAPI BNFunction* BNGetLowLevelILOwnerFunction(BNLowLevelILFunction* func);
BINARYNINJACOREAPI uint64_t BNLowLevelILGetCurrentAddress(BNLowLevelILFunction* func);
- BINARYNINJACOREAPI void BNLowLevelILSetCurrentAddress(BNLowLevelILFunction* func,
- BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI void BNLowLevelILSetCurrentAddress(
+ BNLowLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI void BNLowLevelILSetCurrentSourceBlock(BNLowLevelILFunction* func, BNBasicBlock* source);
- BINARYNINJACOREAPI size_t BNLowLevelILGetInstructionStart(BNLowLevelILFunction* func,
- BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI size_t BNLowLevelILGetInstructionStart(
+ BNLowLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI void BNLowLevelILClearIndirectBranches(BNLowLevelILFunction* func);
- BINARYNINJACOREAPI void BNLowLevelILSetIndirectBranches(BNLowLevelILFunction* func, BNArchitectureAndAddress* branches,
- size_t count);
- BINARYNINJACOREAPI size_t BNLowLevelILAddExpr(BNLowLevelILFunction* func, BNLowLevelILOperation operation, size_t size,
- uint32_t flags, uint64_t a, uint64_t b, uint64_t c, uint64_t d);
- BINARYNINJACOREAPI size_t BNLowLevelILAddExprWithLocation(BNLowLevelILFunction* func, uint64_t addr, uint32_t sourceOperand,
- BNLowLevelILOperation operation, size_t size, uint32_t flags, uint64_t a, uint64_t b, uint64_t c, uint64_t d);
+ BINARYNINJACOREAPI void BNLowLevelILSetIndirectBranches(
+ BNLowLevelILFunction* func, BNArchitectureAndAddress* branches, size_t count);
+ BINARYNINJACOREAPI size_t BNLowLevelILAddExpr(BNLowLevelILFunction* func, BNLowLevelILOperation operation,
+ size_t size, uint32_t flags, uint64_t a, uint64_t b, uint64_t c, uint64_t d);
+ BINARYNINJACOREAPI size_t BNLowLevelILAddExprWithLocation(BNLowLevelILFunction* func, uint64_t addr,
+ uint32_t sourceOperand, BNLowLevelILOperation operation, size_t size, uint32_t flags, uint64_t a, uint64_t b,
+ uint64_t c, uint64_t d);
BINARYNINJACOREAPI void BNLowLevelILSetExprSourceOperand(BNLowLevelILFunction* func, size_t expr, uint32_t operand);
BINARYNINJACOREAPI size_t BNLowLevelILAddInstruction(BNLowLevelILFunction* func, size_t expr);
BINARYNINJACOREAPI size_t BNLowLevelILGoto(BNLowLevelILFunction* func, BNLowLevelILLabel* label);
- BINARYNINJACOREAPI size_t BNLowLevelILGotoWithLocation(BNLowLevelILFunction* func, BNLowLevelILLabel* label,
- uint64_t addr, uint32_t sourceOperand);
- BINARYNINJACOREAPI size_t BNLowLevelILIf(BNLowLevelILFunction* func, uint64_t op, BNLowLevelILLabel* t, BNLowLevelILLabel* f);
- BINARYNINJACOREAPI size_t BNLowLevelILIfWithLocation(BNLowLevelILFunction* func, uint64_t op,
- BNLowLevelILLabel* t, BNLowLevelILLabel* f, uint64_t addr, uint32_t sourceOperand);
+ BINARYNINJACOREAPI size_t BNLowLevelILGotoWithLocation(
+ BNLowLevelILFunction* func, BNLowLevelILLabel* label, uint64_t addr, uint32_t sourceOperand);
+ BINARYNINJACOREAPI size_t BNLowLevelILIf(
+ BNLowLevelILFunction* func, uint64_t op, BNLowLevelILLabel* t, BNLowLevelILLabel* f);
+ BINARYNINJACOREAPI size_t BNLowLevelILIfWithLocation(BNLowLevelILFunction* func, uint64_t op, BNLowLevelILLabel* t,
+ BNLowLevelILLabel* f, uint64_t addr, uint32_t sourceOperand);
BINARYNINJACOREAPI void BNLowLevelILInitLabel(BNLowLevelILLabel* label);
BINARYNINJACOREAPI void BNLowLevelILMarkLabel(BNLowLevelILFunction* func, BNLowLevelILLabel* label);
BINARYNINJACOREAPI void BNFinalizeLowLevelILFunction(BNLowLevelILFunction* func);
@@ -4356,13 +4471,14 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNPrepareToCopyLowLevelILFunction(BNLowLevelILFunction* func, BNLowLevelILFunction* src);
BINARYNINJACOREAPI void BNPrepareToCopyLowLevelILBasicBlock(BNLowLevelILFunction* func, BNBasicBlock* block);
- BINARYNINJACOREAPI BNLowLevelILLabel* BNGetLabelForLowLevelILSourceInstruction(BNLowLevelILFunction* func, size_t instr);
+ BINARYNINJACOREAPI BNLowLevelILLabel* BNGetLabelForLowLevelILSourceInstruction(
+ BNLowLevelILFunction* func, size_t instr);
- BINARYNINJACOREAPI size_t BNLowLevelILAddLabelMap(BNLowLevelILFunction* func, uint64_t* values,
- BNLowLevelILLabel** labels, size_t count);
+ BINARYNINJACOREAPI size_t BNLowLevelILAddLabelMap(
+ BNLowLevelILFunction* func, uint64_t* values, BNLowLevelILLabel** labels, size_t count);
BINARYNINJACOREAPI size_t BNLowLevelILAddOperandList(BNLowLevelILFunction* func, uint64_t* operands, size_t count);
- BINARYNINJACOREAPI uint64_t* BNLowLevelILGetOperandList(BNLowLevelILFunction* func, size_t expr, size_t operand,
- size_t* count);
+ BINARYNINJACOREAPI uint64_t* BNLowLevelILGetOperandList(
+ BNLowLevelILFunction* func, size_t expr, size_t operand, size_t* count);
BINARYNINJACOREAPI void BNLowLevelILFreeOperandList(uint64_t* operands);
BINARYNINJACOREAPI BNLowLevelILInstruction BNGetLowLevelILByIndex(BNLowLevelILFunction* func, size_t i);
@@ -4371,18 +4487,19 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI size_t BNGetLowLevelILInstructionCount(BNLowLevelILFunction* func);
BINARYNINJACOREAPI size_t BNGetLowLevelILExprCount(BNLowLevelILFunction* func);
- BINARYNINJACOREAPI void BNUpdateLowLevelILOperand(BNLowLevelILFunction* func, size_t instr,
- size_t operandIndex, uint64_t value);
+ BINARYNINJACOREAPI void BNUpdateLowLevelILOperand(
+ BNLowLevelILFunction* func, size_t instr, size_t operandIndex, uint64_t value);
BINARYNINJACOREAPI void BNReplaceLowLevelILExpr(BNLowLevelILFunction* func, size_t expr, size_t newExpr);
- BINARYNINJACOREAPI void BNAddLowLevelILLabelForAddress(BNLowLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI BNLowLevelILLabel* BNGetLowLevelILLabelForAddress(BNLowLevelILFunction* func,
- BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI void BNAddLowLevelILLabelForAddress(
+ BNLowLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI BNLowLevelILLabel* BNGetLowLevelILLabelForAddress(
+ BNLowLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI bool BNGetLowLevelILExprText(BNLowLevelILFunction* func, BNArchitecture* arch, size_t i,
- BNInstructionTextToken** tokens, size_t* count);
+ BINARYNINJACOREAPI bool BNGetLowLevelILExprText(
+ BNLowLevelILFunction* func, BNArchitecture* arch, size_t i, BNInstructionTextToken** tokens, size_t* count);
BINARYNINJACOREAPI bool BNGetLowLevelILInstructionText(BNLowLevelILFunction* il, BNFunction* func,
- BNArchitecture* arch, size_t i, BNInstructionTextToken** tokens, size_t* count);
+ BNArchitecture* arch, size_t i, BNInstructionTextToken** tokens, size_t* count);
BINARYNINJACOREAPI uint32_t BNGetLowLevelILTemporaryRegisterCount(BNLowLevelILFunction* func);
BINARYNINJACOREAPI uint32_t BNGetLowLevelILTemporaryFlagCount(BNLowLevelILFunction* func);
@@ -4397,58 +4514,62 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI size_t BNGetLowLevelILSSAExprIndex(BNLowLevelILFunction* func, size_t expr);
BINARYNINJACOREAPI size_t BNGetLowLevelILNonSSAExprIndex(BNLowLevelILFunction* func, size_t expr);
- BINARYNINJACOREAPI size_t BNGetLowLevelILSSARegisterDefinition(BNLowLevelILFunction* func,
- uint32_t reg, size_t version);
- BINARYNINJACOREAPI size_t BNGetLowLevelILSSAFlagDefinition(BNLowLevelILFunction* func,
- uint32_t reg, size_t version);
+ BINARYNINJACOREAPI size_t BNGetLowLevelILSSARegisterDefinition(
+ BNLowLevelILFunction* func, uint32_t reg, size_t version);
+ BINARYNINJACOREAPI size_t BNGetLowLevelILSSAFlagDefinition(
+ BNLowLevelILFunction* func, uint32_t reg, size_t version);
BINARYNINJACOREAPI size_t BNGetLowLevelILSSAMemoryDefinition(BNLowLevelILFunction* func, size_t version);
- BINARYNINJACOREAPI size_t* BNGetLowLevelILSSARegisterUses(BNLowLevelILFunction* func,
- uint32_t reg, size_t version, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetLowLevelILSSAFlagUses(BNLowLevelILFunction* func, uint32_t reg, size_t version,
- size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLowLevelILSSARegisterUses(
+ BNLowLevelILFunction* func, uint32_t reg, size_t version, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLowLevelILSSAFlagUses(
+ BNLowLevelILFunction* func, uint32_t reg, size_t version, size_t* count);
BINARYNINJACOREAPI size_t* BNGetLowLevelILSSAMemoryUses(BNLowLevelILFunction* func, size_t version, size_t* count);
- BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILSSARegisterValue(BNLowLevelILFunction* func,
- uint32_t reg, size_t version);
- BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILSSAFlagValue(BNLowLevelILFunction* func,
- uint32_t flag, size_t version);
+ BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILSSARegisterValue(
+ BNLowLevelILFunction* func, uint32_t reg, size_t version);
+ BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILSSAFlagValue(
+ BNLowLevelILFunction* func, uint32_t flag, size_t version);
BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILExprValue(BNLowLevelILFunction* func, size_t expr);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleExprValues(BNLowLevelILFunction* func, size_t expr,
- BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleExprValues(
+ BNLowLevelILFunction* func, size_t expr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILRegisterValueAtInstruction(BNLowLevelILFunction* func,
- uint32_t reg, size_t instr);
- BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILRegisterValueAfterInstruction(BNLowLevelILFunction* func,
- uint32_t reg, size_t instr);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleRegisterValuesAtInstruction(BNLowLevelILFunction* func,
- uint32_t reg, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleRegisterValuesAfterInstruction(BNLowLevelILFunction* func,
- uint32_t reg, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILFlagValueAtInstruction(BNLowLevelILFunction* func,
- uint32_t flag, size_t instr);
- BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILFlagValueAfterInstruction(BNLowLevelILFunction* func,
- uint32_t flag, size_t instr);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleFlagValuesAtInstruction(BNLowLevelILFunction* func,
- uint32_t flag, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleFlagValuesAfterInstruction(BNLowLevelILFunction* func,
- uint32_t flag, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILStackContentsAtInstruction(BNLowLevelILFunction* func,
- int64_t offset, size_t len, size_t instr);
- BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILStackContentsAfterInstruction(BNLowLevelILFunction* func,
- int64_t offset, size_t len, size_t instr);
+ BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILRegisterValueAtInstruction(
+ BNLowLevelILFunction* func, uint32_t reg, size_t instr);
+ BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILRegisterValueAfterInstruction(
+ BNLowLevelILFunction* func, uint32_t reg, size_t instr);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleRegisterValuesAtInstruction(
+ BNLowLevelILFunction* func, uint32_t reg, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
+ BNLowLevelILFunction* func, uint32_t reg, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILFlagValueAtInstruction(
+ BNLowLevelILFunction* func, uint32_t flag, size_t instr);
+ BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILFlagValueAfterInstruction(
+ BNLowLevelILFunction* func, uint32_t flag, size_t instr);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleFlagValuesAtInstruction(
+ BNLowLevelILFunction* func, uint32_t flag, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleFlagValuesAfterInstruction(
+ BNLowLevelILFunction* func, uint32_t flag, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILStackContentsAtInstruction(
+ BNLowLevelILFunction* func, int64_t offset, size_t len, size_t instr);
+ BINARYNINJACOREAPI BNRegisterValue BNGetLowLevelILStackContentsAfterInstruction(
+ BNLowLevelILFunction* func, int64_t offset, size_t len, size_t instr);
BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleStackContentsAtInstruction(BNLowLevelILFunction* func,
- int64_t offset, size_t len, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleStackContentsAfterInstruction(BNLowLevelILFunction* func,
- int64_t offset, size_t len, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ int64_t offset, size_t len, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetLowLevelILPossibleStackContentsAfterInstruction(
+ BNLowLevelILFunction* func, int64_t offset, size_t len, size_t instr, BNDataFlowQueryOption* options,
+ size_t optionCount);
BINARYNINJACOREAPI uint32_t* BNGetLowLevelRegisters(BNLowLevelILFunction* func, size_t* count);
BINARYNINJACOREAPI uint32_t* BNGetLowLevelRegisterStacks(BNLowLevelILFunction* func, size_t* count);
BINARYNINJACOREAPI uint32_t* BNGetLowLevelFlags(BNLowLevelILFunction* func, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetLowLevelRegisterSSAVersions(BNLowLevelILFunction* func, const uint32_t var, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetLowLevelRegisterStackSSAVersions(BNLowLevelILFunction* func, const uint32_t var, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetLowLevelFlagSSAVersions(BNLowLevelILFunction* func, const uint32_t var, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLowLevelRegisterSSAVersions(
+ BNLowLevelILFunction* func, const uint32_t var, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLowLevelRegisterStackSSAVersions(
+ BNLowLevelILFunction* func, const uint32_t var, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetLowLevelFlagSSAVersions(
+ BNLowLevelILFunction* func, const uint32_t var, size_t* count);
BINARYNINJACOREAPI size_t* BNGetLowLevelMemoryVersions(BNLowLevelILFunction* func, size_t* count);
@@ -4469,42 +4590,42 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNFreeMediumLevelILFunction(BNMediumLevelILFunction* func);
BINARYNINJACOREAPI BNFunction* BNGetMediumLevelILOwnerFunction(BNMediumLevelILFunction* func);
BINARYNINJACOREAPI uint64_t BNMediumLevelILGetCurrentAddress(BNMediumLevelILFunction* func);
- BINARYNINJACOREAPI void BNMediumLevelILSetCurrentAddress(BNMediumLevelILFunction* func,
- BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI size_t BNMediumLevelILGetInstructionStart(BNMediumLevelILFunction* func,
- BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI void BNMediumLevelILSetCurrentAddress(
+ BNMediumLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI size_t BNMediumLevelILGetInstructionStart(
+ BNMediumLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
BINARYNINJACOREAPI size_t BNMediumLevelILAddExpr(BNMediumLevelILFunction* func, BNMediumLevelILOperation operation,
- size_t size, uint64_t a, uint64_t b, uint64_t c, uint64_t d, uint64_t e);
+ size_t size, uint64_t a, uint64_t b, uint64_t c, uint64_t d, uint64_t e);
BINARYNINJACOREAPI size_t BNMediumLevelILAddExprWithLocation(BNMediumLevelILFunction* func,
- BNMediumLevelILOperation operation, uint64_t addr, uint32_t sourceOperand, size_t size,
- uint64_t a, uint64_t b, uint64_t c, uint64_t d, uint64_t e);
+ BNMediumLevelILOperation operation, uint64_t addr, uint32_t sourceOperand, size_t size, uint64_t a, uint64_t b,
+ uint64_t c, uint64_t d, uint64_t e);
BINARYNINJACOREAPI size_t BNMediumLevelILAddInstruction(BNMediumLevelILFunction* func, size_t expr);
BINARYNINJACOREAPI size_t BNMediumLevelILGoto(BNMediumLevelILFunction* func, BNMediumLevelILLabel* label);
- BINARYNINJACOREAPI size_t BNMediumLevelILGotoWithLocation(BNMediumLevelILFunction* func, BNMediumLevelILLabel* label,
- uint64_t addr, uint32_t sourceOperand);
- BINARYNINJACOREAPI size_t BNMediumLevelILIf(BNMediumLevelILFunction* func, uint64_t op,
- BNMediumLevelILLabel* t, BNMediumLevelILLabel* f);
+ BINARYNINJACOREAPI size_t BNMediumLevelILGotoWithLocation(
+ BNMediumLevelILFunction* func, BNMediumLevelILLabel* label, uint64_t addr, uint32_t sourceOperand);
+ BINARYNINJACOREAPI size_t BNMediumLevelILIf(
+ BNMediumLevelILFunction* func, uint64_t op, BNMediumLevelILLabel* t, BNMediumLevelILLabel* f);
BINARYNINJACOREAPI size_t BNMediumLevelILIfWithLocation(BNMediumLevelILFunction* func, uint64_t op,
- BNMediumLevelILLabel* t, BNMediumLevelILLabel* f, uint64_t addr, uint32_t sourceOperand);
+ BNMediumLevelILLabel* t, BNMediumLevelILLabel* f, uint64_t addr, uint32_t sourceOperand);
BINARYNINJACOREAPI void BNMediumLevelILInitLabel(BNMediumLevelILLabel* label);
BINARYNINJACOREAPI void BNMediumLevelILMarkLabel(BNMediumLevelILFunction* func, BNMediumLevelILLabel* label);
BINARYNINJACOREAPI void BNFinalizeMediumLevelILFunction(BNMediumLevelILFunction* func);
- BINARYNINJACOREAPI void BNGenerateMediumLevelILSSAForm(BNMediumLevelILFunction* func,
- bool analyzeConditionals, bool handleAliases, BNVariable* knownNotAliases, size_t knownNotAliasCount,
- BNVariable* knownAliases, size_t knownAliasCount);
+ BINARYNINJACOREAPI void BNGenerateMediumLevelILSSAForm(BNMediumLevelILFunction* func, bool analyzeConditionals,
+ bool handleAliases, BNVariable* knownNotAliases, size_t knownNotAliasCount, BNVariable* knownAliases,
+ size_t knownAliasCount);
- BINARYNINJACOREAPI void BNPrepareToCopyMediumLevelILFunction(BNMediumLevelILFunction* func,
- BNMediumLevelILFunction* src);
+ BINARYNINJACOREAPI void BNPrepareToCopyMediumLevelILFunction(
+ BNMediumLevelILFunction* func, BNMediumLevelILFunction* src);
BINARYNINJACOREAPI void BNPrepareToCopyMediumLevelILBasicBlock(BNMediumLevelILFunction* func, BNBasicBlock* block);
- BINARYNINJACOREAPI BNMediumLevelILLabel* BNGetLabelForMediumLevelILSourceInstruction(BNMediumLevelILFunction* func,
- size_t instr);
+ BINARYNINJACOREAPI BNMediumLevelILLabel* BNGetLabelForMediumLevelILSourceInstruction(
+ BNMediumLevelILFunction* func, size_t instr);
- BINARYNINJACOREAPI size_t BNMediumLevelILAddLabelMap(BNMediumLevelILFunction* func,
- uint64_t* values, BNMediumLevelILLabel** labels, size_t count);
- BINARYNINJACOREAPI size_t BNMediumLevelILAddOperandList(BNMediumLevelILFunction* func,
- uint64_t* operands, size_t count);
- BINARYNINJACOREAPI uint64_t* BNMediumLevelILGetOperandList(BNMediumLevelILFunction* func, size_t expr,
- size_t operand, size_t* count);
+ BINARYNINJACOREAPI size_t BNMediumLevelILAddLabelMap(
+ BNMediumLevelILFunction* func, uint64_t* values, BNMediumLevelILLabel** labels, size_t count);
+ BINARYNINJACOREAPI size_t BNMediumLevelILAddOperandList(
+ BNMediumLevelILFunction* func, uint64_t* operands, size_t count);
+ BINARYNINJACOREAPI uint64_t* BNMediumLevelILGetOperandList(
+ BNMediumLevelILFunction* func, size_t expr, size_t operand, size_t* count);
BINARYNINJACOREAPI void BNMediumLevelILFreeOperandList(uint64_t* operands);
BINARYNINJACOREAPI BNMediumLevelILInstruction BNGetMediumLevelILByIndex(BNMediumLevelILFunction* func, size_t i);
@@ -4513,20 +4634,21 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI size_t BNGetMediumLevelILInstructionCount(BNMediumLevelILFunction* func);
BINARYNINJACOREAPI size_t BNGetMediumLevelILExprCount(BNMediumLevelILFunction* func);
- BINARYNINJACOREAPI void BNUpdateMediumLevelILOperand(BNMediumLevelILFunction* func, size_t instr,
- size_t operandIndex, uint64_t value);
+ BINARYNINJACOREAPI void BNUpdateMediumLevelILOperand(
+ BNMediumLevelILFunction* func, size_t instr, size_t operandIndex, uint64_t value);
BINARYNINJACOREAPI void BNMarkMediumLevelILInstructionForRemoval(BNMediumLevelILFunction* func, size_t instr);
BINARYNINJACOREAPI void BNReplaceMediumLevelILInstruction(BNMediumLevelILFunction* func, size_t instr, size_t expr);
BINARYNINJACOREAPI void BNReplaceMediumLevelILExpr(BNMediumLevelILFunction* func, size_t expr, size_t newExpr);
BINARYNINJACOREAPI bool BNGetMediumLevelILExprText(BNMediumLevelILFunction* func, BNArchitecture* arch, size_t i,
- BNInstructionTextToken** tokens, size_t* count,
- BNDisassemblySettings* settings);
+ BNInstructionTextToken** tokens, size_t* count, BNDisassemblySettings* settings);
BINARYNINJACOREAPI bool BNGetMediumLevelILInstructionText(BNMediumLevelILFunction* il, BNFunction* func,
- BNArchitecture* arch, size_t i, BNInstructionTextToken** tokens, size_t* count, BNDisassemblySettings* settings);
+ BNArchitecture* arch, size_t i, BNInstructionTextToken** tokens, size_t* count,
+ BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNBasicBlock** BNGetMediumLevelILBasicBlockList(BNMediumLevelILFunction* func, size_t* count);
- BINARYNINJACOREAPI BNBasicBlock* BNGetMediumLevelILBasicBlockForInstruction(BNMediumLevelILFunction* func, size_t i);
+ BINARYNINJACOREAPI BNBasicBlock* BNGetMediumLevelILBasicBlockForInstruction(
+ BNMediumLevelILFunction* func, size_t i);
BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetMediumLevelILSSAForm(BNMediumLevelILFunction* func);
BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetMediumLevelILNonSSAForm(BNMediumLevelILFunction* func);
@@ -4535,73 +4657,76 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAExprIndex(BNMediumLevelILFunction* func, size_t expr);
BINARYNINJACOREAPI size_t BNGetMediumLevelILNonSSAExprIndex(BNMediumLevelILFunction* func, size_t expr);
- BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAVarDefinition(BNMediumLevelILFunction* func,
- const BNVariable* var, size_t version);
+ BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAVarDefinition(
+ BNMediumLevelILFunction* func, const BNVariable* var, size_t version);
BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAMemoryDefinition(BNMediumLevelILFunction* func, size_t version);
- BINARYNINJACOREAPI size_t* BNGetMediumLevelILSSAVarUses(BNMediumLevelILFunction* func, const BNVariable* var,
- size_t version, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetMediumLevelILSSAMemoryUses(BNMediumLevelILFunction* func,
- size_t version, size_t* count);
- BINARYNINJACOREAPI bool BNIsMediumLevelILSSAVarLive(BNMediumLevelILFunction* func,
- const BNVariable* var, size_t version);
+ BINARYNINJACOREAPI size_t* BNGetMediumLevelILSSAVarUses(
+ BNMediumLevelILFunction* func, const BNVariable* var, size_t version, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetMediumLevelILSSAMemoryUses(
+ BNMediumLevelILFunction* func, size_t version, size_t* count);
+ BINARYNINJACOREAPI bool BNIsMediumLevelILSSAVarLive(
+ BNMediumLevelILFunction* func, const BNVariable* var, size_t version);
- BINARYNINJACOREAPI BNVariable* BNGetMediumLevelILVariables(BNMediumLevelILFunction* func, size_t * count);
+ BINARYNINJACOREAPI BNVariable* BNGetMediumLevelILVariables(BNMediumLevelILFunction* func, size_t* count);
BINARYNINJACOREAPI BNVariable* BNGetMediumLevelILAliasedVariables(BNMediumLevelILFunction* func, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetMediumLevelILVariableSSAVersions(BNMediumLevelILFunction* func, const BNVariable* var, size_t * count);
+ BINARYNINJACOREAPI size_t* BNGetMediumLevelILVariableSSAVersions(
+ BNMediumLevelILFunction* func, const BNVariable* var, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetMediumLevelILVariableDefinitions(BNMediumLevelILFunction* func,
- const BNVariable* var, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetMediumLevelILVariableUses(BNMediumLevelILFunction* func,
- const BNVariable* var, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetMediumLevelILVariableDefinitions(
+ BNMediumLevelILFunction* func, const BNVariable* var, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetMediumLevelILVariableUses(
+ BNMediumLevelILFunction* func, const BNVariable* var, size_t* count);
- BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILSSAVarValue(BNMediumLevelILFunction* func,
- const BNVariable* var, size_t version);
+ BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILSSAVarValue(
+ BNMediumLevelILFunction* func, const BNVariable* var, size_t version);
BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILExprValue(BNMediumLevelILFunction* func, size_t expr);
BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleSSAVarValues(BNMediumLevelILFunction* func,
- const BNVariable* var, size_t version, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleExprValues(BNMediumLevelILFunction* func, size_t expr,
- BNDataFlowQueryOption* options, size_t optionCount);
+ const BNVariable* var, size_t version, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleExprValues(
+ BNMediumLevelILFunction* func, size_t expr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAVarVersionAtILInstruction(BNMediumLevelILFunction* func,
- const BNVariable* var, size_t instr);
- BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAMemoryVersionAtILInstruction(BNMediumLevelILFunction* func,
- size_t instr);
- BINARYNINJACOREAPI BNVariable BNGetMediumLevelILVariableForRegisterAtInstruction(BNMediumLevelILFunction* func,
- uint32_t reg, size_t instr);
- BINARYNINJACOREAPI BNVariable BNGetMediumLevelILVariableForFlagAtInstruction(BNMediumLevelILFunction* func,
- uint32_t flag, size_t instr);
- BINARYNINJACOREAPI BNVariable BNGetMediumLevelILVariableForStackLocationAtInstruction(BNMediumLevelILFunction* func,
- int64_t offset, size_t instr);
+ BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAVarVersionAtILInstruction(
+ BNMediumLevelILFunction* func, const BNVariable* var, size_t instr);
+ BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
+ BNMediumLevelILFunction* func, size_t instr);
+ BINARYNINJACOREAPI BNVariable BNGetMediumLevelILVariableForRegisterAtInstruction(
+ BNMediumLevelILFunction* func, uint32_t reg, size_t instr);
+ BINARYNINJACOREAPI BNVariable BNGetMediumLevelILVariableForFlagAtInstruction(
+ BNMediumLevelILFunction* func, uint32_t flag, size_t instr);
+ BINARYNINJACOREAPI BNVariable BNGetMediumLevelILVariableForStackLocationAtInstruction(
+ BNMediumLevelILFunction* func, int64_t offset, size_t instr);
- BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILRegisterValueAtInstruction(BNMediumLevelILFunction* func,
- uint32_t reg, size_t instr);
- BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILRegisterValueAfterInstruction(BNMediumLevelILFunction* func,
- uint32_t reg, size_t instr);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleRegisterValuesAtInstruction(BNMediumLevelILFunction* func,
- uint32_t reg, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(BNMediumLevelILFunction* func,
- uint32_t reg, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILFlagValueAtInstruction(BNMediumLevelILFunction* func,
- uint32_t flag, size_t instr);
- BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILFlagValueAfterInstruction(BNMediumLevelILFunction* func,
- uint32_t flag, size_t instr);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleFlagValuesAtInstruction(BNMediumLevelILFunction* func,
- uint32_t flag, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleFlagValuesAfterInstruction(BNMediumLevelILFunction* func,
- uint32_t flag, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILStackContentsAtInstruction(BNMediumLevelILFunction* func,
- int64_t offset, size_t len, size_t instr);
- BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILStackContentsAfterInstruction(BNMediumLevelILFunction* func,
- int64_t offset, size_t len, size_t instr);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleStackContentsAtInstruction(BNMediumLevelILFunction* func,
- int64_t offset, size_t len, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
- BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleStackContentsAfterInstruction(BNMediumLevelILFunction* func,
- int64_t offset, size_t len, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILRegisterValueAtInstruction(
+ BNMediumLevelILFunction* func, uint32_t reg, size_t instr);
+ BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILRegisterValueAfterInstruction(
+ BNMediumLevelILFunction* func, uint32_t reg, size_t instr);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
+ BNMediumLevelILFunction* func, uint32_t reg, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
+ BNMediumLevelILFunction* func, uint32_t reg, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILFlagValueAtInstruction(
+ BNMediumLevelILFunction* func, uint32_t flag, size_t instr);
+ BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILFlagValueAfterInstruction(
+ BNMediumLevelILFunction* func, uint32_t flag, size_t instr);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleFlagValuesAtInstruction(
+ BNMediumLevelILFunction* func, uint32_t flag, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
+ BNMediumLevelILFunction* func, uint32_t flag, size_t instr, BNDataFlowQueryOption* options, size_t optionCount);
+ BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILStackContentsAtInstruction(
+ BNMediumLevelILFunction* func, int64_t offset, size_t len, size_t instr);
+ BINARYNINJACOREAPI BNRegisterValue BNGetMediumLevelILStackContentsAfterInstruction(
+ BNMediumLevelILFunction* func, int64_t offset, size_t len, size_t instr);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleStackContentsAtInstruction(
+ BNMediumLevelILFunction* func, int64_t offset, size_t len, size_t instr, BNDataFlowQueryOption* options,
+ size_t optionCount);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetMediumLevelILPossibleStackContentsAfterInstruction(
+ BNMediumLevelILFunction* func, int64_t offset, size_t len, size_t instr, BNDataFlowQueryOption* options,
+ size_t optionCount);
- BINARYNINJACOREAPI BNILBranchDependence BNGetMediumLevelILBranchDependence(BNMediumLevelILFunction* func,
- size_t curInstr, size_t branchInstr);
+ BINARYNINJACOREAPI BNILBranchDependence BNGetMediumLevelILBranchDependence(
+ BNMediumLevelILFunction* func, size_t curInstr, size_t branchInstr);
BINARYNINJACOREAPI BNILBranchInstructionAndDependence* BNGetAllMediumLevelILBranchDependence(
- BNMediumLevelILFunction* func, size_t instr, size_t* count);
+ BNMediumLevelILFunction* func, size_t instr, size_t* count);
BINARYNINJACOREAPI void BNFreeILBranchDependenceList(BNILBranchInstructionAndDependence* branches);
BINARYNINJACOREAPI BNLowLevelILFunction* BNGetLowLevelILForMediumLevelIL(BNMediumLevelILFunction* func);
@@ -4623,20 +4748,25 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNFunction* BNGetHighLevelILOwnerFunction(BNHighLevelILFunction* func);
BINARYNINJACOREAPI uint64_t BNHighLevelILGetCurrentAddress(BNHighLevelILFunction* func);
- BINARYNINJACOREAPI void BNHighLevelILSetCurrentAddress(BNHighLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
- BINARYNINJACOREAPI size_t BNHighLevelILAddExpr(BNHighLevelILFunction* func, BNHighLevelILOperation operation, size_t size,
- uint64_t a, uint64_t b, uint64_t c, uint64_t d, uint64_t e);
- BINARYNINJACOREAPI size_t BNHighLevelILAddExprWithLocation(BNHighLevelILFunction* func, BNHighLevelILOperation operation,
- uint64_t addr, uint32_t sourceOperand, size_t size, uint64_t a, uint64_t b, uint64_t c, uint64_t d, uint64_t e);
+ BINARYNINJACOREAPI void BNHighLevelILSetCurrentAddress(
+ BNHighLevelILFunction* func, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI size_t BNHighLevelILAddExpr(BNHighLevelILFunction* func, BNHighLevelILOperation operation,
+ size_t size, uint64_t a, uint64_t b, uint64_t c, uint64_t d, uint64_t e);
+ BINARYNINJACOREAPI size_t BNHighLevelILAddExprWithLocation(BNHighLevelILFunction* func,
+ BNHighLevelILOperation operation, uint64_t addr, uint32_t sourceOperand, size_t size, uint64_t a, uint64_t b,
+ uint64_t c, uint64_t d, uint64_t e);
BINARYNINJACOREAPI size_t BNGetHighLevelILRootExpr(BNHighLevelILFunction* func);
BINARYNINJACOREAPI void BNSetHighLevelILRootExpr(BNHighLevelILFunction* func, size_t expr);
BINARYNINJACOREAPI void BNFinalizeHighLevelILFunction(BNHighLevelILFunction* func);
- BINARYNINJACOREAPI size_t BNHighLevelILAddOperandList(BNHighLevelILFunction* func, uint64_t* operands, size_t count);
- BINARYNINJACOREAPI uint64_t* BNHighLevelILGetOperandList(BNHighLevelILFunction* func, size_t expr, size_t operand, size_t* count);
+ BINARYNINJACOREAPI size_t BNHighLevelILAddOperandList(
+ BNHighLevelILFunction* func, uint64_t* operands, size_t count);
+ BINARYNINJACOREAPI uint64_t* BNHighLevelILGetOperandList(
+ BNHighLevelILFunction* func, size_t expr, size_t operand, size_t* count);
BINARYNINJACOREAPI void BNHighLevelILFreeOperandList(uint64_t* operands);
- BINARYNINJACOREAPI BNHighLevelILInstruction BNGetHighLevelILByIndex(BNHighLevelILFunction* func, size_t i, bool asFullAst);
+ BINARYNINJACOREAPI BNHighLevelILInstruction BNGetHighLevelILByIndex(
+ BNHighLevelILFunction* func, size_t i, bool asFullAst);
BINARYNINJACOREAPI size_t BNGetHighLevelILIndexForInstruction(BNHighLevelILFunction* func, size_t i);
BINARYNINJACOREAPI size_t BNGetHighLevelILInstructionForExpr(BNHighLevelILFunction* func, size_t expr);
BINARYNINJACOREAPI size_t BNGetHighLevelILInstructionCount(BNHighLevelILFunction* func);
@@ -4644,13 +4774,15 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetMediumLevelILForHighLevelILFunction(BNHighLevelILFunction* func);
BINARYNINJACOREAPI size_t BNGetMediumLevelILExprIndexFromHighLevelIL(BNHighLevelILFunction* func, size_t expr);
- BINARYNINJACOREAPI size_t* BNGetMediumLevelILExprIndexesFromHighLevelIL(BNHighLevelILFunction* func, size_t expr, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetMediumLevelILExprIndexesFromHighLevelIL(
+ BNHighLevelILFunction* func, size_t expr, size_t* count);
- BINARYNINJACOREAPI void BNUpdateHighLevelILOperand(BNHighLevelILFunction* func, size_t instr, size_t operandIndex, uint64_t value);
+ BINARYNINJACOREAPI void BNUpdateHighLevelILOperand(
+ BNHighLevelILFunction* func, size_t instr, size_t operandIndex, uint64_t value);
BINARYNINJACOREAPI void BNReplaceHighLevelILExpr(BNHighLevelILFunction* func, size_t expr, size_t newExpr);
- BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetHighLevelILExprText(BNHighLevelILFunction* func, size_t expr,
- bool asFullAst, size_t* count, BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetHighLevelILExprText(
+ BNHighLevelILFunction* func, size_t expr, bool asFullAst, size_t* count, BNDisassemblySettings* settings);
BINARYNINJACOREAPI BNTypeWithConfidence BNGetHighLevelILExprType(BNHighLevelILFunction* func, size_t expr);
@@ -4664,40 +4796,41 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI size_t BNGetHighLevelILSSAExprIndex(BNHighLevelILFunction* func, size_t expr);
BINARYNINJACOREAPI size_t BNGetHighLevelILNonSSAExprIndex(BNHighLevelILFunction* func, size_t expr);
- BINARYNINJACOREAPI size_t BNGetHighLevelILSSAVarDefinition(BNHighLevelILFunction* func,
- const BNVariable* var, size_t version);
+ BINARYNINJACOREAPI size_t BNGetHighLevelILSSAVarDefinition(
+ BNHighLevelILFunction* func, const BNVariable* var, size_t version);
BINARYNINJACOREAPI size_t BNGetHighLevelILSSAMemoryDefinition(BNHighLevelILFunction* func, size_t version);
- BINARYNINJACOREAPI size_t* BNGetHighLevelILSSAVarUses(BNHighLevelILFunction* func, const BNVariable* var,
- size_t version, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetHighLevelILSSAMemoryUses(BNHighLevelILFunction* func,
- size_t version, size_t* count);
- BINARYNINJACOREAPI bool BNIsHighLevelILSSAVarLive(BNHighLevelILFunction* func,
- const BNVariable* var, size_t version);
- BINARYNINJACOREAPI bool BNIsHighLevelILSSAVarLiveAt(BNHighLevelILFunction* func,
- const BNVariable* var, const size_t version, const size_t instr);
- BINARYNINJACOREAPI bool BNIsHighLevelILVarLiveAt(BNHighLevelILFunction* func,
- const BNVariable* var, const size_t instr);
+ BINARYNINJACOREAPI size_t* BNGetHighLevelILSSAVarUses(
+ BNHighLevelILFunction* func, const BNVariable* var, size_t version, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetHighLevelILSSAMemoryUses(
+ BNHighLevelILFunction* func, size_t version, size_t* count);
+ BINARYNINJACOREAPI bool BNIsHighLevelILSSAVarLive(
+ BNHighLevelILFunction* func, const BNVariable* var, size_t version);
+ BINARYNINJACOREAPI bool BNIsHighLevelILSSAVarLiveAt(
+ BNHighLevelILFunction* func, const BNVariable* var, const size_t version, const size_t instr);
+ BINARYNINJACOREAPI bool BNIsHighLevelILVarLiveAt(
+ BNHighLevelILFunction* func, const BNVariable* var, const size_t instr);
BINARYNINJACOREAPI BNVariable* BNGetHighLevelILVariables(BNHighLevelILFunction* func, size_t* count);
BINARYNINJACOREAPI BNVariable* BNGetHighLevelILAliasedVariables(BNHighLevelILFunction* func, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetHighLevelILVariableSSAVersions(BNHighLevelILFunction* func, const BNVariable* var, size_t * count);
+ BINARYNINJACOREAPI size_t* BNGetHighLevelILVariableSSAVersions(
+ BNHighLevelILFunction* func, const BNVariable* var, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetHighLevelILVariableDefinitions(BNHighLevelILFunction* func,
- const BNVariable* var, size_t* count);
- BINARYNINJACOREAPI size_t* BNGetHighLevelILVariableUses(BNHighLevelILFunction* func,
- const BNVariable* var, size_t* count);
- BINARYNINJACOREAPI size_t BNGetHighLevelILSSAVarVersionAtILInstruction(BNHighLevelILFunction* func,
- const BNVariable* var, size_t instr);
- BINARYNINJACOREAPI size_t BNGetHighLevelILSSAMemoryVersionAtILInstruction(BNHighLevelILFunction* func,
- size_t instr);
+ BINARYNINJACOREAPI size_t* BNGetHighLevelILVariableDefinitions(
+ BNHighLevelILFunction* func, const BNVariable* var, size_t* count);
+ BINARYNINJACOREAPI size_t* BNGetHighLevelILVariableUses(
+ BNHighLevelILFunction* func, const BNVariable* var, size_t* count);
+ BINARYNINJACOREAPI size_t BNGetHighLevelILSSAVarVersionAtILInstruction(
+ BNHighLevelILFunction* func, const BNVariable* var, size_t instr);
+ BINARYNINJACOREAPI size_t BNGetHighLevelILSSAMemoryVersionAtILInstruction(
+ BNHighLevelILFunction* func, size_t instr);
BINARYNINJACOREAPI size_t BNGetHighLevelILExprIndexForLabel(BNHighLevelILFunction* func, uint64_t label);
BINARYNINJACOREAPI size_t* BNGetHighLevelILUsesForLabel(BNHighLevelILFunction* func, uint64_t label, size_t* count);
- BINARYNINJACOREAPI bool BNHighLevelILExprLessThan(BNHighLevelILFunction* leftFunc, size_t leftExpr,
- BNHighLevelILFunction* rightFunc, size_t rightExpr);
- BINARYNINJACOREAPI bool BNHighLevelILExprEqual(BNHighLevelILFunction* leftFunc, size_t leftExpr,
- BNHighLevelILFunction* rightFunc, size_t rightExpr);
+ BINARYNINJACOREAPI bool BNHighLevelILExprLessThan(
+ BNHighLevelILFunction* leftFunc, size_t leftExpr, BNHighLevelILFunction* rightFunc, size_t rightExpr);
+ BINARYNINJACOREAPI bool BNHighLevelILExprEqual(
+ BNHighLevelILFunction* leftFunc, size_t leftExpr, BNHighLevelILFunction* rightFunc, size_t rightExpr);
// Type Libraries
BINARYNINJACOREAPI BNTypeLibrary* BNNewTypeLibrary(BNArchitecture* arch, const char* name);
@@ -4720,7 +4853,7 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetTypeLibraryName(BNTypeLibrary* lib);
BINARYNINJACOREAPI void BNAddTypeLibraryAlternateName(BNTypeLibrary* lib, const char* name);
- BINARYNINJACOREAPI char** BNGetTypeLibraryAlternateNames(BNTypeLibrary* lib, size_t* count); // BNFreeStringList
+ BINARYNINJACOREAPI char** BNGetTypeLibraryAlternateNames(BNTypeLibrary* lib, size_t* count); // BNFreeStringList
BINARYNINJACOREAPI void BNSetTypeLibraryDependencyName(BNTypeLibrary* lib, const char* name);
BINARYNINJACOREAPI char* BNGetTypeLibraryDependencyName(BNTypeLibrary* lib);
@@ -4730,7 +4863,7 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNClearTypeLibraryPlatforms(BNTypeLibrary* lib);
BINARYNINJACOREAPI void BNAddTypeLibraryPlatform(BNTypeLibrary* lib, BNPlatform* platform);
- BINARYNINJACOREAPI char** BNGetTypeLibraryPlatforms(BNTypeLibrary* lib, size_t* count); // BNFreeStringList
+ BINARYNINJACOREAPI char** BNGetTypeLibraryPlatforms(BNTypeLibrary* lib, size_t* count); // BNFreeStringList
BINARYNINJACOREAPI void BNTypeLibraryStoreMetadata(BNTypeLibrary* lib, const char* key, BNMetadata* value);
BINARYNINJACOREAPI BNMetadata* BNTypeLibraryQueryMetadata(BNTypeLibrary* lib, const char* key);
@@ -4751,15 +4884,21 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNTypeLibrary* BNGetBinaryViewTypeLibrary(BNBinaryView* view, const char* name);
BINARYNINJACOREAPI BNTypeLibrary** BNGetBinaryViewTypeLibraries(BNBinaryView* view, size_t* count);
- BINARYNINJACOREAPI BNType* BNBinaryViewImportTypeLibraryType(BNBinaryView* view, BNTypeLibrary* lib, BNQualifiedName* name);
- BINARYNINJACOREAPI BNType* BNBinaryViewImportTypeLibraryObject(BNBinaryView* view, BNTypeLibrary* lib, BNQualifiedName* name);
+ BINARYNINJACOREAPI BNType* BNBinaryViewImportTypeLibraryType(
+ BNBinaryView* view, BNTypeLibrary* lib, BNQualifiedName* name);
+ BINARYNINJACOREAPI BNType* BNBinaryViewImportTypeLibraryObject(
+ BNBinaryView* view, BNTypeLibrary* lib, BNQualifiedName* name);
- BINARYNINJACOREAPI void BNBinaryViewExportTypeToTypeLibrary(BNBinaryView* view, BNTypeLibrary* lib, BNQualifiedName* name, BNType* type);
- BINARYNINJACOREAPI void BNBinaryViewExportObjectToTypeLibrary(BNBinaryView* view, BNTypeLibrary* lib, BNQualifiedName* name, BNType* type);
+ BINARYNINJACOREAPI void BNBinaryViewExportTypeToTypeLibrary(
+ BNBinaryView* view, BNTypeLibrary* lib, BNQualifiedName* name, BNType* type);
+ BINARYNINJACOREAPI void BNBinaryViewExportObjectToTypeLibrary(
+ BNBinaryView* view, BNTypeLibrary* lib, BNQualifiedName* name, BNType* type);
// Language Representation
- BINARYNINJACOREAPI BNLanguageRepresentationFunction* BNCreateLanguageRepresentationFunction(BNArchitecture* arch, BNFunction* func);
- BINARYNINJACOREAPI BNLanguageRepresentationFunction* BNNewLanguageRepresentationFunctionReference(BNLanguageRepresentationFunction* func);
+ BINARYNINJACOREAPI BNLanguageRepresentationFunction* BNCreateLanguageRepresentationFunction(
+ BNArchitecture* arch, BNFunction* func);
+ BINARYNINJACOREAPI BNLanguageRepresentationFunction* BNNewLanguageRepresentationFunctionReference(
+ BNLanguageRepresentationFunction* func);
BINARYNINJACOREAPI void BNFreeLanguageRepresentationFunction(BNLanguageRepresentationFunction* func);
BINARYNINJACOREAPI BNFunction* BNGetLanguageRepresentationOwnerFunction(BNLanguageRepresentationFunction* func);
@@ -4772,16 +4911,18 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNType* BNCreateFloatType(size_t width, const char* altName);
BINARYNINJACOREAPI BNType* BNCreateWideCharType(size_t width, const char* altName);
BINARYNINJACOREAPI BNType* BNCreateStructureType(BNStructure* s);
- BINARYNINJACOREAPI BNType* BNCreateEnumerationType(BNArchitecture* arch, BNEnumeration* e, size_t width, BNBoolWithConfidence* isSigned);
- BINARYNINJACOREAPI BNType* BNCreateEnumerationTypeOfWidth(BNEnumeration* e, size_t width, BNBoolWithConfidence* isSigned);
+ BINARYNINJACOREAPI BNType* BNCreateEnumerationType(
+ BNArchitecture* arch, BNEnumeration* e, size_t width, BNBoolWithConfidence* isSigned);
+ BINARYNINJACOREAPI BNType* BNCreateEnumerationTypeOfWidth(
+ BNEnumeration* e, size_t width, BNBoolWithConfidence* isSigned);
BINARYNINJACOREAPI BNType* BNCreatePointerType(BNArchitecture* arch, const BNTypeWithConfidence* const type,
- BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl, BNReferenceType refType);
+ BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl, BNReferenceType refType);
BINARYNINJACOREAPI BNType* BNCreatePointerTypeOfWidth(size_t width, const BNTypeWithConfidence* const type,
- BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl, BNReferenceType refType);
+ BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl, BNReferenceType refType);
BINARYNINJACOREAPI BNType* BNCreateArrayType(const BNTypeWithConfidence* const type, uint64_t elem);
BINARYNINJACOREAPI BNType* BNCreateFunctionType(BNTypeWithConfidence* returnValue,
- BNCallingConventionWithConfidence* callingConvention, BNFunctionParameter* params,
- size_t paramCount, BNBoolWithConfidence* varArg, BNOffsetWithConfidence* stackAdjust);
+ BNCallingConventionWithConfidence* callingConvention, BNFunctionParameter* params, size_t paramCount,
+ BNBoolWithConfidence* varArg, BNOffsetWithConfidence* stackAdjust);
BINARYNINJACOREAPI BNType* BNNewTypeReference(BNType* type);
BINARYNINJACOREAPI BNType* BNDuplicateType(BNType* type);
BINARYNINJACOREAPI char* BNGetTypeAndName(BNType* type, BNQualifiedName* name);
@@ -4790,21 +4931,26 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNTypeBuilder* BNCreateTypeBuilderFromType(BNType* type);
BINARYNINJACOREAPI BNTypeBuilder* BNCreateVoidTypeBuilder(void);
BINARYNINJACOREAPI BNTypeBuilder* BNCreateBoolTypeBuilder(void);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreateIntegerTypeBuilder(size_t width, BNBoolWithConfidence* sign, const char* altName);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreateIntegerTypeBuilder(
+ size_t width, BNBoolWithConfidence* sign, const char* altName);
BINARYNINJACOREAPI BNTypeBuilder* BNCreateFloatTypeBuilder(size_t width, const char* altName);
BINARYNINJACOREAPI BNTypeBuilder* BNCreateWideCharTypeBuilder(size_t width, const char* altName);
BINARYNINJACOREAPI BNTypeBuilder* BNCreateStructureTypeBuilder(BNStructure* s);
BINARYNINJACOREAPI BNTypeBuilder* BNCreateStructureTypeBuilderWithBuilder(BNStructureBuilder* s);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreateEnumerationTypeBuilder(BNArchitecture* arch, BNEnumeration* e, size_t width, BNBoolWithConfidence* isSigned);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreateEnumerationTypeBuilderWithBuilder(BNArchitecture* arch, BNEnumerationBuilder* e, size_t width, BNBoolWithConfidence* isSigned);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreatePointerTypeBuilder(BNArchitecture* arch, const BNTypeWithConfidence* const type,
- BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl, BNReferenceType refType);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreatePointerTypeBuilderOfWidth(size_t width, const BNTypeWithConfidence* const type,
- BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl, BNReferenceType refType);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreateEnumerationTypeBuilder(
+ BNArchitecture* arch, BNEnumeration* e, size_t width, BNBoolWithConfidence* isSigned);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreateEnumerationTypeBuilderWithBuilder(
+ BNArchitecture* arch, BNEnumerationBuilder* e, size_t width, BNBoolWithConfidence* isSigned);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreatePointerTypeBuilder(BNArchitecture* arch,
+ const BNTypeWithConfidence* const type, BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl,
+ BNReferenceType refType);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreatePointerTypeBuilderOfWidth(size_t width,
+ const BNTypeWithConfidence* const type, BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl,
+ BNReferenceType refType);
BINARYNINJACOREAPI BNTypeBuilder* BNCreateArrayTypeBuilder(const BNTypeWithConfidence* const type, uint64_t elem);
BINARYNINJACOREAPI BNTypeBuilder* BNCreateFunctionTypeBuilder(BNTypeWithConfidence* returnValue,
- BNCallingConventionWithConfidence* callingConvention, BNFunctionParameter* params,
- size_t paramCount, BNBoolWithConfidence* varArg, BNOffsetWithConfidence* stackAdjust);
+ BNCallingConventionWithConfidence* callingConvention, BNFunctionParameter* params, size_t paramCount,
+ BNBoolWithConfidence* varArg, BNOffsetWithConfidence* stackAdjust);
BINARYNINJACOREAPI BNType* BNFinalizeTypeBuilder(BNTypeBuilder* type);
BINARYNINJACOREAPI BNTypeBuilder* BNDuplicateTypeBuilder(BNTypeBuilder* type);
BINARYNINJACOREAPI char* BNGetTypeBuilderTypeAndName(BNTypeBuilder* type, BNQualifiedName* name);
@@ -4842,19 +4988,20 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetTypeString(BNType* type, BNPlatform* platform);
BINARYNINJACOREAPI char* BNGetTypeStringBeforeName(BNType* type, BNPlatform* platform);
BINARYNINJACOREAPI char* BNGetTypeStringAfterName(BNType* type, BNPlatform* platform);
- BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeTokens(BNType* type, BNPlatform* platform,
- uint8_t baseConfidence, size_t* count);
- BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeTokensBeforeName(BNType* type, BNPlatform* platform,
- uint8_t baseConfidence, size_t* count);
- BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeTokensAfterName(BNType* type, BNPlatform* platform,
- uint8_t baseConfidence, size_t* count);
+ BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeTokens(
+ BNType* type, BNPlatform* platform, uint8_t baseConfidence, size_t* count);
+ BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeTokensBeforeName(
+ BNType* type, BNPlatform* platform, uint8_t baseConfidence, size_t* count);
+ BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeTokensAfterName(
+ BNType* type, BNPlatform* platform, uint8_t baseConfidence, size_t* count);
BINARYNINJACOREAPI BNType* BNTypeWithReplacedStructure(BNType* type, BNStructure* from, BNStructure* to);
BINARYNINJACOREAPI BNType* BNTypeWithReplacedEnumeration(BNType* type, BNEnumeration* from, BNEnumeration* to);
- BINARYNINJACOREAPI BNType* BNTypeWithReplacedNamedTypeReference(BNType* type, BNNamedTypeReference* from, BNNamedTypeReference* to);
+ BINARYNINJACOREAPI BNType* BNTypeWithReplacedNamedTypeReference(
+ BNType* type, BNNamedTypeReference* from, BNNamedTypeReference* to);
- BINARYNINJACOREAPI bool BNAddTypeMemberTokens(BNType* type, BNBinaryView* data, BNInstructionTextToken** tokens, size_t* tokenCount,
- int64_t offset, char*** nameList, size_t* nameCount, size_t size, bool indirect);
+ BINARYNINJACOREAPI bool BNAddTypeMemberTokens(BNType* type, BNBinaryView* data, BNInstructionTextToken** tokens,
+ size_t* tokenCount, int64_t offset, char*** nameList, size_t* nameCount, size_t size, bool indirect);
BINARYNINJACOREAPI BNQualifiedName BNTypeBuilderGetTypeName(BNTypeBuilder* nt);
BINARYNINJACOREAPI void BNTypeBuilderSetTypeName(BNTypeBuilder* type, BNQualifiedName* name);
@@ -4878,7 +5025,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI uint64_t BNGetTypeBuilderElementCount(BNTypeBuilder* type);
BINARYNINJACOREAPI uint64_t BNGetTypeBuilderOffset(BNTypeBuilder* type);
BINARYNINJACOREAPI void BNSetFunctionTypeBuilderCanReturn(BNTypeBuilder* type, BNBoolWithConfidence* canReturn);
- BINARYNINJACOREAPI void BNSetFunctionTypeBuilderParameters(BNTypeBuilder* type, BNFunctionParameter* params, size_t paramCount);
+ BINARYNINJACOREAPI void BNSetFunctionTypeBuilderParameters(
+ BNTypeBuilder* type, BNFunctionParameter* params, size_t paramCount);
BINARYNINJACOREAPI void BNTypeBuilderSetConst(BNTypeBuilder* type, BNBoolWithConfidence* cnst);
BINARYNINJACOREAPI void BNTypeBuilderSetVolatile(BNTypeBuilder* type, BNBoolWithConfidence* vltl);
BINARYNINJACOREAPI void BNTypeBuilderSetSigned(BNTypeBuilder* type, BNBoolWithConfidence* sign);
@@ -4893,21 +5041,28 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetTypeBuilderString(BNTypeBuilder* type, BNPlatform* platform);
BINARYNINJACOREAPI char* BNGetTypeBuilderStringBeforeName(BNTypeBuilder* type, BNPlatform* platform);
BINARYNINJACOREAPI char* BNGetTypeBuilderStringAfterName(BNTypeBuilder* type, BNPlatform* platform);
- BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeBuilderTokens(BNTypeBuilder* type, BNPlatform* platform,
- uint8_t baseConfidence, size_t* count);
- BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeBuilderTokensBeforeName(BNTypeBuilder* type, BNPlatform* platform,
- uint8_t baseConfidence, size_t* count);
- BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeBuilderTokensAfterName(BNTypeBuilder* type, BNPlatform* platform,
- uint8_t baseConfidence, size_t* count);
+ BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeBuilderTokens(
+ BNTypeBuilder* type, BNPlatform* platform, uint8_t baseConfidence, size_t* count);
+ BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeBuilderTokensBeforeName(
+ BNTypeBuilder* type, BNPlatform* platform, uint8_t baseConfidence, size_t* count);
+ BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeBuilderTokensAfterName(
+ BNTypeBuilder* type, BNPlatform* platform, uint8_t baseConfidence, size_t* count);
- BINARYNINJACOREAPI BNType* BNCreateNamedTypeReference(BNNamedTypeReference* nt, size_t width, size_t align, BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl);
- BINARYNINJACOREAPI BNType* BNCreateNamedTypeReferenceFromTypeAndId(const char* id, BNQualifiedName* name, BNType* type);
+ BINARYNINJACOREAPI BNType* BNCreateNamedTypeReference(
+ BNNamedTypeReference* nt, size_t width, size_t align, BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl);
+ BINARYNINJACOREAPI BNType* BNCreateNamedTypeReferenceFromTypeAndId(
+ const char* id, BNQualifiedName* name, BNType* type);
BINARYNINJACOREAPI BNType* BNCreateNamedTypeReferenceFromType(BNBinaryView* view, BNQualifiedName* name);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreateNamedTypeReferenceBuilder(BNNamedTypeReference* nt, size_t width, size_t align, BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreateNamedTypeReferenceBuilderWithBuilder(BNNamedTypeReferenceBuilder* nt, size_t width, size_t align, BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreateNamedTypeReferenceBuilderFromTypeAndId(const char* id, BNQualifiedName* name, BNType* type);
- BINARYNINJACOREAPI BNTypeBuilder* BNCreateNamedTypeReferenceBuilderFromType(BNBinaryView* view, BNQualifiedName* name);
- BINARYNINJACOREAPI BNNamedTypeReference* BNCreateNamedType(BNNamedTypeReferenceClass cls, const char* id, BNQualifiedName* name);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreateNamedTypeReferenceBuilder(
+ BNNamedTypeReference* nt, size_t width, size_t align, BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreateNamedTypeReferenceBuilderWithBuilder(BNNamedTypeReferenceBuilder* nt,
+ size_t width, size_t align, BNBoolWithConfidence* cnst, BNBoolWithConfidence* vltl);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreateNamedTypeReferenceBuilderFromTypeAndId(
+ const char* id, BNQualifiedName* name, BNType* type);
+ BINARYNINJACOREAPI BNTypeBuilder* BNCreateNamedTypeReferenceBuilderFromType(
+ BNBinaryView* view, BNQualifiedName* name);
+ BINARYNINJACOREAPI BNNamedTypeReference* BNCreateNamedType(
+ BNNamedTypeReferenceClass cls, const char* id, BNQualifiedName* name);
BINARYNINJACOREAPI BNNamedTypeReferenceClass BNGetTypeReferenceClass(BNNamedTypeReference* nt);
BINARYNINJACOREAPI char* BNGetTypeReferenceId(BNNamedTypeReference* nt);
BINARYNINJACOREAPI BNQualifiedName BNGetTypeReferenceName(BNNamedTypeReference* nt);
@@ -4915,9 +5070,11 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNFreeNamedTypeReference(BNNamedTypeReference* nt);
BINARYNINJACOREAPI BNNamedTypeReference* BNNewNamedTypeReference(BNNamedTypeReference* nt);
- BINARYNINJACOREAPI BNNamedTypeReferenceBuilder* BNCreateNamedTypeBuilder(BNNamedTypeReferenceClass cls, const char* id, BNQualifiedName* name);
+ BINARYNINJACOREAPI BNNamedTypeReferenceBuilder* BNCreateNamedTypeBuilder(
+ BNNamedTypeReferenceClass cls, const char* id, BNQualifiedName* name);
BINARYNINJACOREAPI void BNFreeNamedTypeReferenceBuilder(BNNamedTypeReferenceBuilder* s);
- BINARYNINJACOREAPI void BNSetNamedTypeReferenceBuilderTypeClass(BNNamedTypeReferenceBuilder* s, BNNamedTypeReferenceClass type);
+ BINARYNINJACOREAPI void BNSetNamedTypeReferenceBuilderTypeClass(
+ BNNamedTypeReferenceBuilder* s, BNNamedTypeReferenceClass type);
BINARYNINJACOREAPI void BNSetNamedTypeReferenceBuilderTypeId(BNNamedTypeReferenceBuilder* s, const char* id);
BINARYNINJACOREAPI void BNSetNamedTypeReferenceBuilderName(BNNamedTypeReferenceBuilder* s, BNQualifiedName* name);
BINARYNINJACOREAPI BNNamedTypeReference* BNFinalizeNamedTypeReferenceBuilder(BNNamedTypeReferenceBuilder* s);
@@ -4945,13 +5102,16 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNIsStructureUnion(BNStructure* s);
BINARYNINJACOREAPI BNStructureVariant BNGetStructureType(BNStructure* s);
- BINARYNINJACOREAPI BNStructure* BNStructureWithReplacedStructure(BNStructure* s, BNStructure* from, BNStructure* to);
- BINARYNINJACOREAPI BNStructure* BNStructureWithReplacedEnumeration(BNStructure* s, BNEnumeration* from, BNEnumeration* to);
- BINARYNINJACOREAPI BNStructure* BNStructureWithReplacedNamedTypeReference(BNStructure* s,
- BNNamedTypeReference* from, BNNamedTypeReference* to);
+ BINARYNINJACOREAPI BNStructure* BNStructureWithReplacedStructure(
+ BNStructure* s, BNStructure* from, BNStructure* to);
+ BINARYNINJACOREAPI BNStructure* BNStructureWithReplacedEnumeration(
+ BNStructure* s, BNEnumeration* from, BNEnumeration* to);
+ BINARYNINJACOREAPI BNStructure* BNStructureWithReplacedNamedTypeReference(
+ BNStructure* s, BNNamedTypeReference* from, BNNamedTypeReference* to);
BINARYNINJACOREAPI BNStructureMember* BNGetStructureBuilderMemberByName(BNStructureBuilder* s, const char* name);
- BINARYNINJACOREAPI BNStructureMember* BNGetStructureBuilderMemberAtOffset(BNStructureBuilder* s, int64_t offset, size_t* idx);
+ BINARYNINJACOREAPI BNStructureMember* BNGetStructureBuilderMemberAtOffset(
+ BNStructureBuilder* s, int64_t offset, size_t* idx);
BINARYNINJACOREAPI BNStructureMember* BNGetStructureBuilderMembers(BNStructureBuilder* s, size_t* count);
BINARYNINJACOREAPI uint64_t BNGetStructureBuilderWidth(BNStructureBuilder* s);
BINARYNINJACOREAPI void BNSetStructureBuilderWidth(BNStructureBuilder* s, uint64_t width);
@@ -4964,13 +5124,13 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNStructureVariant BNGetStructureBuilderType(BNStructureBuilder* s);
BINARYNINJACOREAPI void BNAddStructureBuilderMember(BNStructureBuilder* s, const BNTypeWithConfidence* const type,
- const char* name, BNMemberAccess access, BNMemberScope scope);
+ const char* name, BNMemberAccess access, BNMemberScope scope);
BINARYNINJACOREAPI void BNAddStructureBuilderMemberAtOffset(BNStructureBuilder* s,
- const BNTypeWithConfidence* const type, const char* name, uint64_t offset,
- bool overwriteExisting, BNMemberAccess access, BNMemberScope scope);
+ const BNTypeWithConfidence* const type, const char* name, uint64_t offset, bool overwriteExisting,
+ BNMemberAccess access, BNMemberScope scope);
BINARYNINJACOREAPI void BNRemoveStructureBuilderMember(BNStructureBuilder* s, size_t idx);
BINARYNINJACOREAPI void BNReplaceStructureBuilderMember(BNStructureBuilder* s, size_t idx,
- const BNTypeWithConfidence* const type, const char* name, bool overwriteExisting);
+ const BNTypeWithConfidence* const type, const char* name, bool overwriteExisting);
BINARYNINJACOREAPI BNEnumerationBuilder* BNCreateEnumerationBuilder(void);
BINARYNINJACOREAPI BNEnumerationBuilder* BNCreateEnumerationBuilderFromEnumeration(BNEnumeration* e);
@@ -4986,24 +5146,26 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNEnumerationMember* BNGetEnumerationBuilderMembers(BNEnumerationBuilder* e, size_t* count);
BINARYNINJACOREAPI void BNAddEnumerationBuilderMember(BNEnumerationBuilder* e, const char* name);
- BINARYNINJACOREAPI void BNAddEnumerationBuilderMemberWithValue(BNEnumerationBuilder* e, const char* name, uint64_t value);
+ BINARYNINJACOREAPI void BNAddEnumerationBuilderMemberWithValue(
+ BNEnumerationBuilder* e, const char* name, uint64_t value);
BINARYNINJACOREAPI void BNRemoveEnumerationBuilderMember(BNEnumerationBuilder* e, size_t idx);
- BINARYNINJACOREAPI void BNReplaceEnumerationBuilderMember(BNEnumerationBuilder* e, size_t idx, const char* name, uint64_t value);
+ BINARYNINJACOREAPI void BNReplaceEnumerationBuilderMember(
+ BNEnumerationBuilder* e, size_t idx, const char* name, uint64_t value);
- BINARYNINJACOREAPI BNStructure* BNCreateStructureFromOffsetAccess(BNBinaryView* view,
- BNQualifiedName* name, bool* newMember);
+ BINARYNINJACOREAPI BNStructure* BNCreateStructureFromOffsetAccess(
+ BNBinaryView* view, BNQualifiedName* name, bool* newMember);
BINARYNINJACOREAPI BNTypeWithConfidence BNCreateStructureMemberFromAccess(
- BNBinaryView* view, BNQualifiedName* name, uint64_t offset);
+ BNBinaryView* view, BNQualifiedName* name, uint64_t offset);
// Source code processing
BINARYNINJACOREAPI bool BNPreprocessSource(const char* source, const char* fileName, char** output, char** errors,
- const char** includeDirs, size_t includeDirCount);
+ const char** includeDirs, size_t includeDirCount);
BINARYNINJACOREAPI bool BNParseTypesFromSource(BNPlatform* platform, const char* source, const char* fileName,
- BNTypeParserResult* result, char** errors, const char** includeDirs, size_t includeDirCount,
- const char* autoTypeSource);
+ BNTypeParserResult* result, char** errors, const char** includeDirs, size_t includeDirCount,
+ const char* autoTypeSource);
BINARYNINJACOREAPI bool BNParseTypesFromSourceFile(BNPlatform* platform, const char* fileName,
- BNTypeParserResult* result, char** errors, const char** includeDirs, size_t includeDirCount,
- const char* autoTypeSource);
+ BNTypeParserResult* result, char** errors, const char** includeDirs, size_t includeDirCount,
+ const char* autoTypeSource);
BINARYNINJACOREAPI void BNFreeTypeParserResult(BNTypeParserResult* result);
// Updates
@@ -5012,14 +5174,13 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNUpdateVersion* BNGetUpdateChannelVersions(const char* channel, size_t* count, char** errors);
BINARYNINJACOREAPI void BNFreeUpdateChannelVersionList(BNUpdateVersion* list, size_t count);
- BINARYNINJACOREAPI bool BNAreUpdatesAvailable(const char* channel, uint64_t* expireTime, uint64_t* serverTime, char** errors);
+ BINARYNINJACOREAPI bool BNAreUpdatesAvailable(
+ const char* channel, uint64_t* expireTime, uint64_t* serverTime, char** errors);
BINARYNINJACOREAPI BNUpdateResult BNUpdateToVersion(const char* channel, const char* version, char** errors,
- bool (*progress)(void* ctxt, uint64_t progress, uint64_t total),
- void* context);
+ bool (*progress)(void* ctxt, uint64_t progress, uint64_t total), void* context);
BINARYNINJACOREAPI BNUpdateResult BNUpdateToLatestVersion(const char* channel, char** errors,
- bool (*progress)(void* ctxt, uint64_t progress, uint64_t total),
- void* context);
+ bool (*progress)(void* ctxt, uint64_t progress, uint64_t total), void* context);
BINARYNINJACOREAPI bool BNAreAutoUpdatesEnabled(void);
BINARYNINJACOREAPI void BNSetAutoUpdatesEnabled(bool enabled);
@@ -5034,68 +5195,69 @@ __attribute__ ((format (printf, 1, 2)))
// Plugin commands
BINARYNINJACOREAPI void BNRegisterPluginCommand(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view), bool (*isValid)(void* ctxt, BNBinaryView* view), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view), bool (*isValid)(void* ctxt, BNBinaryView* view), void* context);
BINARYNINJACOREAPI void BNRegisterPluginCommandForAddress(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, uint64_t addr),
- bool (*isValid)(void* ctxt, BNBinaryView* view, uint64_t addr), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view, uint64_t addr),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, uint64_t addr), void* context);
BINARYNINJACOREAPI void BNRegisterPluginCommandForRange(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, uint64_t addr, uint64_t len),
- bool (*isValid)(void* ctxt, BNBinaryView* view, uint64_t addr, uint64_t len), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view, uint64_t addr, uint64_t len),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, uint64_t addr, uint64_t len), void* context);
BINARYNINJACOREAPI void BNRegisterPluginCommandForFunction(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, BNFunction* func),
- bool (*isValid)(void* ctxt, BNBinaryView* view, BNFunction* func), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view, BNFunction* func),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, BNFunction* func), void* context);
BINARYNINJACOREAPI void BNRegisterPluginCommandForLowLevelILFunction(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func),
- bool (*isValid)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func), void* context);
BINARYNINJACOREAPI void BNRegisterPluginCommandForLowLevelILInstruction(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func, size_t instr),
- bool (*isValid)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func, size_t instr), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func, size_t instr),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, BNLowLevelILFunction* func, size_t instr), void* context);
BINARYNINJACOREAPI void BNRegisterPluginCommandForMediumLevelILFunction(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func),
- bool (*isValid)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func), void* context);
- BINARYNINJACOREAPI void BNRegisterPluginCommandForMediumLevelILInstruction(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr),
- bool (*isValid)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func), void* context);
+ BINARYNINJACOREAPI void BNRegisterPluginCommandForMediumLevelILInstruction(const char* name,
+ const char* description,
+ void (*action)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr), void* context);
BINARYNINJACOREAPI void BNRegisterPluginCommandForHighLevelILFunction(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func),
- bool (*isValid)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func), void* context);
BINARYNINJACOREAPI void BNRegisterPluginCommandForHighLevelILInstruction(const char* name, const char* description,
- void (*action)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr),
- bool (*isValid)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr), void* context);
+ void (*action)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr),
+ bool (*isValid)(void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr), void* context);
BINARYNINJACOREAPI BNPluginCommand* BNGetAllPluginCommands(size_t* count);
BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommands(BNBinaryView* view, size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForAddress(BNBinaryView* view, uint64_t addr,
- size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForRange(BNBinaryView* view, uint64_t addr,
- uint64_t len, size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForFunction(BNBinaryView* view, BNFunction* func,
- size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForLowLevelILFunction(BNBinaryView* view,
- BNLowLevelILFunction* func, size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForLowLevelILInstruction(BNBinaryView* view,
- BNLowLevelILFunction* func, size_t instr, size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForMediumLevelILFunction(BNBinaryView* view,
- BNMediumLevelILFunction* func, size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForMediumLevelILInstruction(BNBinaryView* view,
- BNMediumLevelILFunction* func, size_t instr, size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForHighLevelILFunction(BNBinaryView* view,
- BNHighLevelILFunction* func, size_t* count);
- BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForHighLevelILInstruction(BNBinaryView* view,
- BNHighLevelILFunction* func, size_t instr, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForAddress(
+ BNBinaryView* view, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForRange(
+ BNBinaryView* view, uint64_t addr, uint64_t len, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForFunction(
+ BNBinaryView* view, BNFunction* func, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForLowLevelILFunction(
+ BNBinaryView* view, BNLowLevelILFunction* func, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForLowLevelILInstruction(
+ BNBinaryView* view, BNLowLevelILFunction* func, size_t instr, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForMediumLevelILFunction(
+ BNBinaryView* view, BNMediumLevelILFunction* func, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForMediumLevelILInstruction(
+ BNBinaryView* view, BNMediumLevelILFunction* func, size_t instr, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForHighLevelILFunction(
+ BNBinaryView* view, BNHighLevelILFunction* func, size_t* count);
+ BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForHighLevelILInstruction(
+ BNBinaryView* view, BNHighLevelILFunction* func, size_t instr, size_t* count);
BINARYNINJACOREAPI void BNFreePluginCommandList(BNPluginCommand* commands);
// Calling conventions
- BINARYNINJACOREAPI BNCallingConvention* BNCreateCallingConvention(BNArchitecture* arch, const char* name,
- BNCustomCallingConvention* cc);
+ BINARYNINJACOREAPI BNCallingConvention* BNCreateCallingConvention(
+ BNArchitecture* arch, const char* name, BNCustomCallingConvention* cc);
BINARYNINJACOREAPI void BNRegisterCallingConvention(BNArchitecture* arch, BNCallingConvention* cc);
BINARYNINJACOREAPI BNCallingConvention* BNNewCallingConventionReference(BNCallingConvention* cc);
BINARYNINJACOREAPI void BNFreeCallingConvention(BNCallingConvention* cc);
BINARYNINJACOREAPI BNCallingConvention** BNGetArchitectureCallingConventions(BNArchitecture* arch, size_t* count);
BINARYNINJACOREAPI void BNFreeCallingConventionList(BNCallingConvention** list, size_t count);
- BINARYNINJACOREAPI BNCallingConvention* BNGetArchitectureCallingConventionByName(BNArchitecture* arch,
- const char* name);
+ BINARYNINJACOREAPI BNCallingConvention* BNGetArchitectureCallingConventionByName(
+ BNArchitecture* arch, const char* name);
BINARYNINJACOREAPI BNArchitecture* BNGetCallingConventionArchitecture(BNCallingConvention* cc);
BINARYNINJACOREAPI char* BNGetCallingConventionName(BNCallingConvention* cc);
@@ -5116,17 +5278,18 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI uint32_t BNGetGlobalPointerRegister(BNCallingConvention* cc);
BINARYNINJACOREAPI uint32_t* BNGetImplicitlyDefinedRegisters(BNCallingConvention* cc, size_t* count);
- BINARYNINJACOREAPI BNRegisterValue BNGetIncomingRegisterValue(BNCallingConvention* cc, uint32_t reg, BNFunction* func);
+ BINARYNINJACOREAPI BNRegisterValue BNGetIncomingRegisterValue(
+ BNCallingConvention* cc, uint32_t reg, BNFunction* func);
BINARYNINJACOREAPI BNRegisterValue BNGetIncomingFlagValue(BNCallingConvention* cc, uint32_t reg, BNFunction* func);
- BINARYNINJACOREAPI BNVariable BNGetIncomingVariableForParameterVariable(BNCallingConvention* cc,
- const BNVariable* var, BNFunction* func);
- BINARYNINJACOREAPI BNVariable BNGetParameterVariableForIncomingVariable(BNCallingConvention* cc,
- const BNVariable* var, BNFunction* func);
- BINARYNINJACOREAPI BNVariable BNGetDefaultIncomingVariableForParameterVariable(BNCallingConvention* cc,
- const BNVariable* var);
- BINARYNINJACOREAPI BNVariable BNGetDefaultParameterVariableForIncomingVariable(BNCallingConvention* cc,
- const BNVariable* var);
+ BINARYNINJACOREAPI BNVariable BNGetIncomingVariableForParameterVariable(
+ BNCallingConvention* cc, const BNVariable* var, BNFunction* func);
+ BINARYNINJACOREAPI BNVariable BNGetParameterVariableForIncomingVariable(
+ BNCallingConvention* cc, const BNVariable* var, BNFunction* func);
+ BINARYNINJACOREAPI BNVariable BNGetDefaultIncomingVariableForParameterVariable(
+ BNCallingConvention* cc, const BNVariable* var);
+ BINARYNINJACOREAPI BNVariable BNGetDefaultParameterVariableForIncomingVariable(
+ BNCallingConvention* cc, const BNVariable* var);
BINARYNINJACOREAPI BNCallingConvention* BNGetArchitectureDefaultCallingConvention(BNArchitecture* arch);
BINARYNINJACOREAPI BNCallingConvention* BNGetArchitectureCdeclCallingConvention(BNArchitecture* arch);
@@ -5139,8 +5302,8 @@ __attribute__ ((format (printf, 1, 2)))
// Platforms
BINARYNINJACOREAPI BNPlatform* BNCreatePlatform(BNArchitecture* arch, const char* name);
- BINARYNINJACOREAPI BNPlatform* BNCreatePlatformWithTypes(BNArchitecture* arch, const char* name,
- const char* typeFile, const char** includeDirs, size_t includeDirCount);
+ BINARYNINJACOREAPI BNPlatform* BNCreatePlatformWithTypes(
+ BNArchitecture* arch, const char* name, const char* typeFile, const char** includeDirs, size_t includeDirCount);
BINARYNINJACOREAPI void BNRegisterPlatform(const char* os, BNPlatform* platform);
BINARYNINJACOREAPI BNPlatform* BNNewPlatformReference(BNPlatform* platform);
BINARYNINJACOREAPI void BNFreePlatform(BNPlatform* platform);
@@ -5152,8 +5315,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNPlatform** BNGetPlatformList(size_t* count);
BINARYNINJACOREAPI BNPlatform** BNGetPlatformListByArchitecture(BNArchitecture* arch, size_t* count);
BINARYNINJACOREAPI BNPlatform** BNGetPlatformListByOS(const char* os, size_t* count);
- BINARYNINJACOREAPI BNPlatform** BNGetPlatformListByOSAndArchitecture(const char* os, BNArchitecture* arch,
- size_t* count);
+ BINARYNINJACOREAPI BNPlatform** BNGetPlatformListByOSAndArchitecture(
+ const char* os, BNArchitecture* arch, size_t* count);
BINARYNINJACOREAPI void BNFreePlatformList(BNPlatform** platform, size_t count);
BINARYNINJACOREAPI char** BNGetPlatformOSList(size_t* count);
BINARYNINJACOREAPI void BNFreePlatformOSList(char** list, size_t count);
@@ -5185,21 +5348,24 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNFreeSystemCallList(BNSystemCallInfo* syscalls, size_t count);
BINARYNINJACOREAPI BNType* BNGetPlatformTypeByName(BNPlatform* platform, BNQualifiedName* name);
BINARYNINJACOREAPI BNType* BNGetPlatformVariableByName(BNPlatform* platform, BNQualifiedName* name);
- BINARYNINJACOREAPI BNType* BNGetPlatformFunctionByName(BNPlatform* platform, BNQualifiedName* name, bool exactMatch);
+ BINARYNINJACOREAPI BNType* BNGetPlatformFunctionByName(
+ BNPlatform* platform, BNQualifiedName* name, bool exactMatch);
BINARYNINJACOREAPI char* BNGetPlatformSystemCallName(BNPlatform* platform, uint32_t number);
BINARYNINJACOREAPI BNType* BNGetPlatformSystemCallType(BNPlatform* platform, uint32_t number);
BINARYNINJACOREAPI BNTypeLibrary** BNGetPlatformTypeLibraries(BNPlatform* platform, size_t* count);
- BINARYNINJACOREAPI BNTypeLibrary** BNGetPlatformTypeLibrariesByName(BNPlatform* platform, char* depName, size_t* count);
+ BINARYNINJACOREAPI BNTypeLibrary** BNGetPlatformTypeLibrariesByName(
+ BNPlatform* platform, char* depName, size_t* count);
- //Demangler
- BINARYNINJACOREAPI bool BNDemangleMS(BNArchitecture* arch, const char* mangledName, BNType** outType, char*** outVarName,
- size_t* outVarNameElements, const bool simplify);
- BINARYNINJACOREAPI bool BNDemangleMSWithOptions(BNArchitecture* arch, const char* mangledName, BNType** outType, char*** outVarName,
- size_t* outVarNameElements, const BNBinaryView* const view);
+ // Demangler
+ BINARYNINJACOREAPI bool BNDemangleMS(BNArchitecture* arch, const char* mangledName, BNType** outType,
+ char*** outVarName, size_t* outVarNameElements, const bool simplify);
+ BINARYNINJACOREAPI bool BNDemangleMSWithOptions(BNArchitecture* arch, const char* mangledName, BNType** outType,
+ char*** outVarName, size_t* outVarNameElements, const BNBinaryView* const view);
// Download providers
- BINARYNINJACOREAPI BNDownloadProvider* BNRegisterDownloadProvider(const char* name, BNDownloadProviderCallbacks* callbacks);
+ BINARYNINJACOREAPI BNDownloadProvider* BNRegisterDownloadProvider(
+ const char* name, BNDownloadProviderCallbacks* callbacks);
BINARYNINJACOREAPI BNDownloadProvider** BNGetDownloadProviderList(size_t* count);
BINARYNINJACOREAPI void BNFreeDownloadProviderList(BNDownloadProvider** providers);
BINARYNINJACOREAPI BNDownloadProvider* BNGetDownloadProviderByName(const char* name);
@@ -5207,20 +5373,27 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetDownloadProviderName(BNDownloadProvider* provider);
BINARYNINJACOREAPI BNDownloadInstance* BNCreateDownloadProviderInstance(BNDownloadProvider* provider);
- BINARYNINJACOREAPI BNDownloadInstance* BNInitDownloadInstance(BNDownloadProvider* provider, BNDownloadInstanceCallbacks* callbacks);
+ BINARYNINJACOREAPI BNDownloadInstance* BNInitDownloadInstance(
+ BNDownloadProvider* provider, BNDownloadInstanceCallbacks* callbacks);
BINARYNINJACOREAPI BNDownloadInstance* BNNewDownloadInstanceReference(BNDownloadInstance* instance);
BINARYNINJACOREAPI void BNFreeDownloadInstance(BNDownloadInstance* instance);
BINARYNINJACOREAPI void BNFreeDownloadInstanceResponse(BNDownloadInstanceResponse* response);
- BINARYNINJACOREAPI int BNPerformDownloadRequest(BNDownloadInstance* instance, const char* url, BNDownloadInstanceOutputCallbacks* callbacks);
- BINARYNINJACOREAPI int BNPerformCustomRequest(BNDownloadInstance* instance, const char* method, const char* url, uint64_t headerCount, const char* const* headerKeys, const char* const* headerValues, BNDownloadInstanceResponse** response, BNDownloadInstanceInputOutputCallbacks* callbacks);
+ BINARYNINJACOREAPI int BNPerformDownloadRequest(
+ BNDownloadInstance* instance, const char* url, BNDownloadInstanceOutputCallbacks* callbacks);
+ BINARYNINJACOREAPI int BNPerformCustomRequest(BNDownloadInstance* instance, const char* method, const char* url,
+ uint64_t headerCount, const char* const* headerKeys, const char* const* headerValues,
+ BNDownloadInstanceResponse** response, BNDownloadInstanceInputOutputCallbacks* callbacks);
BINARYNINJACOREAPI int64_t BNReadDataForDownloadInstance(BNDownloadInstance* instance, uint8_t* data, uint64_t len);
- BINARYNINJACOREAPI uint64_t BNWriteDataForDownloadInstance(BNDownloadInstance* instance, uint8_t* data, uint64_t len);
- BINARYNINJACOREAPI bool BNNotifyProgressForDownloadInstance(BNDownloadInstance* instance, uint64_t progress, uint64_t total);
+ BINARYNINJACOREAPI uint64_t BNWriteDataForDownloadInstance(
+ BNDownloadInstance* instance, uint8_t* data, uint64_t len);
+ BINARYNINJACOREAPI bool BNNotifyProgressForDownloadInstance(
+ BNDownloadInstance* instance, uint64_t progress, uint64_t total);
BINARYNINJACOREAPI char* BNGetErrorForDownloadInstance(BNDownloadInstance* instance);
BINARYNINJACOREAPI void BNSetErrorForDownloadInstance(BNDownloadInstance* instance, const char* error);
// Websocket providers
- BINARYNINJACOREAPI BNWebsocketProvider* BNRegisterWebsocketProvider(const char* name, BNWebsocketProviderCallbacks* callbacks);
+ BINARYNINJACOREAPI BNWebsocketProvider* BNRegisterWebsocketProvider(
+ const char* name, BNWebsocketProviderCallbacks* callbacks);
BINARYNINJACOREAPI BNWebsocketProvider** BNGetWebsocketProviderList(size_t* count);
BINARYNINJACOREAPI void BNFreeWebsocketProviderList(BNWebsocketProvider** providers);
BINARYNINJACOREAPI BNWebsocketProvider* BNGetWebsocketProviderByName(const char* name);
@@ -5228,20 +5401,23 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetWebsocketProviderName(BNWebsocketProvider* provider);
BINARYNINJACOREAPI BNWebsocketClient* BNCreateWebsocketProviderClient(BNWebsocketProvider* provider);
- BINARYNINJACOREAPI BNWebsocketClient* BNInitWebsocketClient(BNWebsocketProvider* provider, BNWebsocketClientCallbacks* callbacks);
+ BINARYNINJACOREAPI BNWebsocketClient* BNInitWebsocketClient(
+ BNWebsocketProvider* provider, BNWebsocketClientCallbacks* callbacks);
BINARYNINJACOREAPI BNWebsocketClient* BNNewWebsocketClientReference(BNWebsocketClient* client);
BINARYNINJACOREAPI void BNFreeWebsocketClient(BNWebsocketClient* client);
- BINARYNINJACOREAPI bool BNConnectWebsocketClient(BNWebsocketClient* client, const char* url, uint64_t headerCount, const char* const* headerKeys, const char* const* headerValues, BNWebsocketClientOutputCallbacks* callbacks);
+ BINARYNINJACOREAPI bool BNConnectWebsocketClient(BNWebsocketClient* client, const char* url, uint64_t headerCount,
+ const char* const* headerKeys, const char* const* headerValues, BNWebsocketClientOutputCallbacks* callbacks);
BINARYNINJACOREAPI bool BNNotifyWebsocketClientConnect(BNWebsocketClient* client);
BINARYNINJACOREAPI void BNNotifyWebsocketClientDisconnect(BNWebsocketClient* client);
BINARYNINJACOREAPI void BNNotifyWebsocketClientError(BNWebsocketClient* client, const char* msg);
BINARYNINJACOREAPI bool BNNotifyWebsocketClientReadData(BNWebsocketClient* client, uint8_t* data, uint64_t len);
- BINARYNINJACOREAPI uint64_t BNWriteWebsocketClientData(BNWebsocketClient* client, const uint8_t* data, uint64_t len);
+ BINARYNINJACOREAPI uint64_t BNWriteWebsocketClientData(
+ BNWebsocketClient* client, const uint8_t* data, uint64_t len);
BINARYNINJACOREAPI bool BNDisconnectWebsocketClient(BNWebsocketClient* client);
// Scripting providers
- BINARYNINJACOREAPI BNScriptingProvider* BNRegisterScriptingProvider(const char* name, const char* apiName,
- BNScriptingProviderCallbacks* callbacks);
+ BINARYNINJACOREAPI BNScriptingProvider* BNRegisterScriptingProvider(
+ const char* name, const char* apiName, BNScriptingProviderCallbacks* callbacks);
BINARYNINJACOREAPI BNScriptingProvider** BNGetScriptingProviderList(size_t* count);
BINARYNINJACOREAPI void BNFreeScriptingProviderList(BNScriptingProvider** providers);
BINARYNINJACOREAPI BNScriptingProvider* BNGetScriptingProviderByName(const char* name);
@@ -5250,38 +5426,40 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetScriptingProviderName(BNScriptingProvider* provider);
BINARYNINJACOREAPI char* BNGetScriptingProviderAPIName(BNScriptingProvider* provider);
BINARYNINJACOREAPI BNScriptingInstance* BNCreateScriptingProviderInstance(BNScriptingProvider* provider);
- BINARYNINJACOREAPI bool BNLoadScriptingProviderModule(BNScriptingProvider* provider, const char* repository, const char* module, bool force);
+ BINARYNINJACOREAPI bool BNLoadScriptingProviderModule(
+ BNScriptingProvider* provider, const char* repository, const char* module, bool force);
BINARYNINJACOREAPI bool BNInstallScriptingProviderModules(BNScriptingProvider* provider, const char* modules);
- BINARYNINJACOREAPI BNScriptingInstance* BNInitScriptingInstance(BNScriptingProvider* provider,
- BNScriptingInstanceCallbacks* callbacks);
+ BINARYNINJACOREAPI BNScriptingInstance* BNInitScriptingInstance(
+ BNScriptingProvider* provider, BNScriptingInstanceCallbacks* callbacks);
BINARYNINJACOREAPI BNScriptingInstance* BNNewScriptingInstanceReference(BNScriptingInstance* instance);
BINARYNINJACOREAPI void BNFreeScriptingInstance(BNScriptingInstance* instance);
BINARYNINJACOREAPI void BNNotifyOutputForScriptingInstance(BNScriptingInstance* instance, const char* text);
BINARYNINJACOREAPI void BNNotifyErrorForScriptingInstance(BNScriptingInstance* instance, const char* text);
- BINARYNINJACOREAPI void BNNotifyInputReadyStateForScriptingInstance(BNScriptingInstance* instance,
- BNScriptingProviderInputReadyState state);
+ BINARYNINJACOREAPI void BNNotifyInputReadyStateForScriptingInstance(
+ BNScriptingInstance* instance, BNScriptingProviderInputReadyState state);
- BINARYNINJACOREAPI void BNRegisterScriptingInstanceOutputListener(BNScriptingInstance* instance,
- BNScriptingOutputListener* callbacks);
- BINARYNINJACOREAPI void BNUnregisterScriptingInstanceOutputListener(BNScriptingInstance* instance,
- BNScriptingOutputListener* callbacks);
+ BINARYNINJACOREAPI void BNRegisterScriptingInstanceOutputListener(
+ BNScriptingInstance* instance, BNScriptingOutputListener* callbacks);
+ BINARYNINJACOREAPI void BNUnregisterScriptingInstanceOutputListener(
+ BNScriptingInstance* instance, BNScriptingOutputListener* callbacks);
BINARYNINJACOREAPI const char* BNGetScriptingInstanceDelimiters(BNScriptingInstance* instance);
BINARYNINJACOREAPI void BNSetScriptingInstanceDelimiters(BNScriptingInstance* instance, const char* delimiters);
BINARYNINJACOREAPI BNScriptingProviderInputReadyState BNGetScriptingInstanceInputReadyState(
- BNScriptingInstance* instance);
- BINARYNINJACOREAPI BNScriptingProviderExecuteResult BNExecuteScriptInput(BNScriptingInstance* instance,
- const char* input);
+ BNScriptingInstance* instance);
+ BINARYNINJACOREAPI BNScriptingProviderExecuteResult BNExecuteScriptInput(
+ BNScriptingInstance* instance, const char* input);
BINARYNINJACOREAPI void BNCancelScriptInput(BNScriptingInstance* instance);
BINARYNINJACOREAPI void BNSetScriptingInstanceCurrentBinaryView(BNScriptingInstance* instance, BNBinaryView* view);
BINARYNINJACOREAPI void BNSetScriptingInstanceCurrentFunction(BNScriptingInstance* instance, BNFunction* func);
BINARYNINJACOREAPI void BNSetScriptingInstanceCurrentBasicBlock(BNScriptingInstance* instance, BNBasicBlock* block);
BINARYNINJACOREAPI void BNSetScriptingInstanceCurrentAddress(BNScriptingInstance* instance, uint64_t addr);
- BINARYNINJACOREAPI void BNSetScriptingInstanceCurrentSelection(BNScriptingInstance* instance,
- uint64_t begin, uint64_t end);
- BINARYNINJACOREAPI char* BNScriptingInstanceCompleteInput(BNScriptingInstance* instance, const char* text, uint64_t state);
+ BINARYNINJACOREAPI void BNSetScriptingInstanceCurrentSelection(
+ BNScriptingInstance* instance, uint64_t begin, uint64_t end);
+ BINARYNINJACOREAPI char* BNScriptingInstanceCompleteInput(
+ BNScriptingInstance* instance, const char* text, uint64_t state);
BINARYNINJACOREAPI void BNStopScriptingInstance(BNScriptingInstance* instance);
// Main thread actions
@@ -5322,26 +5500,26 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI void BNRegisterInteractionHandler(BNInteractionHandlerCallbacks* callbacks);
BINARYNINJACOREAPI char* BNMarkdownToHTML(const char* contents);
BINARYNINJACOREAPI void BNShowPlainTextReport(BNBinaryView* view, const char* title, const char* contents);
- BINARYNINJACOREAPI void BNShowMarkdownReport(BNBinaryView* view, const char* title, const char* contents,
- const char* plaintext);
- BINARYNINJACOREAPI void BNShowHTMLReport(BNBinaryView* view, const char* title, const char* contents,
- const char* plaintext);
+ BINARYNINJACOREAPI void BNShowMarkdownReport(
+ BNBinaryView* view, const char* title, const char* contents, const char* plaintext);
+ BINARYNINJACOREAPI void BNShowHTMLReport(
+ BNBinaryView* view, const char* title, const char* contents, const char* plaintext);
BINARYNINJACOREAPI void BNShowGraphReport(BNBinaryView* view, const char* title, BNFlowGraph* graph);
BINARYNINJACOREAPI void BNShowReportCollection(const char* title, BNReportCollection* reports);
BINARYNINJACOREAPI bool BNGetTextLineInput(char** result, const char* prompt, const char* title);
BINARYNINJACOREAPI bool BNGetIntegerInput(int64_t* result, const char* prompt, const char* title);
- BINARYNINJACOREAPI bool BNGetAddressInput(uint64_t* result, const char* prompt, const char* title,
- BNBinaryView* view, uint64_t currentAddr);
- BINARYNINJACOREAPI bool BNGetChoiceInput(size_t* result, const char* prompt, const char* title,
- const char** choices, size_t count);
+ BINARYNINJACOREAPI bool BNGetAddressInput(
+ uint64_t* result, const char* prompt, const char* title, BNBinaryView* view, uint64_t currentAddr);
+ BINARYNINJACOREAPI bool BNGetChoiceInput(
+ size_t* result, const char* prompt, const char* title, const char** choices, size_t count);
BINARYNINJACOREAPI bool BNGetOpenFileNameInput(char** result, const char* prompt, const char* ext);
- BINARYNINJACOREAPI bool BNGetSaveFileNameInput(char** result, const char* prompt, const char* ext,
- const char* defaultName);
+ BINARYNINJACOREAPI bool BNGetSaveFileNameInput(
+ char** result, const char* prompt, const char* ext, const char* defaultName);
BINARYNINJACOREAPI bool BNGetDirectoryNameInput(char** result, const char* prompt, const char* defaultName);
BINARYNINJACOREAPI bool BNGetFormInput(BNFormInputField* fields, size_t count, const char* title);
BINARYNINJACOREAPI void BNFreeFormInputResults(BNFormInputField* fields, size_t count);
- BINARYNINJACOREAPI BNMessageBoxButtonResult BNShowMessageBox(const char* title, const char* text,
- BNMessageBoxButtonSet buttons, BNMessageBoxIcon icon);
+ BINARYNINJACOREAPI BNMessageBoxButtonResult BNShowMessageBox(
+ const char* title, const char* text, BNMessageBoxButtonSet buttons, BNMessageBoxIcon icon);
BINARYNINJACOREAPI bool BNOpenUrl(const char* url);
BINARYNINJACOREAPI BNReportCollection* BNCreateReportCollection(void);
@@ -5354,21 +5532,21 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetReportContents(BNReportCollection* reports, size_t i);
BINARYNINJACOREAPI char* BNGetReportPlainText(BNReportCollection* reports, size_t i);
BINARYNINJACOREAPI BNFlowGraph* BNGetReportFlowGraph(BNReportCollection* reports, size_t i);
- BINARYNINJACOREAPI void BNAddPlainTextReportToCollection(BNReportCollection* reports, BNBinaryView* view,
- const char* title, const char* contents);
+ BINARYNINJACOREAPI void BNAddPlainTextReportToCollection(
+ BNReportCollection* reports, BNBinaryView* view, const char* title, const char* contents);
BINARYNINJACOREAPI void BNAddMarkdownReportToCollection(BNReportCollection* reports, BNBinaryView* view,
- const char* title, const char* contents, const char* plaintext);
+ const char* title, const char* contents, const char* plaintext);
BINARYNINJACOREAPI void BNAddHTMLReportToCollection(BNReportCollection* reports, BNBinaryView* view,
- const char* title, const char* contents, const char* plaintext);
- BINARYNINJACOREAPI void BNAddGraphReportToCollection(BNReportCollection* reports, BNBinaryView* view,
- const char* title, BNFlowGraph* graph);
+ const char* title, const char* contents, const char* plaintext);
+ BINARYNINJACOREAPI void BNAddGraphReportToCollection(
+ BNReportCollection* reports, BNBinaryView* view, const char* title, BNFlowGraph* graph);
BINARYNINJACOREAPI void BNUpdateReportFlowGraph(BNReportCollection* reports, size_t i, BNFlowGraph* graph);
BINARYNINJACOREAPI bool BNIsGNU3MangledString(const char* mangledName);
BINARYNINJACOREAPI bool BNDemangleGNU3(BNArchitecture* arch, const char* mangledName, BNType** outType,
- char*** outVarName, size_t* outVarNameElements, const bool simplify);
+ char*** outVarName, size_t* outVarNameElements, const bool simplify);
BINARYNINJACOREAPI bool BNDemangleGNU3WithOptions(BNArchitecture* arch, const char* mangledName, BNType** outType,
- char*** outVarName, size_t* outVarNameElements, const BNBinaryView* const view);
+ char*** outVarName, size_t* outVarNameElements, const BNBinaryView* const view);
BINARYNINJACOREAPI void BNFreeDemangledName(char*** name, size_t nameElements);
// Plugin repository APIs
@@ -5433,9 +5611,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNRepositoryManagerCheckForUpdates(BNRepositoryManager* r);
BINARYNINJACOREAPI BNRepository** BNRepositoryManagerGetRepositories(BNRepositoryManager* r, size_t* count);
BINARYNINJACOREAPI void BNFreeRepositoryManagerRepositoriesList(BNRepository** r);
- BINARYNINJACOREAPI bool BNRepositoryManagerAddRepository(BNRepositoryManager* r,
- const char* url,
- const char* repoPath);
+ BINARYNINJACOREAPI bool BNRepositoryManagerAddRepository(
+ BNRepositoryManager* r, const char* url, const char* repoPath);
BINARYNINJACOREAPI BNRepository* BNRepositoryGetRepositoryByPath(BNRepositoryManager* r, const char* repoPath);
BINARYNINJACOREAPI BNRepositoryManager* BNGetRepositoryManager();
@@ -5444,10 +5621,10 @@ __attribute__ ((format (printf, 1, 2)))
// LLVM Services APIs
BINARYNINJACOREAPI void BNLlvmServicesInit(void);
- BINARYNINJACOREAPI int BNLlvmServicesAssemble(const char *src, int dialect, const char *triplet,
- int codeModel, int relocMode, char **outBytes, int *outBytesLen, char **err, int *errLen);
+ BINARYNINJACOREAPI int BNLlvmServicesAssemble(const char* src, int dialect, const char* triplet, int codeModel,
+ int relocMode, char** outBytes, int* outBytesLen, char** err, int* errLen);
- BINARYNINJACOREAPI void BNLlvmServicesAssembleFree(char *outBytes, char *err);
+ BINARYNINJACOREAPI void BNLlvmServicesAssembleFree(char* outBytes, char* err);
// Filesystem functionality
BINARYNINJACOREAPI int BNDeleteFile(const char* path);
@@ -5476,40 +5653,65 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNSettingsContains(BNSettings* settings, const char* key);
BINARYNINJACOREAPI bool BNSettingsIsEmpty(BNSettings* settings);
BINARYNINJACOREAPI const char** BNSettingsKeysList(BNSettings* settings, size_t* inoutSize);
- BINARYNINJACOREAPI const char** BNSettingsQueryPropertyStringList(BNSettings* settings, const char* key, const char* property, size_t* inoutSize);
+ BINARYNINJACOREAPI const char** BNSettingsQueryPropertyStringList(
+ BNSettings* settings, const char* key, const char* property, size_t* inoutSize);
BINARYNINJACOREAPI bool BNSettingsUpdateProperty(BNSettings* settings, const char* key, const char* property);
- BINARYNINJACOREAPI bool BNSettingsUpdateBoolProperty(BNSettings* settings, const char* key, const char* property, bool value);
- BINARYNINJACOREAPI bool BNSettingsUpdateDoubleProperty(BNSettings* settings, const char* key, const char* property, double value);
- BINARYNINJACOREAPI bool BNSettingsUpdateInt64Property(BNSettings* settings, const char* key, const char* property, int64_t value);
- BINARYNINJACOREAPI bool BNSettingsUpdateUInt64Property(BNSettings* settings, const char* key, const char* property, uint64_t value);
- BINARYNINJACOREAPI bool BNSettingsUpdateStringProperty(BNSettings* settings, const char* key, const char* property, const char* value);
- BINARYNINJACOREAPI bool BNSettingsUpdateStringListProperty(BNSettings* settings, const char* key, const char* property, const char** value, size_t size);
+ BINARYNINJACOREAPI bool BNSettingsUpdateBoolProperty(
+ BNSettings* settings, const char* key, const char* property, bool value);
+ BINARYNINJACOREAPI bool BNSettingsUpdateDoubleProperty(
+ BNSettings* settings, const char* key, const char* property, double value);
+ BINARYNINJACOREAPI bool BNSettingsUpdateInt64Property(
+ BNSettings* settings, const char* key, const char* property, int64_t value);
+ BINARYNINJACOREAPI bool BNSettingsUpdateUInt64Property(
+ BNSettings* settings, const char* key, const char* property, uint64_t value);
+ BINARYNINJACOREAPI bool BNSettingsUpdateStringProperty(
+ BNSettings* settings, const char* key, const char* property, const char* value);
+ BINARYNINJACOREAPI bool BNSettingsUpdateStringListProperty(
+ BNSettings* settings, const char* key, const char* property, const char** value, size_t size);
- BINARYNINJACOREAPI bool BNSettingsDeserializeSchema(BNSettings* settings, const char* schema, BNSettingsScope scope, bool merge);
+ BINARYNINJACOREAPI bool BNSettingsDeserializeSchema(
+ BNSettings* settings, const char* schema, BNSettingsScope scope, bool merge);
BINARYNINJACOREAPI char* BNSettingsSerializeSchema(BNSettings* settings);
- BINARYNINJACOREAPI bool BNDeserializeSettings(BNSettings* settings, const char* contents, BNBinaryView* view, BNSettingsScope scope);
+ BINARYNINJACOREAPI bool BNDeserializeSettings(
+ BNSettings* settings, const char* contents, BNBinaryView* view, BNSettingsScope scope);
BINARYNINJACOREAPI char* BNSerializeSettings(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope);
- BINARYNINJACOREAPI bool BNSettingsReset(BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope scope);
- BINARYNINJACOREAPI bool BNSettingsResetAll(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, bool schemaOnly);
+ BINARYNINJACOREAPI bool BNSettingsReset(
+ BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope scope);
+ BINARYNINJACOREAPI bool BNSettingsResetAll(
+ BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, bool schemaOnly);
- BINARYNINJACOREAPI bool BNSettingsGetBool(BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
- BINARYNINJACOREAPI double BNSettingsGetDouble(BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
- BINARYNINJACOREAPI int64_t BNSettingsGetInt64(BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
- BINARYNINJACOREAPI uint64_t BNSettingsGetUInt64(BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
- BINARYNINJACOREAPI char* BNSettingsGetString(BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
- BINARYNINJACOREAPI const char** BNSettingsGetStringList(BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope, size_t* inoutSize);
- BINARYNINJACOREAPI char* BNSettingsGetJson(BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
+ BINARYNINJACOREAPI bool BNSettingsGetBool(
+ BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
+ BINARYNINJACOREAPI double BNSettingsGetDouble(
+ BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
+ BINARYNINJACOREAPI int64_t BNSettingsGetInt64(
+ BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
+ BINARYNINJACOREAPI uint64_t BNSettingsGetUInt64(
+ BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
+ BINARYNINJACOREAPI char* BNSettingsGetString(
+ BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
+ BINARYNINJACOREAPI const char** BNSettingsGetStringList(
+ BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope, size_t* inoutSize);
+ BINARYNINJACOREAPI char* BNSettingsGetJson(
+ BNSettings* settings, const char* key, BNBinaryView* view, BNSettingsScope* scope);
- BINARYNINJACOREAPI bool BNSettingsSetBool(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, bool value);
- BINARYNINJACOREAPI bool BNSettingsSetDouble(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, double value);
- BINARYNINJACOREAPI bool BNSettingsSetInt64(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, int64_t value);
- BINARYNINJACOREAPI bool BNSettingsSetUInt64(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, uint64_t value);
- BINARYNINJACOREAPI bool BNSettingsSetString(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, const char* value);
- BINARYNINJACOREAPI bool BNSettingsSetStringList(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, const char** value, size_t size);
- BINARYNINJACOREAPI bool BNSettingsSetJson(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, const char* value);
+ BINARYNINJACOREAPI bool BNSettingsSetBool(
+ BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, bool value);
+ BINARYNINJACOREAPI bool BNSettingsSetDouble(
+ BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, double value);
+ BINARYNINJACOREAPI bool BNSettingsSetInt64(
+ BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, int64_t value);
+ BINARYNINJACOREAPI bool BNSettingsSetUInt64(
+ BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, uint64_t value);
+ BINARYNINJACOREAPI bool BNSettingsSetString(
+ BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, const char* value);
+ BINARYNINJACOREAPI bool BNSettingsSetStringList(BNSettings* settings, BNBinaryView* view, BNSettingsScope scope,
+ const char* key, const char** value, size_t size);
+ BINARYNINJACOREAPI bool BNSettingsSetJson(
+ BNSettings* settings, BNBinaryView* view, BNSettingsScope scope, const char* key, const char* value);
- //Metadata APIs
+ // Metadata APIs
// Create Metadata of various types
BINARYNINJACOREAPI BNMetadata* BNNewMetadataReference(BNMetadata* data);
@@ -5547,7 +5749,7 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI BNMetadata** BNMetadataGetArray(BNMetadata* data, size_t* size);
BINARYNINJACOREAPI BNMetadataValueStore* BNMetadataGetValueStore(BNMetadata* data);
- //Query type of Metadata
+ // Query type of Metadata
BINARYNINJACOREAPI BNMetadataType BNMetadataGetType(BNMetadata* data);
BINARYNINJACOREAPI bool BNMetadataIsBoolean(BNMetadata* data);
BINARYNINJACOREAPI bool BNMetadataIsString(BNMetadata* data);
@@ -5559,8 +5761,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNMetadataIsKeyValueStore(BNMetadata* data);
// Store/Query structured data to/from a BinaryView
- BINARYNINJACOREAPI void BNBinaryViewStoreMetadata(BNBinaryView* view, const char* key,
- BNMetadata* value, bool isAuto);
+ BINARYNINJACOREAPI void BNBinaryViewStoreMetadata(
+ BNBinaryView* view, const char* key, BNMetadata* value, bool isAuto);
BINARYNINJACOREAPI BNMetadata* BNBinaryViewQueryMetadata(BNBinaryView* view, const char* key);
BINARYNINJACOREAPI void BNBinaryViewRemoveMetadata(BNBinaryView* view, const char* key);
@@ -5577,8 +5779,8 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI uint64_t BNRelocationGetReloc(BNRelocation* reloc);
BINARYNINJACOREAPI BNSymbol* BNRelocationGetSymbol(BNRelocation* reloc);
// Segment object methods
- BINARYNINJACOREAPI BNSegment* BNCreateSegment(uint64_t start, uint64_t length, uint64_t dataOffset, uint64_t dataLength, uint32_t flags,
- bool autoDefined);
+ BINARYNINJACOREAPI BNSegment* BNCreateSegment(
+ uint64_t start, uint64_t length, uint64_t dataOffset, uint64_t dataLength, uint32_t flags, bool autoDefined);
BINARYNINJACOREAPI BNSegment* BNNewSegmentReference(BNSegment* seg);
BINARYNINJACOREAPI void BNFreeSegment(BNSegment* seg);
@@ -5619,20 +5821,22 @@ __attribute__ ((format (printf, 1, 2)))
// Custom Data Render methods
BINARYNINJACOREAPI BNDataRenderer* BNCreateDataRenderer(BNCustomDataRenderer* renderer);
BINARYNINJACOREAPI BNDataRenderer* BNNewDataRendererReference(BNDataRenderer* renderer);
- BINARYNINJACOREAPI bool BNIsValidForData(void* ctxt, BNBinaryView* view, uint64_t addr, BNType* type,
- BNTypeContext* typeCtx, size_t ctxCount);
+ BINARYNINJACOREAPI bool BNIsValidForData(
+ void* ctxt, BNBinaryView* view, uint64_t addr, BNType* type, BNTypeContext* typeCtx, size_t ctxCount);
BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetLinesForData(void* ctxt, BNBinaryView* view, uint64_t addr,
- BNType* type, const BNInstructionTextToken* prefix, size_t prefixCount, size_t width, size_t* count,
- BNTypeContext* typeCtx, size_t ctxCount);
+ BNType* type, const BNInstructionTextToken* prefix, size_t prefixCount, size_t width, size_t* count,
+ BNTypeContext* typeCtx, size_t ctxCount);
BINARYNINJACOREAPI BNDisassemblyTextLine* BNRenderLinesForData(BNBinaryView* data, uint64_t addr, BNType* type,
- const BNInstructionTextToken* prefix, size_t prefixCount, size_t width, size_t* count, BNTypeContext* typeCtx,
- size_t ctxCount);
+ const BNInstructionTextToken* prefix, size_t prefixCount, size_t width, size_t* count, BNTypeContext* typeCtx,
+ size_t ctxCount);
BINARYNINJACOREAPI void BNFreeDataRenderer(BNDataRenderer* renderer);
BINARYNINJACOREAPI BNDataRendererContainer* BNGetDataRendererContainer();
BINARYNINJACOREAPI void BNRegisterGenericDataRenderer(BNDataRendererContainer* container, BNDataRenderer* renderer);
- BINARYNINJACOREAPI void BNRegisterTypeSpecificDataRenderer(BNDataRendererContainer* container, BNDataRenderer* renderer);
+ BINARYNINJACOREAPI void BNRegisterTypeSpecificDataRenderer(
+ BNDataRendererContainer* container, BNDataRenderer* renderer);
- BINARYNINJACOREAPI bool BNParseExpression(BNBinaryView* view, const char* expression, uint64_t* offset, uint64_t here, char** errorString);
+ BINARYNINJACOREAPI bool BNParseExpression(
+ BNBinaryView* view, const char* expression, uint64_t* offset, uint64_t here, char** errorString);
BINARYNINJACOREAPI void BNFreeParseError(char* errorString);
BINARYNINJACOREAPI void* BNRegisterObjectRefDebugTrace(const char* typeName);
@@ -5647,31 +5851,39 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char** BNRustSimplifyStrToFQN(const char* const, bool);
BINARYNINJACOREAPI char* BNRustSimplifyStrToStr(const char* const);
- BINARYNINJACOREAPI BNDebugInfoParser* BNRegisterDebugInfoParser(const char* name, bool (*isValid)(void*, BNBinaryView*), void (*parseInfo)(void*, BNDebugInfo*, BNBinaryView*), void* context);
+ BINARYNINJACOREAPI BNDebugInfoParser* BNRegisterDebugInfoParser(const char* name,
+ bool (*isValid)(void*, BNBinaryView*), void (*parseInfo)(void*, BNDebugInfo*, BNBinaryView*), void* context);
BINARYNINJACOREAPI void BNUnregisterDebugInfoParser(const char* rawName);
BINARYNINJACOREAPI BNDebugInfoParser* BNGetDebugInfoParserByName(const char* name);
BINARYNINJACOREAPI BNDebugInfoParser** BNGetDebugInfoParsers(size_t* count);
BINARYNINJACOREAPI BNDebugInfoParser** BNGetDebugInfoParsersForView(BNBinaryView* view, size_t* count);
BINARYNINJACOREAPI char* BNGetDebugInfoParserName(BNDebugInfoParser* parser);
BINARYNINJACOREAPI bool BNIsDebugInfoParserValidForView(BNDebugInfoParser* parser, BNBinaryView* view);
- BINARYNINJACOREAPI BNDebugInfo* BNParseDebugInfo(BNDebugInfoParser* parser, BNBinaryView* view, BNDebugInfo* existingDebugInfo);
+ BINARYNINJACOREAPI BNDebugInfo* BNParseDebugInfo(
+ BNDebugInfoParser* parser, BNBinaryView* view, BNDebugInfo* existingDebugInfo);
BINARYNINJACOREAPI BNDebugInfoParser* BNNewDebugInfoParserReference(BNDebugInfoParser* parser);
BINARYNINJACOREAPI void BNFreeDebugInfoParserReference(BNDebugInfoParser* parser);
BINARYNINJACOREAPI void BNFreeDebugInfoParserList(BNDebugInfoParser** parsers, size_t count);
BINARYNINJACOREAPI BNDebugInfo* BNNewDebugInfoReference(BNDebugInfo* debugInfo);
BINARYNINJACOREAPI void BNFreeDebugInfoReference(BNDebugInfo* debugInfo);
- BINARYNINJACOREAPI bool BNAddDebugType(BNDebugInfo* const debugInfo, const char* const name, const BNType* const type);
- BINARYNINJACOREAPI BNNameAndType* BNGetDebugTypes(BNDebugInfo* const debugInfo, const char* const name, size_t* count);
+ BINARYNINJACOREAPI bool BNAddDebugType(
+ BNDebugInfo* const debugInfo, const char* const name, const BNType* const type);
+ BINARYNINJACOREAPI BNNameAndType* BNGetDebugTypes(
+ BNDebugInfo* const debugInfo, const char* const name, size_t* count);
BINARYNINJACOREAPI void BNFreeDebugTypes(BNNameAndType* types, size_t count);
BINARYNINJACOREAPI bool BNAddDebugFunction(BNDebugInfo* const debugInfo, BNDebugFunctionInfo* func);
- BINARYNINJACOREAPI BNDebugFunctionInfo* BNGetDebugFunctions(BNDebugInfo* const debugInfo, const char* const name, size_t* count);
+ BINARYNINJACOREAPI BNDebugFunctionInfo* BNGetDebugFunctions(
+ BNDebugInfo* const debugInfo, const char* const name, size_t* count);
BINARYNINJACOREAPI void BNFreeDebugFunctions(BNDebugFunctionInfo* functions, size_t count);
- BINARYNINJACOREAPI bool BNAddDebugDataVariable(BNDebugInfo* const debugInfo, uint64_t address, const BNType* const type, const char* name);
- BINARYNINJACOREAPI BNDataVariableAndName* BNGetDebugDataVariables(BNDebugInfo* const debugInfo, const char* const name, size_t* count);
+ BINARYNINJACOREAPI bool BNAddDebugDataVariable(
+ BNDebugInfo* const debugInfo, uint64_t address, const BNType* const type, const char* name);
+ BINARYNINJACOREAPI BNDataVariableAndName* BNGetDebugDataVariables(
+ BNDebugInfo* const debugInfo, const char* const name, size_t* count);
// Secrets providers
- BINARYNINJACOREAPI BNSecretsProvider* BNRegisterSecretsProvider(const char* name, BNSecretsProviderCallbacks* callbacks);
+ BINARYNINJACOREAPI BNSecretsProvider* BNRegisterSecretsProvider(
+ const char* name, BNSecretsProviderCallbacks* callbacks);
BINARYNINJACOREAPI BNSecretsProvider** BNGetSecretsProviderList(size_t* count);
BINARYNINJACOREAPI void BNFreeSecretsProviderList(BNSecretsProvider** providers);
BINARYNINJACOREAPI BNSecretsProvider* BNGetSecretsProviderByName(const char* name);