Pregunta

Quiero descompilar el marco de Twitter de iOS, si tengo un hecho, tomo el archivo de TwitterD del simulador de Xcode, que se precompila para ejecutarse en x86 (?), No brazo. En cuanto a la herramienta que uso http://code.google.com/p/i386Codedump/Instrucción:

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

No entiendo qué opciones necesito 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

¿Qué significa esto, qué necesito hacer? :)

¿Fue útil?

Solución

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

Esto significa que el archivo no define ninguna clases, protocolos o categorías. Puede usar Objective-C, pero no contiene ninguna información útil sobre las clases que utiliza.

CDASSEMBLYPROCESOR, 22288 Instrucciones, 0 funciones

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top