Cómo aprender sistemáticamente el análisis inverso de Android
En segundo lugar, la ingeniería inversa de Android también se puede subdividir en ingeniería inversa de APK de capa de aplicación, marco de dispositivo Android, ingeniería inversa del controlador del kernel, etc., e ingeniería inversa de productos de hardware basados en Android. Supongamos que el cartel habla del primer reverso.
El análisis inverso de la capa de aplicación se puede subdividir en proceso APK inverso y función inversa según las diferentes necesidades.
La inversión de proceso generalmente se refiere a un análisis simple del proceso de ejecución del APK. Este tipo de análisis se usa a menudo para ejecutar el APK en un entorno sandbox para capturar y ver los resultados. La demanda de este tipo de reversión no suele ser muy alta y un tipo de trabajo típico es el de ingeniero de análisis de virus en un proveedor de software antivirus.
La inversión de funciones es mucho más difícil que la inversión de procesos. Pero la necesidad es más generalizada. La comprensión de la implementación de funciones durante el proceso de análisis inverso real depende en gran medida del conocimiento del desarrollo de software del ingeniero inverso. Por ejemplo, analizar el código JAVA de un programa de Android requiere dominar los conocimientos básicos del desarrollo de software de Android. Analizar el código de la biblioteca requiere dominar el conocimiento del desarrollo de la biblioteca relacionado con C/C. Además de las habilidades básicas relacionadas con el desarrollo, los analistas inversos también deben dominar los siguientes conocimientos:
Lenguaje ensamblador ARM/X86/MIPS: analizar la biblioteca SO puede requerir leer mucho código de desensamblado.
Herramientas de análisis inverso de uso común: JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR
Métodos de depuración y antidepuración de programas de Android de uso común: detección y antidetección del depurador/ Además Shell/anti-ofuscación
Algoritmos de cifrado y descifrado de uso común: los excelentes analistas inversos deben tener la capacidad de identificar rápidamente el cifrado y descifrado de uso común
Finalmente, más prácticas y más práctica es la clave para dominar la mejor manera de realizar técnicas de ingeniería inversa.