2009-08-09 16 views
2

Mac OS X 10.5を使用して、Mach-Oバイナリの実行を追跡するためにdtraceを使用する方法を理解しようとしています。しかし、シンボルはすべて削除されているので、内部クラス/メソッド名に基づいてプローブを使用しようとする試みは失敗します。Mach-Oバイナリからシンボルを再構築する

class-dumpを使用してクラス、メソッド名、実装されているアドレスをダンプすることができましたので、バイナリでシンボルを再構築するために使用することができます。それは可能なのでしょうか?そうであれば、誰かがそれを助けるかもしれないツールや私がそれをよく理解するのに役立ついくつかの読書資料を知っていますか?

これは、このレベルでバイナリを扱う私の最初の試みであり、どんな助けにも感謝します。

+0

どのようにプローブを使用しましたか?あなたは 'objc'プロバイダを試しましたか? – 0xced

答えて

0

いいえ、不可能です。シンボルが削除されると、各メソッドのコードが正確に開始されるところで情報が失われます。この情報を再構築するには、コードを逆アセンブルする必要があります。各クラスのメソッドが何であるかを単に知っていれば、dtraceが必要とする、コード内のどこに位置しているのかまだ分かりません。

+0

実際には、メソッドとクラスの実装アドレスがあります。上記のようにclass-dumpと呼ばれるきれいな小さなユーティリティ。 – chrisbdaemon

関連する問題