我正在尝试从 iPhone Mach-O 二进制文件中读取常量(或初始化)字符串。我知道这 3 个相关的 segment.sections 是 _ TEXT。_cstring _文本。_ustring 和 _数据。_cfstring。但是,即使我知道字符串信息存储在我提取的这三个数据块中,我也无法理解它,而且看起来像垃圾 - 我看不到任何可识别的字符串。谁能对此有所了解,并让我了解读取字符串数据需要采取哪些步骤?
我查看了一些代码(来自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 个字节,我认为它包含实际的字符串,如下所示:
转储_数据。_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
...
非常感谢你的帮助!