Wie höre ich Dev / Binder?

8

In Android ist dev/binder auch für die Layer-Kommunikation zuständig. Ist es möglich, Nachrichten zu hören? Ich weiß, dass sie entschlüsselt werden müssen, aber wie kann ich diese Nachrichten bekommen? Wenn beispielsweise eine App eine Nachricht sendet, wird sie zu einer Geolokalisierung. Ich habe auch root auf meinem Android-Gerät.

    
Aprel 17.02.2012, 16:51
quelle

5 Antworten

5

Kurz: Nein, es sollte nicht möglich sein, auch nicht mit root.

Es gibt nicht so viele Informationen über Binder im Detail im Netz, aber es gibt einige, besonders über die Sicherheit. Siehe dieses oder Punkt 3.8 hier . Sie können auch die Quelle des Kerneltreibers und die Quelle von openbinder lesen.

    
Luminger 17.02.2012, 18:04
quelle
3

Sie können die meisten Binder-Transaktionen dekodieren, die mit dieser Version von strace ausgeführt werden: Ссылка

Es verfügt über Verbesserungen, um die ioctl -Aufrufe zu decodieren, mit denen Prozesse Anforderungen an den Binder-Kernel-Treiber stellen. Stellen Sie sicher, dass Sie den Zweig android verwenden, sonst können Sie diese Änderungen nicht nutzen.

Sie sollten in der Lage sein, dies mit einer eigenständigen NDK-Toolchain zu erstellen. Siehe docs/STANDALONE-TOOLCHAIN.html in der Android NDK-Dokumentation.

    
Adrian Taylor 05.02.2013 22:04
quelle
2

Wenn Sie einen benutzerdefinierten Kernel installieren möchten, bietet der Binder-Treibercode ( drivers/staging/android/binder.c ) ziemlich gute Debugging-Funktionen, einschließlich bedingter Nachrichten und Funktionen, die Binder-Transaktionen usw. drucken können.

Insbesondere erhalten Sie verschiedene Arten von Debug-Meldungen im Kernel-Protokoll, indem Sie binder_debug_mask mit der entsprechenden Kombination der folgenden Enumeratoren setzen:

%Vor%

Sie können auch einige print_binder_* -Funktionen, die in binder.c enthalten sind, an strategischen Stellen im gesamten Code streuen. Zum Beispiel print_binder_buffer() oder print_binder_transaction() . Sie würden wahrscheinlich diese auf der Grundlage einer bestimmten UID oder PID konditionell machen wollen, da sonst viel LOS durch den Baumstamm fliegt.

    
Paul Ratazzi 19.08.2014 20:59
quelle
2

Warum werden immer wieder falsche Antworten als richtig anerkannt?

Jtrace - nicht zu verwechseln mit bin dump - erfordert keine Änderung von Android was auch immer. Und es kann Binder-Nachrichten ausspionieren - mit der Einschränkung, dass Sie einen der Endpunkte verfolgen müssen.

Bindump verwendet debugfs, zeigt aber nur Endpunkte an. @Adrian - Ich fürchte, du hast die falsche Schlussfolgerung.

Jtrace fängt eingehende und ausgehende Sys-Aufrufe ab - und löst dann die Bindernachrichten durch Überprüfen des Prozessspeichers (mit ptrace (2)). Wenn du ptrace (2) in deinem Kernel hast (was du tust, weil der Debugserver es dummerweise benötigt) und du root bist, kannst du Nachrichten ausspionieren. Nochmal - Sie müssen auf einem Endpunkt sein.

Und @Luminger - während er auf dem Thema - nur weil man keine Informationen finden kann, bedeutet nicht, dass es keine Informationen gibt. Es gibt viele Informationen auf Binder auf NewAndroidBook.com - neben dem Buch, schauen Sie sich den Binder Präsentation Link an.

    
Technologeeks 02.08.2017 17:03
quelle
1

@Adrian, einige gute Arbeit w.r.t das Problem wurde von anderen Entwicklern / Forschern gemacht, so dass Sie ihre Ergebnisse nutzen konnten.

Zunächst würde ich empfehlen, sich die großartige Arbeit von Jonathan Levin (aka Technologeeks ), nämlich sein Buch über die Android Interna, die vor kurzem frei wurden und auf der begleitenden Webseite des Buches zugänglich waren: newandroidbook .com . Von dort erhalten Sie Links, Beschreibungen und Anwendungsbeispiele zu

  • Bindepumpe
      

    Dies ist eine einfache Ableitung des Befehls service , der ein Handle für den Systemdienst der Wahl erhält und dann seinen eigenen Eintrag im Verzeichnis /sys/kernel/debug/binder/proc prüft. Da alle Binder-Debug-Daten weltweit lesbar sind, können Sie dieses Tool auch auf nicht verwalteten Geräten ausführen.

  • jtrace , eine erweiterte Version von strace , deren einer der Vorteile gegenüber strace ist
      

    (automatisch erkannt).

Ein weiteres großartiges Werk, das von Opersys gemacht wurde (mit Karim Yaghmour ), das ist es definitiv wert, darauf hingewiesen zu werden Betrachten ist

  • Binder-Explorer
      

    Dieses Werkzeug funktioniert als App oder zusammen mit HTML GUI, um eine grafische Ansicht von Verbindungen in Echtzeit anzuzeigen.

Onik 06.06.2017 20:45
quelle