@@ -175,6 +175,23 @@ def print_dylinker(binary):
175
175
print ("Path: {}" .format (binary .dylinker .name ))
176
176
177
177
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
+
178
195
def main ():
179
196
parser = argparse .ArgumentParser (usage = '%(prog)s [options] <macho-file>' )
180
197
parser .add_argument ('-a' , '--all' ,
@@ -265,6 +282,9 @@ def main():
265
282
if (args .show_dylinker or args .show_all ) and binary .has_dylinker :
266
283
print_dylinker (binary )
267
284
285
+ if (args .show_dyldinfo or args .show_all ) and binary .has_dyld_info :
286
+ print_dyld_info (binary )
287
+
268
288
269
289
if __name__ == "__main__" :
270
290
main ()
0 commit comments