Question

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? :)

Was it helpful?

Solution

This file does not contain any Objective-C runtime information.

This means that the file doesn't define any classes, protocols, or categories. It may use objective-c, but it doesn't contain any useful information about the classes it uses.

CDAssemblyProcessor, 22288 instructions, 0 functions

This indicates that the file has had its symbols stripped. It contains code, but there is no indication of where any function begins or ends, so it can't be decompiled.

You are getting these because twitterd is not the framework, its a program which is included with the framework. The actual framework code is in the Twitter file. If you tried to decompile that instead, you would at least get some objective-c headers. I suggest using the -H option so that the headers will be created as files in the current directory. Without it, the headers will be sent to your terminal one after another, and it will be very difficult to find anything. However, it most likely has had most of its symbols stripped too, so the decompile won't give much.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top