MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / SegmentsWidget

Method SegmentsWidget

examples/triage/sections.cpp:10–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8
9
10SegmentsWidget::SegmentsWidget(QWidget* parent, BinaryViewRef data) : QWidget(parent)
11{
12 QGridLayout* layout = new QGridLayout();
13 layout->setContentsMargins(0, 0, 0, 0);
14 layout->setVerticalSpacing(1);
15 layout->setHorizontalSpacing(UIContext::getScaledWindowSize(16, 16).width());
16
17 for (auto& segment : data->GetSegments())
18 if ((segment->GetFlags() & (SegmentReadable | SegmentWritable | SegmentExecutable)) != 0)
19 m_segments.push_back(segment);
20 sort(m_segments.begin(), m_segments.end(),
21 [&](SegmentRef a, SegmentRef b) { return a->GetStart() < b->GetStart(); });
22
23 int row = 0;
24 for (auto& segment : m_segments)
25 {
26 QString begin = QString("0x") + QString::number(segment->GetStart(), 16);
27 QString end = QString("0x") + QString::number(segment->GetEnd(), 16);
28
29 QString permissions;
30 if (segment->GetFlags() & SegmentReadable)
31 permissions += "r";
32 else
33 permissions += "-";
34 if (segment->GetFlags() & SegmentWritable)
35 permissions += "w";
36 else
37 permissions += "-";
38 if (segment->GetFlags() & SegmentExecutable)
39 permissions += "x";
40 else
41 permissions += "-";
42
43 QHBoxLayout* rangeLayout = new QHBoxLayout();
44 rangeLayout->setContentsMargins(0, 0, 0, 0);
45 NavigationAddressLabel* beginLabel = new NavigationAddressLabel(begin);
46 QLabel* dashLabel = new QLabel("-");
47 dashLabel->setFont(getMonospaceFont(this));
48 NavigationAddressLabel* endLabel = new NavigationAddressLabel(end);
49 rangeLayout->addWidget(beginLabel);
50 rangeLayout->addWidget(dashLabel);
51 rangeLayout->addWidget(endLabel);
52 layout->addLayout(rangeLayout, row, 0);
53
54 QLabel* permissionsLabel = new QLabel(permissions);
55 permissionsLabel->setFont(getMonospaceFont(this));
56 layout->addWidget(permissionsLabel, row, 1);
57
58 row++;
59 }
60
61 layout->setColumnStretch(2, 1);
62 setLayout(layout);
63}
64
65
66SectionsWidget::SectionsWidget(QWidget* parent, BinaryViewRef data) : QWidget(parent)

Callers 1

__init__Method · 0.80

Calls 8

GetSegmentsMethod · 0.80
push_backMethod · 0.80
widthMethod · 0.45
GetFlagsMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
GetStartMethod · 0.45
GetEndMethod · 0.45

Tested by

no test coverage detected