2011-12-02 29 views
5

Quiero descompilar iOS framework de Twitter, si es cierto, tomo twitterd file desde el simulador de xcode, que está precompilado para ejecutarse en x86 (?), No en ARM. En cuanto a la herramienta que utilizo http://code.google.com/p/i386codedump/ Instrucción:Descompilar 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 

La clase I no entiendo qué opciones tengo que tomar, que lo que intento:

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 

Lo que significa esto, lo que necesito ¿que hacer? :)

+2

"Quiero descompilar iOS framework de Twitter" => Tal vez debería estar preguntando cómo hacer lo que sea que espere hacer con esta información, en lugar de tratar de descompilar un marco ... –

Respuesta

4

Este archivo no contiene ninguna información de tiempo de ejecución de Objective-C.

Esto significa que el archivo no define ninguna clase, protocolo o categoría. Puede usar objective-c, pero no contiene información útil sobre las clases que utiliza.

CDAssemblyProcessor, 22288 instrucciones, funciones 0

Esto indica que el archivo ha tenido sus símbolos despojados. Contiene código, pero no hay indicación de dónde comienza o termina ninguna función, por lo que no se puede decompilar.

Obtendrá estos porque twitterd no es el marco, es un programa que se incluye con el marco. El código de marco real está en el archivo Twitter. Si trataste de descompilar eso en cambio, al menos obtendrías algunos encabezados de Object-c. Sugiero usar la opción -H para que los encabezados se creen como archivos en el directorio actual. Sin él, los encabezados serán enviados a su terminal uno tras otro, y será muy difícil encontrar algo. Sin embargo, lo más probable es que también haya eliminado la mayoría de sus símbolos, por lo que el descompilado no dará mucho.