Skip to content

Commit f7cc518

Browse files
committed
Add dyld info to macho_reader
1 parent 3cd5e6b commit f7cc518

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

examples/python/macho_reader.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,23 @@ def print_dylinker(binary):
175175
print("Path: {}".format(binary.dylinker.name))
176176

177177

178+
def print_dyld_info(binary):
179+
print("== Dyld Info ==")
180+
f_title = "|{:<12}|{:<11}|{:<11}|"
181+
f_value = "|{:<12}|0x{:<8x} |0x{:<8x} |"
182+
183+
dyld_info = binary.dyld_info
184+
185+
print(f_title.format("Type", "Offset", "Size"))
186+
print(f_value.format("Rebase", dyld_info.rebase[0], dyld_info.rebase[1]))
187+
print(f_value.format("Bind", dyld_info.bind[0], dyld_info.bind[1]))
188+
print(f_value.format("Weak Bind", dyld_info.weak_bind[0], dyld_info.weak_bind[1]))
189+
print(f_value.format("Lazy Bind", dyld_info.lazy_bind[0], dyld_info.lazy_bind[1]))
190+
print(f_value.format("Export", dyld_info.export_info[0], dyld_info.export_info[1]))
191+
192+
193+
print("")
194+
178195
def main():
179196
parser = argparse.ArgumentParser(usage='%(prog)s [options] <macho-file>')
180197
parser.add_argument('-a', '--all',
@@ -265,6 +282,9 @@ def main():
265282
if (args.show_dylinker or args.show_all) and binary.has_dylinker:
266283
print_dylinker(binary)
267284

285+
if (args.show_dyldinfo or args.show_all) and binary.has_dyld_info:
286+
print_dyld_info(binary)
287+
268288

269289
if __name__ == "__main__":
270290
main()

0 commit comments

Comments
 (0)