
Skriptfähiger Debugger für die Android Dalvik VM, der JDWP/DDM-Schnittstellen verwendet, um Methoden zu hooken, den Prozesszustand zu inspizieren und das Laufzeitverhalten ohne Quellcode zu ändern.
AndBug ist ein Debugger, der auf die Dalvik-Virtual-Machine der Android-Plattform abzielt und für Reverse Engineers und Entwickler gedacht ist. Er verwendet dieselben Schnittstellen wie das Eclipse-Debugging-Plugin von Android, das Java Debug Wire Protocol (JDWP) und den Dalvik Debug Monitor (DDM), um Benutzern das Hooking von Dalvik-Methoden, das Untersuchen des Prozesszustands und sogar das Durchführen von Änderungen zu ermöglichen.
Im Gegensatz zu Googles eigenen Debugging-Werkzeugen des Android Software Development Kit benötigt AndBug keinen Quellcode und erwartet auch keinen. Es erfordert jedoch ein gewisses Maß an Vertrautheit mit Python, da es für die meisten nicht-trivialen Aufgaben ein Konzept von skriptbaren Haltepunkten namens „Hooks“ verwendet. (Wenn Sie nur geladene Klassen, Methoden oder Threads ausgeben möchten, gibt es dafür Beispielskripte.)
– Scott Dunlop [email protected]
AndBug ist derzeit noch ein stark im Wandel befindliches Programm, da ich nach und nach Einzelskripte, die ich bei IOActive für verschiedene Aufgaben geschrieben habe, aus kunden- und IOActive-eigenen Kontexten herauslöse. Ich empfehle derzeit keine Installation, da Sie es danach häufig aktualisieren möchten. AndBug lässt sich mit sehr wenig Einrichtung sehr gut direkt aus seinem Quellverzeichnis heraus ausführen.
Installieren Sie das Android Software Development Kit von https://developer.android.com/sdk/index.html
Stellen Sie sicher, dass sich die Android Debugging Bridge in Ihrem $PATH befindet und verwendbar ist. ::
which adb adb devices
Stellen Sie sicher, dass Sie eine gute Python- und GNU-Toolchain für Ihre Plattform haben. Sie benötigen GCC und Make. Wenn Sie Änderungen auf der primitiven Schicht vornehmen möchten, benötigen Sie möglicherweise auch Pyrex.
Holen Sie sich den neuesten AndBug-Code von https://github.com/swdunlop/AndBug.git ::
git clone https://github.com/swdunlop/AndBug.git
Bauen Sie mit Make ::
make
Passen Sie $PYTHONPATH an ::
export PYTHONPATH=pwd/lib
Beispiele finden Sie im Verzeichnis sample, aber der einfachste Weg, vorgefertigte Funktionalität in AndBug zu finden, ist die direkte Verwendung des Befehls „andbug“. ::
./andbug
Dieser Befehl hat derzeit nicht die Intelligenz, automatisch zu erkennen, wenn er aus dem Quellverzeichnis heraus ausgeführt wird, und den PYTHONPATH entsprechend anzupassen. Sie sollten sicherstellen, dass PYTHONPATH Ihr andbug/lib-Verzeichnis enthält.
F: Ich erhalte „Permission Denied“ bei der Verwendung von AndBug, aber „adb shell“ funktioniert.
A: Ihr adbd läuft wahrscheinlich als ein anderer Benutzer, was die effektive Nutzung von ADB forward blockiert. Verwenden Sie „adb kill-server“ und dann „adb start-server“ mit dem korrekten effektiven Benutzer.
F: Ich erhalte „Shell Exception“ bei der Verwendung von AndBug.
A: Überprüfen Sie, ob Ihre ADB-Einrichtung mit „adb devices“ funktioniert – AndBug ist für einen JDWP-Transport auf ADB angewiesen.
F: Funktioniert AndBug unter Windows?
A: Ich denke schon; aber da AndBug nicht unterstützte Software ist, erhalten Sie möglicherweise weniger „Hands-on“-Unterstützung, als Windows-Benutzer gewohnt sind. Patches sind willkommen.
F: Funktioniert AndBug unter Mac OS X?
A: Ja, aber beachten Sie die sarkastische Bemerkung zu Windows-Benutzern. Sie haben dies nicht in einem App Store gefunden.
F: Navi gibt mir einen RequestError 13.
A: Sie haben den Prozess fortgesetzt; Navi kann nur sicher mit angehaltenen Prozessen interagieren. Verwenden Sie erneut „suspend“.
F: Ich erhalte „EOF in read“ beim Senden eines Befehls.
A: Stellen Sie sicher, dass keine anderen Debugger verbunden sind, wie z.B. DDMS.
Copyright 2011, IOActive Alle Rechte vorbehalten.
AndBug ist freie Software: Sie können es unter den Bedingungen der Version 3 der GNU Lesser General Public License, wie von der Free Software Foundation veröffentlicht, weiterverbreiten und/oder modifizieren.
AndBug wird in der Hoffnung verbreitet, dass es nützlich sein wird, jedoch OHNE JEDE GEWÄHRLEISTUNG; sogar ohne die implizite Gewährleistung der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Einzelheiten finden Sie in der GNU Lesser General Public License.
Sie sollten eine Kopie der GNU Lesser General Public License zusammen mit AndBug erhalten haben. Falls nicht, besuchen Sie http://www.gnu.org/licenses/.