diff options
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 105 |
1 files changed, 76 insertions, 29 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index f7362240..e0fbfb50 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -4218,11 +4218,6 @@ namespace BinaryNinja { uint32_t GetFlags() const; bool IsAutoDefined() const; - std::vector<std::pair<uint64_t, uint64_t>> GetRelocationRanges() const; - std::vector<std::pair<uint64_t, uint64_t>> GetRelocationRangesAtAddress(uint64_t addr) const; - std::vector<Ref<Relocation>> GetRelocationsInRange(uint64_t addr, uint64_t size) const; - uint64_t GetRelocationsCount() const; - void SetLength(uint64_t length); void SetDataOffset(uint64_t dataOffset); void SetDataLength(uint64_t dataLength); @@ -4823,7 +4818,29 @@ namespace BinaryNinja { */ uint64_t GetNextValidOffset(uint64_t offset) const; + /*! GetImageBase queries for the image base in the BinaryView + + \return the image base of the BinaryView + */ + uint64_t GetImageBase() const; + + /*! GetOriginalImageBase queries for the original image base in the BinaryView, unaffected by any rebasing operations + + \return the original image base of the BinaryView + */ + uint64_t GetOriginalImageBase() const; + + /*! SetOriginalBase sets the original image base in the BinaryView, unaffected by any rebasing operations. + * This is only intended to be used by Binary View implementations to provide this value. Regular users should + * NOT change this value. + + \param imageBase the original image base of the binary view + */ + void SetOriginalImageBase(uint64_t imageBase); + + /*! GetOriginalBase queries for the original image base in the BinaryView, unaffected by any rebasing operations + \deprecated This API has been deprecated in favor of GetOriginalImageBase in 4.0.xxxx \return the original image base of the BinaryView */ @@ -4832,6 +4849,7 @@ namespace BinaryNinja { /*! SetOriginalBase sets the original image base in the BinaryView, unaffected by any rebasing operations. * This is only intended to be used by Binary View implementations to provide this value. Regular users should * NOT change this value. + \deprecated This API has been deprecated in favor of SetOriginalImageBase in 4.0.xxxx \param base the original image base of the binary view */ @@ -4926,6 +4944,7 @@ namespace BinaryNinja { void DefineRelocation(Architecture* arch, BNRelocationInfo& info, Ref<Symbol> target, uint64_t reloc); std::vector<std::pair<uint64_t, uint64_t>> GetRelocationRanges() const; std::vector<std::pair<uint64_t, uint64_t>> GetRelocationRangesAtAddress(uint64_t addr) const; + std::vector<std::pair<uint64_t, uint64_t>> GetRelocationRangesInRange(uint64_t addr, size_t size) const; bool RangeContainsRelocation(uint64_t addr, size_t size) const; std::vector<Ref<Relocation>> GetRelocationsAt(uint64_t addr) const; @@ -6499,6 +6518,25 @@ namespace BinaryNinja { */ std::vector<std::string> GetUniqueSectionNames(const std::vector<std::string>& names); + /*! Get the list of allocated ranges + \deprecated This API has been deprecated in favor of GetMappedAddressRanges in 4.0.xxxx + + \return The list of allocated ranges + */ + std::vector<BNAddressRange> GetAllocatedRanges(); + + /*! Get the list of ranges mapped into the address space + + \return The list of mapped ranges + */ + std::vector<BNAddressRange> GetMappedAddressRanges(); + + /*! Get the list of ranges that are mapped into the address space and are backed by a target object + + \return The list of backed ranges + */ + std::vector<BNAddressRange> GetBackedAddressRanges(); + /*! Get the comment placed at an address \param addr Address at which to check for a comment @@ -6519,12 +6557,6 @@ namespace BinaryNinja { */ void SetCommentForAddress(uint64_t addr, const std::string& comment); - /*! Get the list of allocated ranges - - \return The list of allocated ranges - */ - std::vector<BNAddressRange> GetAllocatedRanges(); - void StoreMetadata(const std::string& key, Ref<Metadata> value, bool isAuto = false); Ref<Metadata> QueryMetadata(const std::string& key); void RemoveMetadata(const std::string& key); @@ -6704,19 +6736,19 @@ namespace BinaryNinja { MemoryMap(BNBinaryView* view): m_object(view) {} ~MemoryMap() = default; - bool AddBinaryMemoryRegion(const std::string& name, uint64_t start, Ref<BinaryView> source) + bool AddBinaryMemoryRegion(const std::string& name, uint64_t start, Ref<BinaryView> source, uint32_t flags = 0) { - return BNAddBinaryMemoryRegion(m_object, name.c_str(), start, source->GetObject()); + return BNAddBinaryMemoryRegion(m_object, name.c_str(), start, source->GetObject(), flags); } - bool AddDataMemoryRegion(const std::string& name, uint64_t start, const DataBuffer& source) + bool AddDataMemoryRegion(const std::string& name, uint64_t start, const DataBuffer& source, uint32_t flags = 0) { - return BNAddDataMemoryRegion(m_object, name.c_str(), start, source.GetBufferObject()); + return BNAddDataMemoryRegion(m_object, name.c_str(), start, source.GetBufferObject(), flags); } - bool AddRemoteMemoryRegion(const std::string& name, uint64_t start, FileAccessor* source) + bool AddRemoteMemoryRegion(const std::string& name, uint64_t start, FileAccessor* source, uint32_t flags = 0) { - return BNAddRemoteMemoryRegion(m_object, name.c_str(), start, source->GetCallbacks()); + return BNAddRemoteMemoryRegion(m_object, name.c_str(), start, source->GetCallbacks(), flags); } bool RemoveMemoryRegion(const std::string& name) @@ -6724,19 +6756,37 @@ namespace BinaryNinja { return BNRemoveMemoryRegion(m_object, name.c_str()); } - bool IsMemoryRegionEnabled(const std::string& name, uint64_t start) + std::string GetActiveMemoryRegionAt(uint64_t addr) + { + char* name = BNGetActiveMemoryRegionAt(m_object, addr); + std::string result = name; + BNFreeString(name); + return result; + } + + bool IsMemoryRegionEnabled(const std::string& name) + { + return BNIsMemoryRegionEnabled(m_object, name.c_str()); + } + + bool SetMemoryRegionEnabled(const std::string& name, bool enabled) + { + return BNSetMemoryRegionEnabled(m_object, name.c_str(), enabled); + } + + bool IsMemoryRegionRebaseable(const std::string& name) { - return BNIsMemoryRegionEnabled(m_object, name.c_str(), start); + return BNIsMemoryRegionRebaseable(m_object, name.c_str()); } - bool SetMemoryRegionEnabled(const std::string& name, uint64_t start, bool enabled) + bool SetMemoryRegionRebaseable(const std::string& name, bool rebaseable) { - return BNSetMemoryRegionEnabled(m_object, name.c_str(), start, enabled); + return BNSetMemoryRegionRebaseable(m_object, name.c_str(), rebaseable); } - bool SetMemoryRegionFill(const std::string& name, uint64_t start, uint8_t fill) + bool SetMemoryRegionFill(const std::string& name, uint8_t fill) { - return BNSetMemoryRegionFill(m_object, name.c_str(), start, fill); + return BNSetMemoryRegionFill(m_object, name.c_str(), fill); } void Reset() @@ -8111,16 +8161,13 @@ namespace BinaryNinja { // These three binary view type constant APIs are deprecated and should no longer be used. Their implementations // have been removed, and they now have no effects. - /*! \deprecated This API has been deprecated. The implementation has been removed, and this function no - longer has any effect + /*! \deprecated This API has been deprecated. The implementation has been removed, and this function no longer has any effect */ bool IsBinaryViewTypeConstantDefined(const std::string& type, const std::string& name); - /*! \deprecated This API has been deprecated. The implementation has been removed, and this function no - longer has any effect + /*! \deprecated This API has been deprecated. The implementation has been removed, and this function no longer has any effect */ uint64_t GetBinaryViewTypeConstant(const std::string& type, const std::string& name, uint64_t defaultValue = 0); - /*! \deprecated This API has been deprecated. The implementation has been removed, and this function no - longer has any effect + /*! \deprecated This API has been deprecated. The implementation has been removed, and this function no longer has any effect */ void SetBinaryViewTypeConstant(const std::string& type, const std::string& name, uint64_t value); |
