iPhone Mach-O バイナリ ファイルから定数 (または初期化) 文字列を読み取ろうとしています。関連する 3 つの segment.sections が _TEXT であることを理解しています。_cstring_TEXT . _ustring および _DATA 。_cfstring. ただし、抽出したこれら 3 つのデータ ブロックに文字列情報が格納されていることはわかっていますが、意味がわかりません。すべてゴミのように見えます。認識可能な文字列は見当たりません。誰かがこれに光を当てて、文字列データを読み取るために必要な手順を教えてもらえますか?
私はいくつかのコード ( http://llvm.org/svn/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cppの GetAddrOfConstantCFString() ) を見てきましたが、それを私が何に関連付けることができませんでした。バイナリで参照してください。
私の場合、問題のセクションのサイズは次のとおりです。
__TEXT.__cstring (99 K-bytes)
__TEXT.__ustring (<200 bytes)
__DATA.__cfstring (29 K-bytes)
参考までに、実際の文字列を含む __cfstring セクションの最初の 32 バイトは次のようになります。
_DATA をダンプします。_cfstring
00 00 00 00 c8 07 00 00 74 02 0d 00 15 00 00 00
00 00 00 00 c8 07 00 00 8c 02 0d 00 01 00 00 00
...
助けてくれてどうもありがとう!