MCPcopy Index your code
hub / github.com/qilingframework/qiling / StringTable

Class StringTable

qiling/loader/macho_parser/data.py:119–139  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

117
118import bisect
119class StringTable:
120 def __init__(self, lc, data):
121 self.offset = lc.string_table_offset
122 self.size = lc.string_table_size
123 self.content = data[self.offset : self.offset + self.size]
124 tmp_table = self.content.split(b'\0')
125 self.table = []
126 str_offset = 0
127 for s in tmp_table:
128 self.table.append((s, str_offset))
129 str_offset += len(s) + 1
130 self.str_off = [x[1] for x in self.table]
131
132 def __getitem__(self, key):
133 i = bisect.bisect_left(self.str_off, key)
134 if i != len(self.str_off) and self.str_off[i] == key:
135 return self.table[i][0]
136 raise ValueError
137
138 # def __str__(self):
139 # return (" StringTable: content {}".format(self.content))
140
141
142class DataInCode:

Callers 1

parseDataMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected