Tutoriales

Herramienta de ingeniería inversa de aplicaciones móviles Flutter

Herramienta de ingeniería inversa de aplicaciones móviles Flutter mediante la compilación de Dart AOT Runtime

Actualmente, la aplicación solo es compatible con Android libapp.so (solo arm64). Además, actualmente la aplicación sólo funciona con la última versión de Dart.

Consulte TODO para conocer las funciones faltantes de alta prioridad

Configuración del entorno

La aplicación utiliza la biblioteca de formato C++20. Requiere el compilador de C++ más reciente, como g++>=13, Clang>=15.

Recomiendo usar un sistema operativo Linux (solo probado en Deiban sid/trixie) ya que es fácil de configurar.

Debian es inestable (gcc 13)

  • Instalar herramientas de compilación y dependencias.
apt install python3-pyelftools python3-requests git cmake ninja-build \
    build-essential pkg-config libicu-dev libcapstone-dev

ventanas

  • Instalar git y python 3
  • Instale las últimas versiones de Visual Studio y «C++ Desktop Development» y «C++ CMake Tools»
  • Instale las bibliotecas necesarias (libcapstone y libicu4c)
python scripts\init_env_win.py
  • Habilite «Caracteres del símbolo del sistema de herramientas nativas x64»

macOS Ventura (sonido metálico 15)

  • Instalar XCode
  • Instale clang 15 y las herramientas necesarias
brew install llvm@15 cmake ninja pkg-config icu4c capstone
pip3 install pyelftools requests

uso

Extraiga el directorio «lib» del archivo apk

python3 blutter.py path/to/app/lib/arm64-v8a out_dir

butter.py detectará automáticamente la versión de Dart del motor flutter y llamará al archivo ejecutable de butter para obtener información de libapp.so.

Si el ejecutable de Blutter para la versión requerida de Dart no existe, el script verificará automáticamente el código fuente de Dart y lo compilará.

renovar

puedes usarlo git pull Actualiza y ejecuta blurter.py --rebuild Opción para forzar la reconstrucción del ejecutable

python3 blutter.py path/to/app/lib/arm64-v8a out_dir --rebuild

Archivo de salida

  • Compilacion/* componente libapp con símbolos
  • Blur_frida.js plantilla de script frida para la aplicación de destino
  • archivo objeto.txt Volcado completo (anidado) de objetos del grupo de objetos
  • Archivo de texto Todos los objetos de Dart en el grupo de objetos

Tabla de contenido

  • basura Contiene el ejecutable de Blutter para cada versión de Dart en «blutter_dartvm».__» Formato
  • disparates Contiene código fuente.Requiere construir contra la biblioteca Dart VM
  • Hospedarse Contiene proyectos de compilación que se pueden eliminar después de completar el proceso de compilación.
  • dardos Contiene un check-out para el tiempo de ejecución de Dart, que se puede eliminar después de completar el proceso de compilación.
  • Externo Contiene sólo bibliotecas de terceros para Windows
  • bolsa Biblioteca de funciones estáticas que contiene Dart Runtime
  • guion Contiene scripts de Python para obtener/construir Dart

Generar soluciones de Visual Studio para el desarrollo.

Desarrollo Blutter en Windows usando Visual Studio. --vs-sln Hay opciones disponibles para generar soluciones de Visual Studio.

python blutter.py path\to\lib\arm64-v8a build\vs --vs-sln

hazlo

  • Más análisis de código
    • Parámetros de función y tipos de retorno
    • Algún pseudocódigo de Code Pattern
  • Producir mejores guiones de Frida
    • Más categorías internas
    • Modificación de objetos
  • Aplicación ofuscada (aún faltan muchas funciones)
  • Leer archivos binarios de iOS
  • Ingresar como apk o ipa

LEER  Las 8 mejores distribuciones de Linux basadas en KDE

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba