udbg
1.0.0
Rust로 작성된 바이너리 디버깅 및 메모리 해킹을 위한 크로스 플랫폼 라이브러리입니다.
minidump
, PE file
, 추가 확장이 있는 OS-Kernel 공간일 수도 있습니다. udbg에는 대상 정보와 디버깅 인터페이스라는 두 가지 주요 인터페이스가 있습니다.
UDbgTarget
특성으로 추상화된 대상 정보의 인터페이스는 관찰 가능한 디버깅 대상을 나타내며 대부분의 경우 active process
이며 minidump
, PE file
일 수도 있고 추가 확장이 있는 OS-Kernel 공간일 수도 있습니다.
UDbgTarget
에는 memory operation
(읽기/쓰기/열거), module
열거, thread
열거, handle/FDs
열거 등의 함수가 포함되어 있습니다. 이러한 함수를 기반으로 모듈 덤프 와 같은 다양한 유형의 대상에 대해 일부 유틸리티를 구현할 수 있습니다. 메모리 검색 , Hook 스캐닝 , 악성코드 스캐닝 등
UDbgEngine
특성으로 추상화된 디버깅 인터페이스는 주로 프로세스 제어 기능을 제공합니다. default implementation
있으며 일반적으로 Windows에서는 디버깅 기능을 래핑하고 Linux에서는 ptrace 인터페이스를 래핑합니다.
위 인터페이스의 대부분은 스크립트 바인딩에 적합한 동적 개체로 설계되었으며 udbg는 기본적으로 lua bindings
제공합니다.
대상정보 인터페이스 현황
플랫폼/타겟 | 메모리 작동 | 메모리 목록 | 실 | 모듈/기호 | 핸들/FD 목록 |
---|---|---|---|---|---|
윈도우 프로세스 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
리눅스 프로세스 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
MacOS 프로세스 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
미니덤프 | ✔️ (읽기 전용) | ✔️ | ✔️ | ✔️ | ? |
PE 파일 | ✔️ (읽기 전용) | ✔️ | - | - | - |
디버깅 인터페이스 현황
플랫폼/타겟 | 디버그 기호 | 중단점 | 워치포인트(HWBP) | 다중 대상 |
---|---|---|---|---|
윈도우(x86/x64) | ✔️ (pdb) | ✔️ | ✔️ | ✔️ |
윈도우즈(aarch64) | ✔️ (pdb) | ✔️ | ✔️ | ✔️ |
리눅스(x86_64) | ✔️ (엘프) | ✔️ | ✔️ | ✔️ |
리눅스(aarch64) | ✔️ (엘프) | ✔️ | ✔️ | ✔️ |
src/test.rs
fn target
참조하세요.src/test.rs
참조하세요 fn test_debug