ไลบรารีข้ามแพลตฟอร์มสำหรับการดีบักแบบไบนารีและการแฮ็กหน่วยความจำที่เขียนด้วยภาษา 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.rs
src/test.rs
fn test_debug