
Debugger scriptabile per Android Dalvik VM che utilizza le interfacce JDWP/DDM per intercettare metodi, ispezionare lo stato del processo e modificare il comportamento runtime senza codice sorgente.
AndBug è un debugger rivolto alla macchina virtuale Dalvik della piattaforma Android, pensato per ingegneri inversi e sviluppatori. Utilizza le stesse interfacce del plugin di debugging Eclipse di Android, il Java Debug Wire Protocol (JDWP) e il Dalvik Debug Monitor (DDM) per consentire agli utenti di agganciare metodi Dalvik, esaminare lo stato del processo e persino eseguire modifiche.
A differenza degli strumenti di debug del kit di sviluppo software Android di Google, AndBug non richiede né si aspetta codice sorgente. Richiede, tuttavia, un certo livello di familiarità con Python, poiché utilizza un concetto di breakpoint scriptati, chiamati "hook", per la maggior parte delle attività non banali. (Se vuoi semplicemente dumpare le classi, i metodi o i thread caricati, ci sono script di esempio per farlo.)
-- Scott Dunlop [email protected]
AndBug è un programma in continua evoluzione, mentre separo gli script occasionali che ho scritto in IOActive per vari compiti dai contesti dei clienti e propri di IOActive. Non consiglio l'installazione in questo momento, poiché vorrai aggiornarlo frequentemente in seguito. AndBug funziona molto bene dalla propria directory sorgente con pochissima configurazione.
Installa il kit di sviluppo software Android da https://developer.android.com/sdk/index.html
Assicurati che l'Android Debugging Bridge sia nel tuo $PATH e utilizzabile. ::
which adb adb devices
Assicurati di avere un buon Python e la toolchain GNU per la tua piattaforma. Avrai bisogno di GCC e Make. Potresti volere anche Pyrex, se vuoi apportare modifiche a livello primitivo.
Preleva l'ultimo codice di AndBug da https://github.com/swdunlop/AndBug.git ::
git clone https://github.com/swdunlop/AndBug.git
Compila usando Make ::
make
Regola $PYTHONPATH ::
export PYTHONPATH=pwd/lib
Gli esempi si trovano nella directory sample, ma il modo più semplice per trovare funzionalità predefinite in AndBug è usare il comando "andbug" direttamente. ::
./andbug
Questo comando attualmente non ha l'intelligenza per rilevare automaticamente quando è in esecuzione dalla directory sorgente e aggiornare di conseguenza PYTHONPATH al volo. Dovrai assicurarti che PYTHONPATH includa la tua directory andbug/lib.
D: Ricevo "Permission Denied" quando provo a usare AndBug, ma "adb shell" funziona.
R: Il tuo adbd probabilmente è in esecuzione come un altro utente, bloccando l'uso efficace di ADB forward. Usa "adb kill-server" e poi "adb start-server" con l'utente effettivo corretto.
D: Ricevo "Shell Exception" quando provo a usare AndBug.
R: Verifica che la tua configurazione ADB funzioni usando "adb devices" -- AndBug si basa su ADB per un trasporto JDWP.
D: AndBug funziona su Windows?
R: Credo di sì; ma poiché AndBug è un software non supportato, potresti ricevere meno assistenza di quella a cui gli utenti Windows sono abituati. Le patch sono benvenute.
D: AndBug funziona su Mac OS X?
R: Sì, ma vedi la sarcasticità sugli utenti Windows. Non l'hai trovato in un app store..
D: Navi mi dà un RequestError 13.
R: Hai ripreso il processo; Navi può interagire in sicurezza solo con processi sospesi. Usa di nuovo "suspend".
D: Ricevo "EOF in read" quando invio un comando.
R: Assicurati che non siano connessi altri debugger, come DDMS.
Copyright 2011, IOActive Tutti i diritti riservati.
AndBug è software libero: puoi ridistribuirlo e/o modificarlo secondo i termini della versione 3 della GNU Lesser General Public License come pubblicata dalla Free Software Foundation.
AndBug è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedere la GNU Lesser General Public License per maggiori dettagli.
Dovresti aver ricevuto una copia della GNU Lesser General Public License insieme ad AndBug. In caso contrario, consulta http://www.gnu.org/licenses/.