Frage

Ich versuche, einen Benutzer-Modus gemeinsam genutztes Objekt Reverse-Engineering, dass wirkt mit einem Kernel-Treiber über ioctl syscalls. Ich habe eine Header-Datei mit Definitionen für die ioctl-Schnittstelle des Kernel-Treiber (das heißt #defines für ioctl Befehl Zahlen und Struktur Definitionen für die verschiedene Daten zu ioctl gesendet).

Ich sehe, dass Strace die Fähigkeit hat, de-Referenz Benutzer Hinweise, die in dem System Anrufe weitergeleitet werden, aber es kann natürlich nicht de-reference meiner Gewohnheit structs, die in ioctl übergeben werden. Gibt es einen einfachen Weg, um meine Definitionen zu strace hinzufügen, so dass ich aussagekräftigen Daten übergeben werden in ioctl bekommen kann, und nicht nur eine Zeigeradresse?

Ich habe die Quelle für strace und erfolgreich kompiliert / installiert, aber alle meine Versuche, meine eigenen Header zu enthalten haben keine Wirkung hatte.

War es hilfreich?

Lösung

Der strace build nicht automatisch introspect Strukturen und erzeugen Parser für sie -. Sie werden einige Code schreiben müssen, um Ihre Strukturen zu behandeln

Andere Tipps

Der einfachste Weg, dies zu erreichen sein kann, eine Bibliothek Einfügestück für ioctl() zu schreiben. Es gibt eine schöne Führung dieses auf Linux zu tun hier .

Sie können prüfen, für die benutzerdefinierte Befehlsnummern, die Ihre Anwendung verwendet; und auskippen die structs für diese.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top