|
37 | 37 | // Current ABI version for linking to the core. This is incremented any time |
38 | 38 | // there are changes to the API that affect linking, including new functions, |
39 | 39 | // new types, or modifications to existing functions or types. |
40 | | -#define BN_CURRENT_CORE_ABI_VERSION 147 |
| 40 | +#define BN_CURRENT_CORE_ABI_VERSION 151 |
41 | 41 |
|
42 | 42 | // Minimum ABI version that is supported for loading of plugins. Plugins that |
43 | 43 | // are linked to an ABI version less than this will not be able to load and |
@@ -3682,6 +3682,19 @@ extern "C" |
3682 | 3682 | uint32_t flags; |
3683 | 3683 | } BNSegmentInfo; |
3684 | 3684 |
|
| 3685 | + typedef struct BNSectionInfo { |
| 3686 | + const char* name; |
| 3687 | + uint64_t start; |
| 3688 | + uint64_t length; |
| 3689 | + BNSectionSemantics semantics; |
| 3690 | + const char* type; |
| 3691 | + uint64_t align; |
| 3692 | + uint64_t entrySize; |
| 3693 | + const char* linkedSection; |
| 3694 | + const char* infoSection; |
| 3695 | + uint64_t infoData; |
| 3696 | + } BNSectionInfo; |
| 3697 | + |
3685 | 3698 | typedef bool(*BNCollaborationAnalysisConflictHandler)(void*, const char** keys, BNAnalysisMergeConflict** conflicts, size_t conflictCount); |
3686 | 3699 | typedef bool(*BNCollaborationNameChangesetFunction)(void*, BNCollaborationChangeset*); |
3687 | 3700 |
|
@@ -4179,6 +4192,7 @@ extern "C" |
4179 | 4192 | BINARYNINJACOREAPI BNProjectFile* BNProjectGetFileById(BNProject* project, const char* id); |
4180 | 4193 | BINARYNINJACOREAPI BNProjectFile* BNProjectGetFileByPathOnDisk(BNProject* project, const char* path); |
4181 | 4194 | BINARYNINJACOREAPI BNProjectFile** BNProjectGetFilesByPathInProject(BNProject* project, const char* path, size_t* count); |
| 4195 | + BINARYNINJACOREAPI BNProjectFile** BNProjectGetFilesInFolder(BNProject* project, BNProjectFolder* folder, size_t* count); |
4182 | 4196 |
|
4183 | 4197 | BINARYNINJACOREAPI bool BNProjectPushFile(BNProject* project, BNProjectFile* file); |
4184 | 4198 | BINARYNINJACOREAPI bool BNProjectDeleteFile(BNProject* project, BNProjectFile* file); |
@@ -4235,6 +4249,7 @@ extern "C" |
4235 | 4249 | BINARYNINJACOREAPI BNProject* BNProjectFolderGetProject(BNProjectFolder* folder); |
4236 | 4250 | BINARYNINJACOREAPI bool BNProjectFolderExport(BNProjectFolder* folder, const char* destination, void* ctxt, |
4237 | 4251 | BNProgressFunction progress); |
| 4252 | + BINARYNINJACOREAPI BNProjectFile** BNProjectFolderGetFiles(BNProjectFolder* folder, size_t* count); |
4238 | 4253 |
|
4239 | 4254 | // ExternalLibrary object |
4240 | 4255 | BINARYNINJACOREAPI BNExternalLibrary* BNNewExternalLibraryReference(BNExternalLibrary* lib); |
@@ -4445,6 +4460,7 @@ extern "C" |
4445 | 4460 | BINARYNINJACOREAPI bool BNIsOffsetCodeSemantics(BNBinaryView* view, uint64_t offset); |
4446 | 4461 | BINARYNINJACOREAPI bool BNIsOffsetExternSemantics(BNBinaryView* view, uint64_t offset); |
4447 | 4462 | BINARYNINJACOREAPI bool BNIsOffsetWritableSemantics(BNBinaryView* view, uint64_t offset); |
| 4463 | + BINARYNINJACOREAPI bool BNIsOffsetReadOnlySemantics(BNBinaryView* view, uint64_t offset); |
4448 | 4464 | BINARYNINJACOREAPI uint64_t BNGetNextValidOffset(BNBinaryView* view, uint64_t offset); |
4449 | 4465 |
|
4450 | 4466 | BINARYNINJACOREAPI uint64_t BNGetImageBase(BNBinaryView* view); |
@@ -4563,10 +4579,12 @@ extern "C" |
4563 | 4579 | BINARYNINJACOREAPI void BNAddAutoSection(BNBinaryView* view, const char* name, uint64_t start, uint64_t length, |
4564 | 4580 | BNSectionSemantics semantics, const char* type, uint64_t align, uint64_t entrySize, const char* linkedSection, |
4565 | 4581 | const char* infoSection, uint64_t infoData); |
| 4582 | + BINARYNINJACOREAPI void BNAddAutoSections(BNBinaryView* view, const BNSectionInfo* sectionInfo, size_t count); |
4566 | 4583 | BINARYNINJACOREAPI void BNRemoveAutoSection(BNBinaryView* view, const char* name); |
4567 | 4584 | BINARYNINJACOREAPI void BNAddUserSection(BNBinaryView* view, const char* name, uint64_t start, uint64_t length, |
4568 | 4585 | BNSectionSemantics semantics, const char* type, uint64_t align, uint64_t entrySize, const char* linkedSection, |
4569 | 4586 | const char* infoSection, uint64_t infoData); |
| 4587 | + BINARYNINJACOREAPI void BNAddUserSections(BNBinaryView* view, const BNSectionInfo* sectionInfo, size_t count); |
4570 | 4588 | BINARYNINJACOREAPI void BNRemoveUserSection(BNBinaryView* view, const char* name); |
4571 | 4589 | BINARYNINJACOREAPI BNSection** BNGetSections(BNBinaryView* view, size_t* count); |
4572 | 4590 | BINARYNINJACOREAPI BNSection** BNGetSectionsAt(BNBinaryView* view, uint64_t addr, size_t* count); |
@@ -5930,6 +5948,37 @@ extern "C" |
5930 | 5948 | BNAnalysisContext* analysisContext, BNHighLevelILFunction* highLevelIL); |
5931 | 5949 | BINARYNINJACOREAPI bool BNAnalysisContextInform(BNAnalysisContext* analysisContext, const char* request); |
5932 | 5950 |
|
| 5951 | + // Settings cache access |
| 5952 | + BINARYNINJACOREAPI bool BNAnalysisContextGetSettingBool(BNAnalysisContext* analysisContext, const char* key); |
| 5953 | + BINARYNINJACOREAPI double BNAnalysisContextGetSettingDouble(BNAnalysisContext* analysisContext, const char* key); |
| 5954 | + BINARYNINJACOREAPI int64_t BNAnalysisContextGetSettingInt64(BNAnalysisContext* analysisContext, const char* key); |
| 5955 | + BINARYNINJACOREAPI uint64_t BNAnalysisContextGetSettingUInt64(BNAnalysisContext* analysisContext, const char* key); |
| 5956 | + BINARYNINJACOREAPI char* BNAnalysisContextGetSettingString(BNAnalysisContext* analysisContext, const char* key); |
| 5957 | + BINARYNINJACOREAPI char** BNAnalysisContextGetSettingStringList(BNAnalysisContext* analysisContext, const char* key, size_t* count); |
| 5958 | + |
| 5959 | + // Memory map access |
| 5960 | + BINARYNINJACOREAPI bool BNAnalysisContextIsValidOffset(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5961 | + BINARYNINJACOREAPI bool BNAnalysisContextIsOffsetReadable(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5962 | + BINARYNINJACOREAPI bool BNAnalysisContextIsOffsetWritable(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5963 | + BINARYNINJACOREAPI bool BNAnalysisContextIsOffsetExecutable(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5964 | + BINARYNINJACOREAPI bool BNAnalysisContextIsOffsetBackedByFile(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5965 | + BINARYNINJACOREAPI bool BNAnalysisContextIsOffsetCodeSemantics(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5966 | + BINARYNINJACOREAPI bool BNAnalysisContextIsOffsetExternSemantics(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5967 | + BINARYNINJACOREAPI bool BNAnalysisContextIsOffsetWritableSemantics(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5968 | + BINARYNINJACOREAPI bool BNAnalysisContextIsOffsetReadOnlySemantics(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5969 | + BINARYNINJACOREAPI BNSection** BNAnalysisContextGetSections(BNAnalysisContext* analysisContext, size_t* count); |
| 5970 | + BINARYNINJACOREAPI BNSection* BNAnalysisContextGetSectionByName(BNAnalysisContext* analysisContext, const char* name); |
| 5971 | + BINARYNINJACOREAPI BNSection** BNAnalysisContextGetSectionsAt(BNAnalysisContext* analysisContext, uint64_t addr, size_t* count); |
| 5972 | + BINARYNINJACOREAPI uint64_t BNAnalysisContextGetStart(BNAnalysisContext* analysisContext); |
| 5973 | + BINARYNINJACOREAPI uint64_t BNAnalysisContextGetEnd(BNAnalysisContext* analysisContext); |
| 5974 | + BINARYNINJACOREAPI uint64_t BNAnalysisContextGetLength(BNAnalysisContext* analysisContext); |
| 5975 | + BINARYNINJACOREAPI uint64_t BNAnalysisContextGetNextValidOffset(BNAnalysisContext* analysisContext, uint64_t offset); |
| 5976 | + BINARYNINJACOREAPI uint64_t BNAnalysisContextGetNextMappedAddress(BNAnalysisContext* analysisContext, uint64_t addr, uint32_t flags); |
| 5977 | + BINARYNINJACOREAPI uint64_t BNAnalysisContextGetNextBackedAddress(BNAnalysisContext* analysisContext, uint64_t addr, uint32_t flags); |
| 5978 | + BINARYNINJACOREAPI BNSegment* BNAnalysisContextGetSegmentAt(BNAnalysisContext* analysisContext, uint64_t addr); |
| 5979 | + BINARYNINJACOREAPI BNAddressRange* BNAnalysisContextGetMappedAddressRanges(BNAnalysisContext* analysisContext, size_t* count); |
| 5980 | + BINARYNINJACOREAPI BNAddressRange* BNAnalysisContextGetBackedAddressRanges(BNAnalysisContext* analysisContext, size_t* count); |
| 5981 | + |
5933 | 5982 | // Activity |
5934 | 5983 | BINARYNINJACOREAPI BNActivity* BNCreateActivity(const char* configuration, void* ctxt, void (*action)(void*, BNAnalysisContext*)); |
5935 | 5984 | BINARYNINJACOREAPI BNActivity* BNCreateActivityWithEligibility(const char* configuration, void* ctxt, void (*action)(void*, BNAnalysisContext*), bool (*eligibilityHandler)(void*, BNActivity*, BNAnalysisContext*)); |
|
0 commit comments