Registra tutte le chiamate API durante l'esecuzione di un'app Android

4

Voglio raccogliere tutte le chiamate API effettuate da un'app Android che viene eseguita su un dispositivo reale (con permessi di root, obv).

Con la chiamata API intendo i metodi richiamati su oggetti come: ConnectivityManager

Ho pensato di poter strumentare tutti i metodi con il framework Xposed ma forse esiste un modo più semplice ... una sorta di "strace di alto livello".

Altrimenti è sufficiente monitorare lo stacktrace ...

Che cosa suggerisci?

    
posta packmad 10.02.2017 - 23:24
fonte

2 risposte

3

Puoi visualizzare i metodi di Raccoglitore e altre funzionalità strace con - link

Tuttavia, penso che stai cercando di intercettare le chiamate API con il - link - tecniche. Esistono altre tecniche di hooking come IntroSpy - link - ma non sembrano applicabili alla tua situazione.

Potresti imbatterti in situazioni in cui sono presenti tecniche anti-hooking: link , quindi suggerisco di avere un modo per sostituire quel codice e riconfezionare l'APK - link

Il libro, Hacking Android, copre l'uso sia di IntroSpy che di XposedFramework per l'aggancio. Penso che ti piacerà il log di output del file XposedBridgeAPI - link - e puoi trovare la sua documentazione di sviluppo qui - link

Inoltre, il libro tratta la pratica più comune per gli invertitori delle app Android e i penetration tester, che è l'uso del Frida . In particolare, penso che l'appmon - link - l'estensione sia la più rilevante (supporta sia i privilegi root che quelli non root accesso), ma potresti anche dare un'occhiata alla versione estesa di cycript da NowSecure - link

    
risposta data 11.02.2017 - 22:35
fonte
-1

Il modo migliore per ottenere una raccolta di chiamate Java globale è quello di utilizzare l'ART / DVM del sistema operativo Androis. Qui puoi trovare una procedura di patch minima da applicare a AOSP (5.0 Lollipop, che funziona anche su Marshmallow 6.0) per raccogliere tutte le chiamate Java di un'applicazione mirata: link

È quindi possibile differenziare le chiamate API dalle chiamate dell'applicazione con alcune espressioni regolari.

    
risposta data 25.08.2017 - 12:07
fonte

Leggi altre domande sui tag