ไลบรารีข้ามแพลตฟอร์มสำหรับการดีบักแบบไบนารีและการแฮ็กหน่วยความจำที่เขียนด้วยภาษา 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 และล้อมอินเทอร์เฟซ ptrace บน Linux
อินเทอร์เฟซข้างต้นส่วนใหญ่ได้รับการออกแบบให้เป็นอ็อบเจ็กต์ไดนามิก ซึ่งเหมาะสำหรับการผูกสคริปต์ที่เป็นมิตร และ udbg จัดเตรียม lua bindings เป็นค่าเริ่มต้น
สถานะปัจจุบันของอินเทอร์เฟซข้อมูลเป้าหมาย
| แพลตฟอร์ม/เป้าหมาย | การทำงานของหน่วยความจำ | รายการหน่วยความจำ | ด้าย | โมดูล/สัญลักษณ์ | รายการแฮนด์/FD |
|---|---|---|---|---|---|
| กระบวนการวินโดวส์ | |||||
| กระบวนการลินุกซ์ | |||||
| กระบวนการ MacOs | |||||
| มินิดัมพ์ | ✔️ (อ่านอย่างเดียว) | - | |||
| ไฟล์พีอี | ✔️ (อ่านอย่างเดียว) | - | - | - |
สถานะปัจจุบันของอินเทอร์เฟซการดีบัก
| แพลตฟอร์ม/เป้าหมาย | สัญลักษณ์การดีบัก | เบรกพอยต์ | จุดเฝ้าระวัง (HWBP) | หลายเป้าหมาย |
|---|---|---|---|---|
| หน้าต่าง(x86/x64) | ✔️ (พีดีบี) | |||
| หน้าต่าง (aarch64) | ✔️ (พีดีบี) | |||
| ลินุกซ์ (x86_64) | ✔️ (เอลฟ์) | |||
| ลินุกซ์ (aarch64) | ✔️ (เอลฟ์) |
fn target src/test.rssrc/test.rs fn test_debug