Archivo de encabezado de exportación de volcado de clase inverso de iOS en la aplicación machO

  • Una breve introducción a class-dump
  • Cómo usar class-dump

Una breve introducción a class-dump

class-dump es una herramienta que puede exportar la información declarada del tiempo de ejecución de Objective-C. La esencia es que puede exportar archivos .h. Utilice class-dump para exportar archivos de encabezado de aplicaciones sin cifrar

Sitio web oficial: http://stevenygard.com/projects/class-dump/
class-dump es una herramienta de línea de comandos en el lado de mac, que se utiliza para exportar archivos de encabezado Mach-O.

1 Primero tenemos que descargar

2 Haga doble clic para abrir después de la descarga, podemos ver que es una herramienta de línea de comandos

3 Copie el archivo ejecutable class-dump en el directorio / usr / local / bin

4 Abra el terminal para verificar si está instalado

xmldeMacBook-Pro:~ xml$ class-dump
class-dump 3.5 (64 bit)
Usage: class-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, ppc64, i386, x86_64, armv6, armv7, armv7s, arm64)
        -C <regex>     only display classes matching regular expression
        -f <str>       find string in method name
        -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
        --list-arches  list the arches in the file, then exit
        --sdk-ios      specify iOS SDK version (will look in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS<version>.sdk
        --sdk-mac      specify Mac OS X version (will look in /Developer/SDKs/MacOSX<version>.sdk
        --sdk-root     specify the full SDK root path (or use --sdk-ios/--sdk-mac for a shortcut)
xmldeMacBook-Pro:~ xml$

Si se muestra la información anterior, significa que la instalación está completa. ¿Por qué quiere ponerla en / usr / local / bin? No hace falta decir que la configuración de la variable de entorno predeterminada de Mac tiene este directorio. Si escribe cualquier comando en la terminal, Vaya y búsquelo en este directorio. Bueno, la instalación es así de simple, veamos cómo usarlo.

Dos cómo usar class-dump

Class-dump se utiliza para exportar archivos de encabezado Mach-O. ¿Qué tipos de archivos Mach-O existen? ¿Qué class-dump puede exportar archivos de encabezado en Mach-O? Presentaré específicamente Mach-O. Lo mencionaré brevemente al final del artículo. Ahora exportamos el archivo de encabezado, principalmente el archivo de encabezado del archivo ejecutable binario en la aplicación.

1 Obtenga el archivo Mach-O en ipa

Podemos descargar el archivo ipa en línea, descomprimirlo y sacar el archivo ejecutable binario dentro. También podemos exportar el archivo ejecutable binario de la aplicación instalada desde el teléfono con jailbreak. Aquí lo exporto desde el teléfono.

 

Arrastré un archivo binario de una calculadora

2 Ingrese al directorio del archivo ejecutable

La terminal Mac ingresa al directorio donde se encuentra la Calculadora

xmldeMacBook-Pro:~ xml$ cd /Users/xml/Documents/iOS学习/

3 Comience a exportar el archivo de encabezado

xmldeMacBook-Pro:iOS学习 xml$ class-dump -H Calculator -o CalculatorHeader
2019-02-17 21:25:11.771 class-dump[6911:783784] Error: Cannot find offset for address 0x9000000001000626 in stringAtAddress:

Encontré este error al principio y finalmente resolví el problema cambiando el archivo class-dump . La ejecución final es la siguiente

xmldeMacBook-Pro:iOS学习 xml$ class-dump -H Calculator -o CalculatorHeader
2019-02-17 21:25:47.949 class-dump[6916:784064] Warning: Parsing instance variable type failed, window
2019-02-17 21:25:47.949 class-dump[6916:784064] Warning: Parsing instance variable type failed, controller
2019-02-17 21:25:47.951 class-dump[6916:784064] Warning: Parsing instance variable type failed, displayController
2019-02-17 21:25:47.952 class-dump[6916:784064] Warning: Parsing instance variable type failed, keypadController
2019-02-17 21:25:47.952 class-dump[6916:784064] Warning: Parsing instance variable type failed, model
2019-02-17 21:25:47.952 class-dump[6916:784064] Warning: Parsing instance variable type failed, soundsPreferencesDomain
2019-02-17 21:25:47.952 class-dump[6916:784064] Warning: Parsing instance variable type failed, soundsEnabled
2019-02-17 21:25:47.952 class-dump[6916:784064] Warning: Parsing instance variable type failed, isSizeTransitioning
2019-02-17 21:25:47.952 class-dump[6916:784064] Warning: Parsing instance variable type failed, keypadTapGestureRecognizer
2019-02-17 21:25:47.953 class-dump[6916:784064] Warning: Parsing instance variable type failed, darwinObserver
2019-02-17 21:25:47.953 class-dump[6916:784064] Warning: Parsing instance variable type failed, maxLandscapeDigits
2019-02-17 21:25:47.954 class-dump[6916:784064] Warning: Parsing instance variable type failed, value
2019-02-17 21:25:47.954 class-dump[6916:784064] Warning: Parsing instance variable type failed, userEntered
2019-02-17 21:25:47.955 class-dump[6916:784064] Warning: Parsing instance variable type failed, delegate
2019-02-17 21:25:47.956 class-dump[6916:784064] Warning: Parsing instance variable type failed, maximumDigitCount
2019-02-17 21:25:47.956 class-dump[6916:784064] Warning: Parsing instance variable type failed, isAllClearActive
2019-02-17 21:25:47.956 class-dump[6916:784064] Warning: Parsing instance variable type failed, displayValue
2019-02-17 21:25:47.956 class-dump[6916:784064] Warning: Parsing instance variable type failed, memoryValue

El archivo de encabezado finalmente exportado

Finalmente, permítanme hablar sobre cómo class-dump exporta archivos de encabezado. De hecho, los archivos Mach-O tienen un formato fijo, que contiene un archivo de tabla de símbolos. Class-dump exporta el archivo de encabezado solo leyendo el archivo de tabla de símbolos.

La herramienta de volcado de clases es muy fácil de usar y también se usa comúnmente en ingeniería inversa. El archivo Caculator que estaba buscando no está protegido, por lo que puede exportar el archivo de encabezado. Si la aplicación protegida no se puede exportar, necesita Primero aplasta el caparazón.

Supongo que te gusta

Origin blog.csdn.net/wangletiancsdn/article/details/104623547
Recomendado
Clasificación