Biblioteca multiplataforma para depuración binaria y piratería de memoria escrita en Rust.
minidump
, un PE file
o incluso el espacio del kernel del sistema operativo con una extensión adicional. Hay dos tipos principales de interfaces en udbg: información de destino e interfaces de depuración.
Las interfaces de información de destino, que se abstraen como el rasgo UDbgTarget
, representan un objetivo de depuración observable, es un active process
en la mayoría de los casos, también puede ser un minidump
, un PE file
, incluso ser el espacio del kernel del sistema operativo con extensión adicional.
UDbgTarget
contiene estas funciones, memory operation
(lectura/escritura/enumeración), enumeración module
, enumeración thread
, enumeración handle/FDs
, etc. En base a estas funciones, podemos implementar algunas utilidades sobre los diferentes tipos de destino, como el volcado de módulos , búsqueda de memoria , escaneo de ganchos , escaneo de códigos maliciosos , etc.
Las interfaces de depuración, que se resumen como el rasgo UDbgEngine
, proporcionan principalmente la capacidad de control de procesos. Hay una default implementation
que generalmente incluye las funciones de depuración en Windows y las interfaces ptrace en Linux.
La mayoría de las interfaces anteriores fueron diseñadas para ser objetos dinámicos, lo cual es compatible con el enlace de scripts, y udbg proporciona lua bindings
de forma predeterminada.
Estado actual de las interfaces de información de destino.
Plataforma/Objetivo | Operación de memoria | Lista de memoria | Hilo | Módulo/Símbolo | Lista de manijas/FD |
---|---|---|---|---|---|
Proceso de Windows | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Proceso de Linux | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Proceso MacOs | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
minivolcado | ✔️ (solo lectura) | ✔️ | ✔️ | ✔️ | ? |
Archivo PE | ✔️ (solo lectura) | ✔️ | - | - | - |
Estado actual de las interfaces de depuración.
Plataforma/Objetivo | Símbolo de depuración | Punto de interrupción | Punto de vigilancia (HWBP) | Objetivo múltiple |
---|---|---|---|---|
Ventanas (x86/x64) | ✔️ (pdb) | ✔️ | ✔️ | ✔️ |
Ventanas (aarch64) | ✔️ (pdb) | ✔️ | ✔️ | ✔️ |
Linux(x86_64) | ✔️ (elfo) | ✔️ | ✔️ | ✔️ |
Linux (aarch64) | ✔️ (elfo) | ✔️ | ✔️ | ✔️ |
src/test.rs
fn target
src/test.rs
fn test_debug