Sobre el proyecto

Jadart es un descompilador de Flutter que toma un APK, IPA o libapp.so sin procesar y produce un árbol de clases, cuerpos de métodos como pseudo-Dart, el pool de cadenas, tablas de datos integradas y nombres de origen para llamadas virtuales. Está dirigido a ingenieros inversos y revisores de seguridad que auditan aplicaciones Flutter publicadas, donde la compilación AOT oculta la lógica pero deja estructuras recuperables. La herramienta enfatiza la honestidad: nunca imprime una suposición confiada. Las instrucciones no modeladas se imprimen como arm64 sin procesar, los argumentos de llamada irreconstruibles se imprimen como (...), los campos sin nombre se representan como field_0x8, y los formatos de liberación Dart no registrados generan un error tipado. Las brechas son visibles por diseño. Las capacidades clave incluyen recuperación por niveles: Nivel 0 esqueletos de clase/método/campo con jerarquías de superclase resueltas; Nivel 1 arm64 por función con objetivos de llamada directa nombrados y constantes ObjectPool resueltas; Nivel 2 reconstrucción de flujo de control en if/else y bucles; Nivel 3 elevación de expresiones mediante interpretación abstracta; Nivel 3.1 argumentos de llamada desde la aridad de registros del destinatario; Nivel 3.2 stubs de runtime de VM representados como operaciones de origen; Nivel 3.3 llamadas virtuales/de interfaz con offsets de receptor y selector; Nivel 3.4 offsets de selector resueltos a nombres de origen mediante corroboración entre clases. Soporta Android arm64, x86_64, iOS/macOS arm64, y Android arm32 (parcial), cubriendo Dart 2.19.6 hasta 3.12.2 en dieciocho épocas de formato. El rendimiento es rápido: info en 0.04s, exportación completa en 4.55s en fixtures de prueba. Incluye puertas de verificación byte-exactas, un oráculo diferencial y una habilidad de agente de codificación para ingeniería inversa de Flutter. La CLI ofrece comandos como info, verify, classes, decompile, lift, strings, constants, xrefs, export, symbols y hook (Frida).