Skip to content

Commit 5085822

Browse files
committed
Disassembly: Add relative to fixed base address mode
1 parent 7806681 commit 5085822

File tree

5 files changed

+19
-0
lines changed

5 files changed

+19
-0
lines changed

basicblock.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@ void DisassemblySettings::SetAddressMode(BNDisassemblyAddressMode mode)
102102
}
103103

104104

105+
uint64_t DisassemblySettings::GetAddressBaseOffset() const
106+
{
107+
return BNGetDisassemblyAddressBaseOffset(m_object);
108+
}
109+
110+
111+
void DisassemblySettings::SetAddressBaseOffset(uint64_t addressBaseOffset)
112+
{
113+
BNSetDisassemblyAddressBaseOffset(m_object, addressBaseOffset);
114+
}
115+
116+
105117
DisassemblyTextLine::DisassemblyTextLine()
106118
{
107119
addr = 0;

binaryninjaapi.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9722,6 +9722,8 @@ namespace BinaryNinja {
97229722
void SetGutterWidth(size_t width);
97239723
BNDisassemblyAddressMode GetAddressMode() const;
97249724
void SetAddressMode(BNDisassemblyAddressMode mode);
9725+
uint64_t GetAddressBaseOffset() const;
9726+
void SetAddressBaseOffset(uint64_t addressBaseOffset);
97259727
};
97269728

97279729
/*!

binaryninjacore.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,7 @@ extern "C"
708708
RelativeToSegmentStartDisassemblyAddressMode,
709709
RelativeToSectionStartDisassemblyAddressMode,
710710
RelativeToFunctionStartDisassemblyAddressMode,
711+
RelativeToAddressBaseOffsetDisassemblyAddressMode,
711712
DisassemblyAddressModeMask = 0xFFFF,
712713

713714
IncludeNameDisassemblyAddressModeFlag = 0x10000,
@@ -5079,6 +5080,8 @@ extern "C"
50795080
BINARYNINJACOREAPI void BNSetDisassemblyGutterWidth(BNDisassemblySettings* settings, size_t width);
50805081
BINARYNINJACOREAPI BNDisassemblyAddressMode BNGetDisassemblyAddressMode(BNDisassemblySettings* settings);
50815082
BINARYNINJACOREAPI void BNSetDisassemblyAddressMode(BNDisassemblySettings* settings, BNDisassemblyAddressMode mode);
5083+
BINARYNINJACOREAPI uint64_t BNGetDisassemblyAddressBaseOffset(BNDisassemblySettings* settings);
5084+
BINARYNINJACOREAPI void BNSetDisassemblyAddressBaseOffset(BNDisassemblySettings* settings, uint64_t addressBaseOffset);
50825085

50835086
// Flow graphs
50845087
BINARYNINJACOREAPI BNFlowGraph* BNCreateFlowGraph(void);

ui/disassemblyview.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class BINARYNINJAUIAPI DisassemblyView : public FlowGraphWidget
7878
void toggleOption(BNDisassemblyOption option);
7979
void setAddressMode(std::optional<BNDisassemblyAddressMode> mode, std::optional<bool> hex, std::optional<bool> withName);
8080
void setDisplayedFileName();
81+
void setAddressBaseOffset(bool toHere);
8182

8283
virtual DisassemblySettingsRef getDisassemblySettings() override;
8384
virtual void setDisassemblySettings(DisassemblySettingsRef settings) override;

ui/linearview.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,7 @@ private Q_SLOTS:
481481
void toggleOption(BNDisassemblyOption option);
482482
void setAddressMode(std::optional<BNDisassemblyAddressMode> mode, std::optional<bool> hex, std::optional<bool> withName);
483483
void setDisplayedFileName();
484+
void setAddressBaseOffset(bool toHere);
484485

485486
virtual bool goToReference(FunctionRef func, uint64_t source, uint64_t target) override;
486487
QFont getFont() override { return m_render.getFont(); }

0 commit comments

Comments
 (0)