summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2018-06-29 16:54:48 -0400
committerPeter LaFosse <peter@vector35.com>2018-06-29 16:54:48 -0400
commit635c06c68ec72e579573f87ab86996b5952bf853 (patch)
treecd6a95bc6066f3bfb534611be7db614b3886e131 /binaryninjacore.h
parentd0c07251a780ca3b638b2cdff0afa00c92aea421 (diff)
Add api for querying relocation
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 73ccbd4d..f2384f85 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1800,6 +1800,12 @@ extern "C"
AlwaysSkipFunctionAnalysis
};
+ struct BNRange
+ {
+ uint64_t start;
+ uint64_t end;
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
BINARYNINJACOREAPI char** BNAllocStringList(const char** contents, size_t size);
@@ -1996,6 +2002,9 @@ extern "C"
uint64_t target, uint64_t reloc);
BINARYNINJACOREAPI void BNDefineSymbolRelocation(BNBinaryView* view, BNArchitecture* arch, BNRelocationInfo* info,
BNSymbol* target, uint64_t reloc);
+ BINARYNINJACOREAPI BNRange* BNGetRelocationRanges(BNBinaryView* segment, size_t* count);
+ BINARYNINJACOREAPI BNRange* BNGetRelocationRangesAtAddress(BNBinaryView* segment, uint64_t addr, size_t* count);
+
BINARYNINJACOREAPI void BNRegisterDataNotification(BNBinaryView* view, BNBinaryDataNotification* notify);
BINARYNINJACOREAPI void BNUnregisterDataNotification(BNBinaryView* view, BNBinaryDataNotification* notify);
@@ -3522,6 +3531,11 @@ extern "C"
bool autoDefined);
BINARYNINJACOREAPI BNSegment* BNNewSegmentReference(BNSegment* seg);
BINARYNINJACOREAPI void BNFreeSegment(BNSegment* seg);
+
+ BINARYNINJACOREAPI BNRange* BNSegmentGetRelocationRanges(BNSegment* segment, size_t* count);
+ BINARYNINJACOREAPI uint64_t BNSegmentGetRelocationsCount(BNSegment* segment);
+ BINARYNINJACOREAPI BNRange* BNSegmentGetRelocationRangesAtAddress(BNSegment* segment, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI void BNFreeRelocationRanges(BNRange* ranges);
BINARYNINJACOREAPI uint64_t BNSegmentGetStart(BNSegment* segment);
BINARYNINJACOREAPI uint64_t BNSegmentGetLength(BNSegment* segment);
BINARYNINJACOREAPI uint64_t BNSegmentGetEnd(BNSegment* segment);