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

Method __init__

python/examples/triage/byte.py:25–117  ·  view source on GitHub ↗
(self, parent, data)

Source from the content-addressed store, hash-verified

23
24class ByteView(QAbstractScrollArea, View):
25 def __init__(self, parent, data):
26 QAbstractScrollArea.__init__(self, parent)
27 View.__init__(self)
28 View.setBinaryDataNavigable(self, True)
29 self.setupView(self)
30 self.data = data
31 self.byte_mapping = [
32 u' ', u'☺', u'☻', u'♥', u'♦', u'♣', u'♠', u'•', u'◘', u'○', u'◙', u'♂', u'♀', u'♪', u'♫', u'☼',
33 u'▸', u'◂', u'↕', u'‼', u'¶', u'§', u'▬', u'↨', u'↑', u'↓', u'→', u'←', u'∟', u'↔', u'▴', u'▾',
34 u' ', u'!', u'"', u'#', u'$', u'%', u'&', u'\'', u'(', u')', u'*', u'+', u',', u'-', u'.', u'/',
35 u'0', u'1', u'2', u'3', u'4', u'5', u'6', u'7', u'8', u'9', u':', u';', u'<', u'=', u'>', u'?',
36 u'@', u'A', u'B', u'C', u'D', u'E', u'F', u'G', u'H', u'I', u'J', u'K', u'L', u'M', u'N', u'O',
37 u'P', u'Q', u'R', u'S', u'T', u'U', u'V', u'W', u'X', u'Y', u'Z', u'[', u'\\', u']', u'^', u'_',
38 u'`', u'a', u'b', u'c', u'd', u'e', u'f', u'g', u'h', u'i', u'j', u'k', u'l', u'm', u'n', u'o',
39 u'p', u'q', u'r', u's', u't', u'u', u'v', u'w', u'x', u'y', u'z', u'{', u'|', u'}', u'~', u'⌂',
40 u'Ç', u'ü', u'é', u'â', u'ä', u'à', u'å', u'ç', u'ê', u'ë', u'è', u'ï', u'î', u'ì', u'Ä', u'Å',
41 u'É', u'æ', u'Æ', u'ô', u'ö', u'ò', u'û', u'ù', u'ÿ', u'Ö', u'Ü', u'¢', u'£', u'¥', u'₧', u'ƒ',
42 u'á', u'í', u'ó', u'ú', u'ñ', u'Ñ', u'ª', u'º', u'¿', u'⌐', u'¬', u'½', u'¼', u'¡', u'«', u'»',
43 u'░', u'▒', u'▓', u'│', u'┤', u'╡', u'╢', u'╖', u'╕', u'╣', u'║', u'╗', u'╝', u'╜', u'╛', u'┐',
44 u'└', u'┴', u'┬', u'├', u'─', u'┼', u'╞', u'╟', u'╚', u'╔', u'╩', u'╦', u'╠', u'═', u'╬', u'╧',
45 u'╨', u'╤', u'╥', u'╙', u'╘', u'╒', u'╓', u'╫', u'╪', u'┘', u'┌', u'█', u'▄', u'▌', u'▐', u'▀',
46 u'α', u'ß', u'Γ', u'π', u'Σ', u'σ', u'µ', u'τ', u'Φ', u'Θ', u'Ω', u'δ', u'∞', u'φ', u'ε', u'∩',
47 u'≡', u'±', u'≥', u'≤', u'⌠', u'⌡', u'÷', u'≈', u'°', u'∙', u'·', u'√', u'ⁿ', u'²', u'■', u' '
48 ]
49
50 self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
51 self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
52 self.setFocusPolicy(Qt.StrongFocus)
53
54 self.cursorAddr = self.data.start
55 self.prevCursorAddr = self.cursorAddr
56 self.selectionStartAddr = self.cursorAddr
57 self.topAddr = self.cursorAddr
58 self.topLine = 0
59 self.selectionVisible = False
60 self.caretVisible = False
61 self.caretBlink = True
62 self.leftButtonDown = False
63 self.cols = 128
64 self.updatesRequired = False
65 self.visibleRows = 1
66 self.lines = []
67
68 self.updateRanges()
69
70 areaSize = self.viewport().size()
71 self.adjustSize(areaSize.width(), areaSize.height())
72
73 if self.allocatedLength > 0x7fffffff:
74 self.scrollBarMultiplier = (self.allocatedLength // 0x7fffffff) + 1
75 else:
76 self.scrollBarMultiplier = 1
77 self.wheelDelta = 0
78 self.updatingScrollBar = False
79 self.verticalScrollBar().setRange(0, (self.allocatedLength - 1) // self.scrollBarMultiplier)
80 self.verticalScrollBar().sliderMoved.connect(self.scrollBarMoved)
81 self.verticalScrollBar().actionTriggered.connect(self.scrollBarAction)
82

Callers 1

__init__Method · 0.45

Calls 15

updateRangesMethod · 0.95
adjustSizeMethod · 0.95
upMethod · 0.95
downMethod · 0.95
leftMethod · 0.95
rightMethod · 0.95
pageUpMethod · 0.95
pageDownMethod · 0.95
moveToStartOfLineMethod · 0.95
moveToEndOfLineMethod · 0.95
moveToStartOfViewMethod · 0.95
moveToEndOfViewMethod · 0.95

Tested by

no test coverage detected