In Rust geschriebene plattformübergreifende Bibliothek für binäres Debugging und Speicher-Hacking.
minidump
, eine PE file
oder sogar der Betriebssystem-Kernel-Bereich mit zusätzlicher Erweiterung sein. Es gibt zwei Hauptarten von Schnittstellen in udbg: Zielinformations- und Debugging-Schnittstellen.
Schnittstellen von Zielinformationen, die als UDbgTarget
Merkmal abstrahiert werden, stellen ein beobachtbares Debugging-Ziel dar. In den meisten Fällen handelt es sich um einen active process
. Es kann sich auch um einen minidump
, eine PE file
oder sogar um den OS-Kernel-Bereich mit zusätzlicher Erweiterung handeln.
UDbgTarget
enthält diese Funktionen: memory operation
(Lesen/Schreiben/Aufzählung), module
, thread
-Aufzählung, handle/FDs
-Aufzählung usw. Basierend auf diesen Funktionen können wir einige Dienstprogramme über die verschiedenen Zieltypen implementieren, wie z. B. Modul-Dump . Speichersuche , Hook-Scanning , Malware-Code-Scanning usw.
Debugging-Schnittstellen, die als UDbgEngine
Merkmal abstrahiert werden, bieten hauptsächlich die Möglichkeit der Prozesssteuerung. Es gibt eine default implementation
, die normalerweise die Debugging-Funktionen unter Windows und die Ptrace-Schnittstellen unter Linux umschließt.
Die meisten der oben genannten Schnittstellen wurden als dynamische Objekte konzipiert, was die Skriptbindung erleichtert, und udbg stellt standardmäßig lua bindings
bereit.
Aktueller Status der Zielinformationsschnittstellen
Plattform/Ziel | Speicherbetrieb | Speicherliste | Faden | Modul/Symbol | Handle/FD-Liste |
---|---|---|---|---|---|
Windows-Prozess | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Linux-Prozess | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
MacOs-Prozess | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Minidump | ✔️ (schreibgeschützt) | ✔️ | ✔️ | ✔️ | ? |
PE-Datei | ✔️ (schreibgeschützt) | ✔️ | - | - | - |
Aktueller Status der Debugging-Schnittstellen
Plattform/Ziel | Debug-Symbol | Haltepunkt | Beobachtungspunkt (HWBP) | Mehrere Ziele |
---|---|---|---|---|
Windows (x86/x64) | ✔️ (PDF) | ✔️ | ✔️ | ✔️ |
Windows(aarch64) | ✔️ (PDF) | ✔️ | ✔️ | ✔️ |
Linux(x86_64) | ✔️ (Elf) | ✔️ | ✔️ | ✔️ |
Linux(aarch64) | ✔️ (Elf) | ✔️ | ✔️ | ✔️ |
src/test.rs
fn target
src/test.rs
fn test_debug