summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRyan Snyder <ryan@vector35.com>2025-01-24 17:57:26 -0500
committerRyan Snyder <ryan@vector35.com>2025-02-14 15:58:56 -0500
commitbcdc0d9b89605936a1cb6cf3ffaaece60d3c5777 (patch)
tree7286bd0963a49d9b90ddccf3a4b70b71c08e6ce5 /binaryninjacore.h
parent071811547bded7cf570125a03bb12d0b7c56a5ac (diff)
uidf refactor
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 064a4b8e..8e1e6141 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -509,6 +509,8 @@ extern "C"
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_ASSERT,
+ LLIL_FORCE_VER,
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)
@@ -628,6 +630,8 @@ extern "C"
LLIL_REG_STACK_FREE_REL_SSA,
LLIL_REG_STACK_FREE_ABS_SSA,
LLIL_SET_FLAG_SSA,
+ LLIL_ASSERT_SSA,
+ LLIL_FORCE_VER_SSA,
LLIL_FLAG_SSA,
LLIL_FLAG_BIT_SSA,
LLIL_CALL_SSA,
@@ -1200,6 +1204,8 @@ extern "C"
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_ASSERT,
+ MLIL_FORCE_VER,
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)
@@ -1320,6 +1326,8 @@ extern "C"
MLIL_VAR_ALIASED,
MLIL_VAR_ALIASED_FIELD,
MLIL_VAR_SPLIT_SSA,
+ MLIL_ASSERT_SSA,
+ MLIL_FORCE_VER_SSA,
MLIL_CALL_SSA,
MLIL_CALL_UNTYPED_SSA,
MLIL_SYSCALL_SSA,
@@ -1396,6 +1404,8 @@ extern "C"
HLIL_VAR_INIT,
HLIL_ASSIGN,
HLIL_ASSIGN_UNPACK,
+ HLIL_FORCE_VER,
+ HLIL_ASSERT,
HLIL_VAR,
HLIL_STRUCT_FIELD,
HLIL_ARRAY_INDEX,
@@ -1497,6 +1507,8 @@ extern "C"
HLIL_VAR_INIT_SSA,
HLIL_ASSIGN_MEM_SSA,
HLIL_ASSIGN_UNPACK_MEM_SSA,
+ HLIL_FORCE_VER_SSA,
+ HLIL_ASSERT_SSA,
HLIL_VAR_SSA,
HLIL_ARRAY_INDEX_SSA,
HLIL_DEREF_SSA,
@@ -2610,6 +2622,7 @@ extern "C"
{
BNVariable var;
BNArchitectureAndAddress defSite;
+ bool after;
BNPossibleValueSet value;
} BNUserVariableValue;
@@ -5393,14 +5406,17 @@ extern "C"
BINARYNINJACOREAPI BNFlowGraph* BNGetUnresolvedStackAdjustmentGraph(BNFunction* func);
BINARYNINJACOREAPI void BNSetUserVariableValue(BNFunction* func, const BNVariable* var,
- const BNArchitectureAndAddress* defSite, const BNPossibleValueSet* value);
+ const BNArchitectureAndAddress* defSite, bool after, const BNPossibleValueSet* value);
BINARYNINJACOREAPI void BNClearUserVariableValue(
- BNFunction* func, const BNVariable* var, const BNArchitectureAndAddress* defSite);
+ BNFunction* func, const BNVariable* var, const BNArchitectureAndAddress* defSite, bool after);
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 void BNCreateForcedVariableVersion(BNFunction* func, const BNVariable* var, const BNArchitectureAndAddress* defSite);
+ BINARYNINJACOREAPI void BNClearForcedVariableVersion(BNFunction* func, const BNVariable* var, const BNArchitectureAndAddress* defSite);
+
BINARYNINJACOREAPI void BNRequestFunctionDebugReport(BNFunction* func, const char* name);
BINARYNINJACOREAPI BNILReferenceSource* BNGetMediumLevelILVariableReferences(
@@ -5747,6 +5763,9 @@ extern "C"
BNLowLevelILFunction* func, size_t expr, size_t operand, size_t* count);
BINARYNINJACOREAPI void BNLowLevelILFreeOperandList(uint64_t* operands);
+ BINARYNINJACOREAPI size_t BNCacheLowLevelILPossibleValueSet(BNLowLevelILFunction* func, BNPossibleValueSet* pvs);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetCachedLowLevelILPossibleValueSet(BNLowLevelILFunction* func, size_t idx);
+
BINARYNINJACOREAPI BNLowLevelILInstruction BNGetLowLevelILByIndex(BNLowLevelILFunction* func, size_t i);
BINARYNINJACOREAPI size_t BNGetLowLevelILIndexForInstruction(BNLowLevelILFunction* func, size_t i);
BINARYNINJACOREAPI size_t BNGetLowLevelILInstructionForExpr(BNLowLevelILFunction* func, size_t expr);
@@ -5900,6 +5919,9 @@ extern "C"
BNMediumLevelILFunction* func, size_t expr, size_t operand, size_t* count);
BINARYNINJACOREAPI void BNMediumLevelILFreeOperandList(uint64_t* operands);
+ BINARYNINJACOREAPI size_t BNCacheMediumLevelILPossibleValueSet(BNMediumLevelILFunction* func, BNPossibleValueSet* pvs);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetCachedMediumLevelILPossibleValueSet(BNMediumLevelILFunction* func, size_t idx);
+
BINARYNINJACOREAPI BNMediumLevelILInstruction BNGetMediumLevelILByIndex(BNMediumLevelILFunction* func, size_t i);
BINARYNINJACOREAPI size_t BNGetMediumLevelILIndexForInstruction(BNMediumLevelILFunction* func, size_t i);
BINARYNINJACOREAPI size_t BNGetMediumLevelILInstructionForExpr(BNMediumLevelILFunction* func, size_t expr);
@@ -6058,6 +6080,9 @@ extern "C"
BNHighLevelILFunction* func, size_t expr, size_t operand, size_t* count);
BINARYNINJACOREAPI void BNHighLevelILFreeOperandList(uint64_t* operands);
+ BINARYNINJACOREAPI size_t BNCacheHighLevelILPossibleValueSet(BNHighLevelILFunction* func, BNPossibleValueSet* pvs);
+ BINARYNINJACOREAPI BNPossibleValueSet BNGetCachedHighLevelILPossibleValueSet(BNHighLevelILFunction* func, size_t idx);
+
BINARYNINJACOREAPI BNHighLevelILInstruction BNGetHighLevelILByIndex(
BNHighLevelILFunction* func, size_t i, bool asFullAst);
BINARYNINJACOREAPI size_t BNGetHighLevelILIndexForInstruction(BNHighLevelILFunction* func, size_t i);