MCPcopy Create free account
hub / github.com/qilingframework/qiling / DySymbolTable

Class DySymbolTable

qiling/loader/macho_parser/data.py:199–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

197
198
199class DySymbolTable:
200 # TODO: finish parser
201 def __init__(self, lc, data):
202 self.locsymbol_index = lc.locsymbol_index
203 self.locsymbol_num = lc.locsymbol_number
204 self.defext_index = lc.defined_extsymbol_index
205 self.defext_num = lc.defined_extsymbol_number
206 self.undefext_index = lc.undef_extsymbol_index
207 self.undefext_num = lc.undef_extsymbol_number
208 self.indsym_offset = lc.indsym_table_offset
209 self.indsym_num = lc.indsym_table_entries
210 self.indirect_symbols = []
211 self.extreloc_offset = lc.extreloc_table_offset
212 self.extreloc_num = lc.extreloc_table_entries
213 self.extreloc = []
214 self.locreloc_offset = lc.locreloc_table_offset
215 self.locreloc_num = lc.locreloc_table_entries
216 self.locreloc = []
217
218 if self.indsym_num:
219 slide = 0
220 for i in range(self.indsym_num):
221 self.indirect_symbols.append(unpack("<L", data[self.indsym_offset + slide : self.indsym_offset + slide + 4]))
222 slide += 4
223
224 if self.extreloc_num:
225 slide = 0
226 for i in range(self.extreloc_num):
227 self.extreloc.append(Relocation64(data[self.extreloc_offset + slide : self.extreloc_offset + slide + 8]))
228 slide += 8
229
230 if self.locreloc_num:
231 slide = 0
232 for i in range(self.locreloc_num):
233 self.locreloc.append(Relocation64(data[self.locreloc_offset + slide : self.locreloc_offset + slide + 8]))
234 slide += 8
235
236 def __str__(self):
237 pass

Callers 1

parseDataMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected