ソースコードを持っていないiOSアプリケーションをデバッグしていますが、それは削除されたバイナリであるため、使用できるシンボルがありません。したがって、IDA とクラスダンプを利用して、アドレスを使用して bps を設定します。特定のメソッドの戻り値またはパラメーターを本当に理解できない状況に陥りました。パラメーターは $r2 レジスター上にあるはずであり、メソッドの戻り値は $r0 にあることを知っています。
NSData* ポインターを返す subDataWithRange メソッドを見てみましょう。もちろん、「po pointer_addr」を実行することはできません。シンボルがないため、gdb が失敗するからです。というわけで、自分なりに内容を調べてみました。取得する必要があるバイトについてはかなり確信がありますが、ポインターを取得しますが、「x/20x $r0」などを実行してその内容を調べると、意味のあるバイトが表示されません。
したがって、メモリ内の生のバイトに表示される NSData* オブジェクトと NSString などの他の ios オブジェクトの構造についてお尋ねしたいと思います。構造はどのようなものですか?私が見つけられなかった構造内のどこかに、返されたバイトを実際に指しているポインタがありますか?