Я пытаюсь прочитать постоянные (или инициализационные) строки из двоичного файла iPhone Mach-O. Я понимаю, что 3 соответствующих сегмента. Секции - это _ ТЕКСТ. _cstring _ ТЕКСТ. _ustring и _ ДАННЫЕ. _cfstring. Однако, хотя я знаю, что строковая информация хранится в этих трех блоках данных, которые я извлек, я не могу понять это, и все это выглядит как мусор - я не вижу никаких узнаваемых символьных строк. Может ли кто-нибудь пролить свет на это и дать мне представление о том, какие шаги необходимо предпринять для чтения строковых данных?
Я просмотрел некоторый код (GetAddrOfConstantCFString () из http://llvm.org// svn / llvm-project / cfe / trunk / lib / CodeGen / CodeGenModule.cpp ), но, опять же, не мог полностью связать это с тем, что я вижу в двоичных файлах.
В моем случае размеры рассматриваемых разделов следующие:
__TEXT.__cstring (99 K-bytes)
__TEXT.__ustring (<200 bytes)
__DATA.__cfstring (29 K-bytes)
Чтобы дать вам представление, первые 32 байта раздела __cfstring, который, хотя я и должен был содержать фактические строки, выглядят следующим образом:
Dump _ ДАННЫЕ. _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
...
Большое спасибо за вашу помощь!