2

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

class-dumpを使用して、クラス、メソッド名、およびそれらが実装されているアドレスをダンプすることができたので、それを使用してバイナリのシンボルを再構築できると思います。それも可能ですか?もしそうなら、誰かがそれを助けるかもしれないツールや私がそれをよりよく理解するのを助けるいくつかの読み物を知っていますか?

これは、このレベルでバイナリを操作する最初の試みなので、助けていただければ幸いです。

4

2 に答える 2

1

gdbで使用するObjective-Cシンボルを再構築することは可能です。クラスダンプ情報をGDBにインポートするの私の答えを参照してください。

于 2015-03-11T12:47:09.390 に答える
0

いいえ、できません。シンボルが削除されると、各メソッドのコードが正確に開始される場所の情報が失われます。この情報を再構築するには、コードを分解する必要があります。各クラスのメソッドが何であるかを単に知っているだけでも、それらがコード内のどこにあるかはわかりません。これは、dtraceが必要とするものです。

于 2009-08-09T23:54:18.083 に答える