有人研究过怎么查看编译过的nib文件的信息吗?求助。。。

ljb_iss 发布于 2014年08月25日 | 更新于 2014年09月01日
无人欣赏。

最近在研究别人的应用。 打开app包,看到有MainWindow.nib文件,想研究下这里面是如何组织的。

用xcode打开,没内容。

用ibtool

ibtool --export-strings-file file.strings MainWindow.nib

报错

      <key>description</key>
      <string>The document "MainWindow.nib" could not be opened. Interface Builder cannot open compiled nibs.</string>

网上查了,说可以用plutil 转换部分内容

plutil -convert xml1 -o - MainWindow.nib

还是报错

MainWindow.nib: Property List error: Unexpected character N at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set.

有人研究过怎么查看编译过的nib文件的信息吗?求助。。。

共6条回复
tinyfool 回复于 2014年08月27日

你为什么要研究这个?

ljb_iss 回复于 2014年08月27日

为了满足好奇心,想逆向看一下别的应用怎么组织界面的。 但在网上查了一下很少这方面的资料。

好像有个UINIB的类可以加载nib文件啊。 貌似,好像可以写个app加载这个nib,并把信息dump出来。 等有空了试验下

tinyfool 回复于 2014年08月27日

2楼 @ljb_iss 组织界面,你直接看app看不懂么?

ljb_iss 回复于 2014年08月28日

嗯。你问倒我了。😄。
开始我想找一下某个应用的application delegate。那个应用里面没有ApplicationDelegate的类、我看了main里面传的也是nil。
看了Apple的文档,说是可能在maintain nib里面定义。就想反编译看一下。当时在网上也没查到什么资料,就上来问一下。 后来通过猜测找到了那个应用的delegete啊,所以这个问题就不急迫, 但是对于大家为什么没人研究反编译nib的问题很好奇。
你这么一问,我倒是想明白了,原来反编译的价值不大啊。😄 直接看界面应该就能猜出个七八,实在不行再用reavel一看。应该就没有什么秘密了吧 。

谢谢

adad184 回复于 2014年08月28日

我记得有个nib2objc 你可以试试 以前拿这个学autoresizing

ljb_iss 回复于 2014年09月01日

@adad184 谢谢。
看介绍,应该是我要的东东。但是试用了不行,再去看代码,它里面是用的iboot做的转换。 但是iboot只能处理没有编译前的nib。 所以对于编译后的nib还是不行啊。

登录 或者 注册
相关帖子