herramienta inversa
raíz del teléfono
El requisito previo para la ingeniería inversa de Android es que necesita un teléfono rooteado, preferiblemente un teléfono real. Sin un teléfono móvil rooteado, es difícil continuar con el trabajo inverso.Para teléfonos móviles, puede desbloquear el OEM. En general, existen los siguientes pasos para rootear su teléfono:
- desbloquear OEM
- Desbloquear el bootloader
- Instalar Magisk
- hacer paquete raíz
- cepillo en el teléfono
Para obtener más información, consulte este artículo .
Para el sistema Android, no se recomienda utilizar la última versión, ya que algunas herramientas de ingeniería inversa no son compatibles con la última versión del sistema.
herramienta de descompilación
Hay muchas herramientas de descompilación, apktool antiguo, jeb y algunas herramientas de descompilación de nicho, aquí recomiendo usar, MT文件管理器
realmente fácil de usar, puede extraer apk, descompilar, ver el código fuente, smali a java, firma del paquete, etc., funciones Hay muchos, y es muy conveniente de usar.La mosca en el ungüento es que necesita abrir una membresía, pero una membresía de por vida también es muy barata. Nuevamente, una buena herramienta puede ahorrar mucho tiempo.
Herramienta de gancho
También hay muchas herramientas Hook. Para Android, hay Hooks en la capa jvm y Hooks en la capa nativa. Aquí solo enumero algunas de mis herramientas Hook comúnmente utilizadas
- Las herramientas de enlace en la capa de Java incluyen: Algorithm Assistant.apk, JSHook.apk, Frida
- Las herramientas de enlace en la capa nativa incluyen: Frida, Unidbg
Todas estas herramientas se pueden obtener en el planeta.
WebViewHerramientas
La herramienta WebView de la que estoy hablando aquí se refiere a la capacidad de depurar el H5 en la aplicación, de modo que pueda usarse inspect
para la depuración.
Tales herramientas son:
- Asistente de algoritmo.apk
- WebViewPP.apk
herramienta de captura
Hay dos tipos de herramientas de captura de paquetes, uno es el terminal móvil y el otro es el terminal de computadora.
- Terminal móvil: HttpCanary
(android)
, Stream(ios)
- Computadora: Charles, violinista
Herramienta de depuración dinámica
Permítanme hablar primero sobre lo que es la depuración dinámica. La depuración dinámica es establecer un punto de interrupción en el código cuando el programa se está ejecutando. En este momento, puede depurar paso a paso para ver el valor de algunas variables y la lógica comercial del código. .
Las herramientas de depuración dinámica comúnmente utilizadas para la ingeniería inversa de Android son: AndroidStudio e IDA . AS es principalmente para la depuración dinámica de lenguaje smali. Para IDA, es para depurar bibliotecas y lenguaje ensamblador.
Resumir
Afilar un cuchillo no es un error para los leñadores. Antes de comenzar con el reverso, primero prepare el entorno y las herramientas del reverso, para que sea útil durante el proceso inverso. Este artículo presenta principalmente las herramientas utilizadas en ingeniería inversa, y el uso de algunas herramientas se explicará en artículos posteriores.
Como las instrucciones de Smali, el empaquetado y desempaquetado, el marco Xposed, Frida, la captura de paquetes, los algoritmos de cifrado y descifrado, etc., estos son los puntos de conocimiento que los ingenieros de desarrollo de seguridad inversa de Android deben dominar.
En cuanto a las notas de estudio, las he organizado en base a los puntos de conocimiento mencionados anteriormente, para que sea más conveniente que todos aprendan y todos puedan aprender juntos. Método de referencia:https://qr18.cn/CQ5TcL
Notas del estudio de seguridad inversa de Android
Construcción del entorno del emulador inverso de Android (explicación detallada)
Explicación detallada de la instrucción Smali
Primeros pasos con el embalaje y desembalaje
NDK e ingeniería inversa:https://qr18.cn/CQ5TcL
Marco expuesto
Frida-The Dragon Slaying Knife Desarrollo inverso
Algoritmos de cifrado de uso común para Android inverso:https://qr18.cn/CQ5TcL