2011-12-02 5 views
5

Voglio decompilare il framework iOS di Twitter, se effettivamente prendo il file twitterd dal simulatore di xcode, che è precompilato per funzionare su x86 (?), Non su ARM. Per quanto riguarda strumento che uso http://code.google.com/p/i386codedump/ Istruzione:Decompile Obj C framework

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 

kinda non capisco quali opzioni ho bisogno di prendere, che quello che cerco:

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 

Cosa significa questo, quello che mi serve fare? :)

+2

"Voglio decompilare il framework iOS per iOS" => Forse dovresti chiederti come fare qualsiasi cosa tu speri di fare con queste informazioni, invece di provare a decompilare un framework ... –

risposta

4

Questo file non contiene informazioni sul runtime Objective-C.

Ciò significa che il file non definisce classi, protocolli o categorie. Può usare l'obiettivo-c, ma non contiene alcuna informazione utile sulle classi che usa.

CDAssemblyProcessor, 22288 istruzioni, 0 funzioni

Ciò indica che il file ha avuto i suoi simboli spogliato. Contiene codice, ma non vi è alcuna indicazione su dove una funzione inizia o finisce, quindi non può essere decompilata.

Si stanno ottenendo questi perché twitterd non è il framework, è un programma che è incluso nel framework. Il codice framework attuale si trova nel file Twitter. Se hai provato a decompilare quello, avresti almeno qualche intestazione obiettiva. Suggerisco di utilizzare l'opzione -H in modo che le intestazioni vengano create come file nella directory corrente. Senza di esso, le intestazioni verranno inviate al tuo terminale una dopo l'altra, e sarà molto difficile trovare qualcosa. Tuttavia, molto probabilmente ha avuto la maggior parte dei suoi simboli spogliati, quindi il decompilatore non darà molto.