Il seguente articolo dimostrerà come utilizzare le utility Linux "vecchio stile" e Termux per tracciare le app Android.
Useremo Termux linux VM all'interno di un dispositivo Android per installare util Linux comuni insieme alle app Android.
I principali strumenti che utilizzeremo sono:
- strace
- Jtrace
- Notifica orologio
*È necessario un dispositivo rootato
Cos'è Termax
Termux è un emulatore di terminale per Android. Assomiglia a una distribuzione Linux più che a una semplice applicazione terminale, a causa del gran numero di pacchetti disponibili come clang, ffmpeg, openssh, python e vim.
Termux non è un emulatore di sistema operativo o hardware. Condivide lo stesso ambiente di altre parti del sistema operativo Android.
Perché abbiamo bisogno di Termux?
Risposta breve: gestore di pacchetti APT.
Risposta lunga: Android non ha un gestore di pacchetti o repository integrati. Se desideri utilizzare binari come wget o cURL in Android, dovrai cercare manualmente qualcuno che li abbia compilati o, peggio ancora, compilarli tu stesso.
Android ha una propria implementazione per libc (Bionic) che è stata creata per consentire agli sviluppatori di app di avere legalmente app closed source. Questo fa fallire i normali binari ARM dai normali repository e compilare nuovi binari un'attività non banale. Termux elimina tutti questi problemi fornendo lo spazio utente libc che consente di eseguire binari ARM "normali".
Come configurare Termux
Ci sono 3 passaggi principali:
Utilità utili per le applicazioni di analisi dinamica
strace
Strace è un'utilità per lo spazio utente diagnostica, di debug e didattica per Linux. Viene utilizzato per monitorare e manomettere le interazioni tra i processi e il kernel Linux, che includono chiamate di sistema, consegne di segnali e modifiche dello stato del processo. Con pochissime conoscenze preliminari è possibile visualizzare tutte le interazioni tra i file di un processo specifico
strace -p -e traccia=file
Con strace puoi analizzare comportamenti insoliti della memoria, elaborare segnali e molto altro. È importante notare che quando si ha a che fare con le app Android, molta logica viene eseguita dalla JVM, quindi molte chiamate Grange verranno aggiunte alla traccia.
Jtrace
Jtrace è un fork di strace con modifica Android che gli consente di agganciare funzionalità specifiche di Android, molto utili per tracciare le app Android. Jtrace è uno strumento utile che ha avuto numerosi aggiornamenti interessanti durante il 2021. *non c'è bisogno di Termux per questo
Notifica orologio
A volte strace non è sufficiente poiché desideri sapere se/quando un file viene utilizzato ma non sei sicuro di quale processo lo stia utilizzando. Fortunatamente inotifywatch risolve proprio questo. inotifywatch ascolta gli eventi del file system utilizzando l'interfaccia inotify di Linux, quindi emette un conteggio riepilogativo degli eventi ricevuti su ciascun file o directory. In questo modo puoi tracciare cartelle specifiche e non processi specifici.
Chattr
Chattr (modifica attributi) consente agli utenti di modificare gli attributi dei file.
Gli attributi dei file fanno parte di un meccanismo di sicurezza simile ai permessi di Linux (chmod), con richieste più granulari.
Ad esempio, puoi consentire a un utente di aggiungere testo a un file, ma impedire all'utente di eliminare il file utilizzando il seguente comando
chattr -a
Questo può essere molto utile quando si ricercano malware che utilizzano file temporanei e li rimuovono all'istante.
Puoi anche usare il comando con flag ricorsivo per intere directory:
chattr -Ra /data/data/com.bad.package/files/
Vuoi saperne di più?
Un incontro di consulenza gratuito incluso.