doorxp-blog

doorxp.com

读取数据(嵌入的plist)链接通过-sectcreate __TEXT为可执行

我用连接使用的plist一个可执行-sectcreate __TEXT连接器选项。


clang -Wl,-sectcreate,__TEXT,__info_plist,info.plist -dynamiclib -o a.dylib a.cpp


otool

你可以用otool(1)转储包含嵌入的plist的部分内容:

otool -s __TEXT __info_plist /path/to/executable 

然后通过管道将其输出,以便获得相应的ASCII表示XXD(1):

otool -X -s __TEXT __info_plist /path/to/executable | xxd -r 

然而,otool是仅在Xcode中已经安装机可用。

一个NSBundle

对于在一个程序需要读取自己的嵌入式plist中的情况下,一个NSBundle可以使用:

id someValue = [[NSBundle mainBundle] objectForInfoDictionaryKey:someKey];

Mach-O的

对于在一个程序需要读取任意文件中嵌入的plist而不诉诸otool的情况下,程序可以在文件中解析Mach-O的信息,并提取其内嵌的plist如下:

#include <mach-o/getsect.h>

unsigned long *len; 
char *data = getsectdata("__TEXT", "__info_plist"); 



发表评论:

Powered By Z-BlogPHP 1.5.1 Zero

Copyright doorxp.com Rights Reserved.