1. Ingeniería inversa (Reverse Engineering)
Ingeniería inversa es el proceso de decompilar el código binario de una aplicación para restaurar el código fuente original o una forma cercana a él.
Los archivos APK de Android o IPA de iOS pueden ser analizados a través de la decompilación respectivamente.
Este método se utiliza principalmente para comprender la lógica interna de una aplicación o para comprender los métodos de comunicación de datos.
Para las aplicaciones que han sido especialmente tratadas para evitar la ingeniería inversa, el análisis puede no ser posible.
A continuación, se presenta una breve descripción de la ingeniería inversa de APK de Android y IPA de iOS.
1.1. Ingeniería inversa de APK de Android
Herramientas: jadx, APKTool, Dex2jar, etc.
1.1.1. Procedimiento de ingeniería inversa de APK de Android
Descarga el archivo APK desde Google Play Store.
Utiliza herramientas como APKTool para decompilar el archivo APK.
Analiza el código fuente decompilado para comprender la lógica de la aplicación, los puntos finales de la API, la estructura de datos, etc.
Analiza los paquetes de red o verifica los registros para comprender los métodos de comunicación de datos.
1.2. Ingeniería inversa de IPA de iOS
Herramientas: Hopper, IDA Pro, Ghidra, etc.
1.2.1. Procedimiento de ingeniería inversa de IPA de iOS
Descarga el archivo IPA desde App Store.
Utiliza la herramienta seleccionada para decompilar el archivo IPA.
Analiza el código decompilado para comprender la lógica interna de la aplicación, los métodos de comunicación de datos, etc.
2. OCR
OCR (Reconocimiento Óptico de Caracteres) es un método para capturar la pantalla de una aplicación y extraer texto de esa imagen.
La precisión de OCR se ve afectada por varios factores.
El tamaño del texto, la fuente, el color de fondo, etc., pueden afectar la precisión.
Esto puede no ser recomendable en casos donde se espera una alta precisión.
Sin embargo, puede ser útil en situaciones donde no se puede acceder a la API o al código fuente, o cuando es difícil obtener datos de otra manera.
2.1. Herramientas de OCR
Tesseract: Es el motor OCR de código abierto más conocido.
Google Cloud Vision API: Un servicio de OCR proporcionado por Google que ofrece alta precisión y soporte para varios idiomas.
ABBYY FineReader: Un software OCR comercial que ofrece alta precisión.
2.2. Procedimiento con herramientas de OCR
Captura la pantalla donde se muestra la información necesaria de la aplicación.
Puede ser necesario realizar un preprocesamiento de la imagen para aumentar la precisión de OCR. Esto puede implicar eliminar ruido de la imagen o ajustar el brillo y contraste.
Convierte la imagen preprocesada en texto utilizando la herramienta de OCR.
Dado que el texto obtenido a través de OCR puede no estar limpio o contener errores, es necesario refinarlo.
Analiza el texto refinado y guarda los datos necesarios.
3. Captura de paquetes (Packet Sniffing)
La captura de paquetes es el proceso de capturar y analizar paquetes de datos en una red.
Este método es útil cuando se intenta comprender cómo una aplicación se comunica con un servidor durante el web scraping.
A través de la captura de paquetes, es posible analizar la lógica interna de la aplicación, los puntos finales de la API utilizados, los mecanismos de autenticación, etc.
3.1. Herramientas de captura de paquetes
Wireshark: Es la herramienta de captura de paquetes más utilizada.
Charles Proxy: Principalmente utilizado en desarrollo web y análisis de aplicaciones móviles. Proporciona funciones de proxy SSL para analizar el tráfico HTTPS.
MITMproxy: Simula ataques de intermediario (Man-in-the-Middle) para analizar el tráfico.
tcpdump: Una herramienta de análisis de paquetes basada en texto, útil en entornos de servidor.
3.2. Procedimiento de captura de paquetes
Instala la herramienta de captura de paquetes y, si es necesario, configura el proxy en la aplicación o dispositivo.
Ejecuta la aplicación y captura el tráfico con la herramienta de captura de paquetes mientras intercambia datos.
Analiza los paquetes capturados para identificar los puntos finales de la API, los protocolos utilizados, el formato de los datos transmitidos, etc.
Una vez identificados los puntos finales de la API, es necesario comprender cómo enviar solicitudes a estos y recibir respuestas.
Por lo general, en API RESTful se utilizan métodos HTTP como GET, POST, PUT, DELETE, etc.Una vez identificados los datos necesarios o los patrones, puedes escribir un código de web scraping basado en ellos.
4. Conclusión
Existe un riesgo de exposición de información sensible, como credenciales de inicio de sesión de usuarios, en los puntos finales de la API. Además, dado que existe la posibilidad de que los puntos finales de la API cambien con las actualizaciones de la aplicación, se recomienda operar con medidas de precaución al respecto.
¡Lee también este artículo!
Recopilación de datos, ahora automatizada
Comienza en 5 minutos sin necesidad de programación · Experiencia en web scraping de más de 5,000 sitios web




