
Analisi forense per il disassemblaggio, il riassemblaggio, il reverse engineering e l'audit delle app Android
BogusMips è scritto in Rust e consente di eseguire analisi su quanto la tua app Android possa essere disassemblata. Ti permette di aprire il file *.apk o *.xapk della tua app per vedere fino a che punto la tua app può essere disassemblata.

*.apk o *.xapk con File → Open… (⌘O / Ctrl+O), trascinandolo sulla finestra oppure passandolo come argomento da riga di comando.classes*.dex, raggruppata per package Java e disassemblata in smali.resources.arsc decodificato nei file res/values*/*.xml da cui è stato compilato (stringhe, colori, dimensioni, stili, attributi, array, plurali, …) più public.xml con tutti gli ID delle risorse..smali; i file di risorse generati come XML; gli APK contenuti in un XAPK come .apk.AndroidManifest.xml, res/**/*.xml) viene decodificato. I riferimenti alle risorse vengono risolti in nomi (@string/app_name, @android:style/Theme) e i valori degli attributi nei loro nomi simbolici (protectionLevel="signature").AndroidManifest.xml, resources.arsc) e sul traffico di rete HTTP/HTTPS catturato. Configurabile con Grok (xAI), Gemini (Google), Claude (Anthropic), OpenAI (ChatGPT) o qualsiasi endpoint personalizzato compatibile con OpenAI (ad es. Ollama, OpenRouter). L'agente dispone di strumenti integrati (search_package, list_nodes, read_node, list_network_flows, inspect_network_flow) per cercare e leggere autonomamente classi, risorse e flussi di rete catturati.
La vista Network (⇧⌘N) è uno sniffer di traffico essenziale, in stile Postman. Avvia un emulatore Android (AVD), instrada il traffico del guest attraverso un proxy man-in-the-middle integrato, installa l'APK/XAPK aperto, lo avvia e cattura in tempo reale le sue richieste HTTP e HTTPS. Le richieste catturate compaiono in un elenco a sinistra; selezionandone una, nell'editor vengono mostrate la richiesta e la risposta complete (intestazioni e corpo, pretty / raw / hex), con i dettagli di temporizzazione e connessione nel pannello delle informazioni.

La decifratura HTTPS completa richiede un'immagine dell'emulatore rootable (google_apis / aosp_atd, non google_apis_playstore), perché la CA del proxy deve essere installata come trust anchor di sistema. All'avvio, BogusMips abilita adb root e installa la propria CA generata (una CA di breve durata, per sessione, in formato PEM) nei trust store di sistema e Conscrypt (APEX). Su Android 14+ (API 34+) tali store risiedono in mount namespace per processo, quindi la CA viene collocata in una directory overlay — rietichettata con il contesto SELinux system_security_cacerts_file (sia i file che la directory, altrimenti le app vengono private dell'accesso) — e montata tramite bind mount sopra gli store nel mount namespace di ogni processo tramite nsenter. L'app target viene installata e avviata dopo questa operazione, così esegue un fork ex novo e il suo HTTPS basato sul trust store di sistema viene decifrato. I certificati foglia per host sono di breve durata e inviati senza la CA nella catena, per soddisfare i client che impongono la validità massima di 398 giorni dei certificati.
Avvertenze — cosa non può essere decifrato: