5

I want to decompile iOS Twitter framework, if fact I take twitterd file from xcode's simulator, which is precompiled to run on x86 (?), not ARM. As for tool I use http://code.google.com/p/i386codedump/ Instruction:

Usage: code-dump [options] <mach-o-file> where options are:
    -a             show instance variable offsets
    -A             show implementation addresses
    --arch <arch>  choose a specific architecture from a universal binary (ppc, i386, etc.)
    -C <regex>     only display classes matching regular expression
    -H             generate header files in current directory, or directory specified with -o
    -I             sort classes, categories, and protocols by inheritance (overrides -s)
    -o <dir>       output directory used for -H
    -r             recursively expand frameworks and fixed VM shared libraries
    -s             sort classes and categories by name
    -S             sort methods by name
    -t             suppress header in output, for testing
    -d             decompile
    -D <arch>       decompilation architecture

I kinda don't understand what options I need to take, that what I try:

iMac:documents $ ./code-dump -d twitterd
2011-12-02 18:56:35.885 code-dump[1643:707] feedface, ao: 0
2011-12-02 18:56:35.886 code-dump[1643:707] process: feedface (86000)
/*
 *     Generated by code-dump 2.0.
 */
This file does not contain any Objective-C runtime information.
2011-12-02 18:56:35.888 code-dump[1643:707] Building lookup table...
2011-12-02 18:56:40.308 code-dump[1643:707] Finished lookup table
/usr/bin/lipo: input file (twitterd) must be a fat file when the -extract option is specified
2011-12-02 18:56:40.868 code-dump[1643:707] CDAssemblyProcessor, 22288 instructions, 0 functions
Segmentation fault: 11

What does this mean, what I need to do? :)

4

1 回答 1

4

该文件不包含任何 Objective-C 运行时信息。

这意味着该文件没有定义任何类、协议或类别。它可能使用objective-c,但它不包含关于它使用的类的任何有用信息。

CDAssemblyProcessor,22288 条指令,0 个函数

这表明该文件的符号已被剥离。它包含代码,但没有指示任何函数的开始或结束位置,因此无法反编译。

你得到这些是因为twitterd它不是框架,它是一个包含在框架中的程序。实际的框架代码在Twitter文件中。如果你试图反编译它,你至少会得到一些objective-c 头文件。我建议使用该-H选项,以便将标头创建为当前目录中的文件。没有它,headers 会一个接一个地发送到你的终端,很难找到任何东西。然而,它的大部分符号很可能也被剥离了,所以反编译不会给出太多。

于 2011-12-02T18:00:51.543 回答