Bibliothèque multiplateforme pour le débogage binaire et le piratage de mémoire écrite en Rust.
minidump
, un PE file
, voire l'espace du noyau du système d'exploitation avec une extension supplémentaire. Il existe deux principaux types d'interfaces dans udbg : les informations sur la cible et les interfaces de débogage.
Les interfaces d'informations cibles, résumées sous le trait UDbgTarget
, représentent une cible de débogage observable, il s'agit d'un active process
dans la plupart des cas, il peut également s'agir d'un minidump
, d'un PE file
, voire de l'espace OS-Kernel avec une extension supplémentaire.
UDbgTarget
contient ces fonctions, memory operation
(lecture/écriture/énumération), énumération module
, énumération thread
, énumération handle/FDs
, etc. Sur la base de ces fonctions, nous pouvons implémenter certains utilitaires sur les différents types de cibles, tels que le dump de module , recherche de mémoire , analyse de hook , analyse de code malveillant , etc.
Les interfaces de débogage, résumées sous le nom de trait UDbgEngine
, fournissent principalement la capacité de contrôler les processus. Il existe une default implementation
, elle encapsule généralement les fonctions de débogage sous Windows et les interfaces ptrace sous Linux.
La plupart des interfaces ci-dessus ont été conçues pour être des objets dynamiques, ce qui est convivial pour les liaisons de script, et udbg fournit lua bindings
par défaut.
État actuel des interfaces d'informations cibles
Plateforme/Cible | Fonctionnement de la mémoire | Liste de mémoire | Fil | Module/Symbole | Liste de poignées/FD |
---|---|---|---|---|---|
Processus Windows | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Processus Linux | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Processus MacOs | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Minidump | ✔️ (lecture seule) | ✔️ | ✔️ | ✔️ | ? |
Fichier PE | ✔️ (lecture seule) | ✔️ | - | - | - |
État actuel des interfaces de débogage
Plateforme/Cible | Symbole de débogage | Point d'arrêt | Point de surveillance (HWBP) | Cible multiple |
---|---|---|---|---|
Windows(x86/x64) | ✔️ (pdf) | ✔️ | ✔️ | ✔️ |
Windows(aarch64) | ✔️ (pdf) | ✔️ | ✔️ | ✔️ |
Linux(x86_64) | ✔️ (elfe) | ✔️ | ✔️ | ✔️ |
Linux(aarch64) | ✔️ (elfe) | ✔️ | ✔️ | ✔️ |
src/test.rs
fn target
src/test.rs
fn test_debug