2009-08-09 15 views
2

En utilisant Mac OS X 10.5, j'essaie de comprendre comment utiliser dtrace pour suivre l'exécution d'un binaire Mach-O. Cependant, il semble que les symboles aient tous été supprimés, de sorte que toute tentative de mise en place de sondes basées sur des noms de classe/méthode internes échoue.Reconstruire des symboles extraits du binaire Mach-O

J'ai pu utiliser class-dump pour vider les classes, les noms de méthodes et l'adresse à laquelle ils sont implémentés, donc je suppose que vous pouvez utiliser cela pour reconstruire les symboles dans le binaire. Est-ce possible, et si oui, quelqu'un connaît-il des outils qui pourraient l'aider ou des documents de lecture qui pourraient m'aider à mieux le comprendre?

Ceci est ma première tentative de travailler avec des binaires à ce niveau, donc toute aide serait appréciée.

+0

Comment avez-vous utilisé les sondes? Avez-vous essayé le fournisseur 'objc'? – 0xced

Répondre

0

Non, ce n'est pas possible. Lorsque les symboles sont supprimés, les informations sont perdues là où le code de chaque méthode commence exactement. Vous devrez démonter le code pour reconstruire cette information. Si vous savez simplement quelles sont les méthodes de chaque classe, vous ne savez toujours pas où elles se trouvent dans le code, ce dont dtrace a besoin.

+0

En fait, j'ai les adresses d'implémentation des méthodes et des classes. Un petit utilitaire bien nommé appelé class-dump comme je l'ai mentionné ci-dessus. – chrisbdaemon