Calma es una herramienta de ingeniería inversa para aplicaciones Flutter para Android. Específicamente, es un analizador y extractor de información para el archivo binario de Android Flutter / Dart, llamado convencionalmente libapp.so
, para todas las versiones de dardos 2.10. Cuando se ejecuta, volcará un volcado completo de todas las clases que están presentes en la instantánea de aislamiento.
La herramienta se encuentra actualmente en betay faltan algunas rutinas de deserialización e información de clase. Si no funciona de inmediato, hágamelo saber.
Dependencias
Doldrums requiere pyelftools para analizar el formato ELF. Puedes instalarlo con
pip3 instalar pyelftools
Uso
Para usarlo, simplemente ejecute el siguiente comando, reemplazando libapp.so
para el archivo binario correspondiente y output
para el archivo de salida deseado. Tenga en cuenta que la opción detallada solo funciona para Dart-Snapshot v2.12.
python3 src / main.py [-v] salida libapp.so
La salida esperada es un volcado de todas las clases en el siguiente formato:
La clase MyApp extiende StatelessWidget
Compilación del widget (DynamicType, DynamicType)
Código con desplazamiento absoluto: 0xec85c
String myPrint (DynamicType, DynamicType)
Código con desplazamiento absoluto: 0xeca80
El desplazamiento de código absoluto especifica el desplazamiento en el libapp.so
Archivo en el que se encuentra la función nativa.