diff options
| author | Glenn Smith <glenn@vector35.com> | 2024-05-08 18:09:33 -0400 |
|---|---|---|
| committer | Glenn Smith <glenn@vector35.com> | 2024-05-08 18:33:58 -0400 |
| commit | 5085822747449420649264534611187762443099 (patch) | |
| tree | 702006136d70a5fcc9cb35c0505b6e6557f953a5 | |
| parent | 7806681792158827908432430454031547770521 (diff) | |
Disassembly: Add relative to fixed base address mode
| -rw-r--r-- | basicblock.cpp | 12 | ||||
| -rw-r--r-- | binaryninjaapi.h | 2 | ||||
| -rw-r--r-- | binaryninjacore.h | 3 | ||||
| -rw-r--r-- | ui/disassemblyview.h | 1 | ||||
| -rw-r--r-- | ui/linearview.h | 1 |
5 files changed, 19 insertions, 0 deletions
diff --git a/basicblock.cpp b/basicblock.cpp index 0ca4ad00..b7912c47 100644 --- a/basicblock.cpp +++ b/basicblock.cpp @@ -102,6 +102,18 @@ void DisassemblySettings::SetAddressMode(BNDisassemblyAddressMode mode) } +uint64_t DisassemblySettings::GetAddressBaseOffset() const +{ + return BNGetDisassemblyAddressBaseOffset(m_object); +} + + +void DisassemblySettings::SetAddressBaseOffset(uint64_t addressBaseOffset) +{ + BNSetDisassemblyAddressBaseOffset(m_object, addressBaseOffset); +} + + DisassemblyTextLine::DisassemblyTextLine() { addr = 0; diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 9d4a3ae6..4d5a90ee 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -9722,6 +9722,8 @@ namespace BinaryNinja { void SetGutterWidth(size_t width); BNDisassemblyAddressMode GetAddressMode() const; void SetAddressMode(BNDisassemblyAddressMode mode); + uint64_t GetAddressBaseOffset() const; + void SetAddressBaseOffset(uint64_t addressBaseOffset); }; /*! diff --git a/binaryninjacore.h b/binaryninjacore.h index 5609d72b..010cf681 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -708,6 +708,7 @@ extern "C" RelativeToSegmentStartDisassemblyAddressMode, RelativeToSectionStartDisassemblyAddressMode, RelativeToFunctionStartDisassemblyAddressMode, + RelativeToAddressBaseOffsetDisassemblyAddressMode, DisassemblyAddressModeMask = 0xFFFF, IncludeNameDisassemblyAddressModeFlag = 0x10000, @@ -5079,6 +5080,8 @@ extern "C" BINARYNINJACOREAPI void BNSetDisassemblyGutterWidth(BNDisassemblySettings* settings, size_t width); BINARYNINJACOREAPI BNDisassemblyAddressMode BNGetDisassemblyAddressMode(BNDisassemblySettings* settings); BINARYNINJACOREAPI void BNSetDisassemblyAddressMode(BNDisassemblySettings* settings, BNDisassemblyAddressMode mode); + BINARYNINJACOREAPI uint64_t BNGetDisassemblyAddressBaseOffset(BNDisassemblySettings* settings); + BINARYNINJACOREAPI void BNSetDisassemblyAddressBaseOffset(BNDisassemblySettings* settings, uint64_t addressBaseOffset); // Flow graphs BINARYNINJACOREAPI BNFlowGraph* BNCreateFlowGraph(void); diff --git a/ui/disassemblyview.h b/ui/disassemblyview.h index 74dcb2fe..80f767bc 100644 --- a/ui/disassemblyview.h +++ b/ui/disassemblyview.h @@ -78,6 +78,7 @@ class BINARYNINJAUIAPI DisassemblyView : public FlowGraphWidget void toggleOption(BNDisassemblyOption option); void setAddressMode(std::optional<BNDisassemblyAddressMode> mode, std::optional<bool> hex, std::optional<bool> withName); void setDisplayedFileName(); + void setAddressBaseOffset(bool toHere); virtual DisassemblySettingsRef getDisassemblySettings() override; virtual void setDisassemblySettings(DisassemblySettingsRef settings) override; diff --git a/ui/linearview.h b/ui/linearview.h index 476645b9..8223c515 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -481,6 +481,7 @@ public: void toggleOption(BNDisassemblyOption option); void setAddressMode(std::optional<BNDisassemblyAddressMode> mode, std::optional<bool> hex, std::optional<bool> withName); void setDisplayedFileName(); + void setAddressBaseOffset(bool toHere); virtual bool goToReference(FunctionRef func, uint64_t source, uint64_t target) override; QFont getFont() override { return m_render.getFont(); } |
