
Ghidrust: ส่วนขยายการวิเคราะห์แบบไบนารีสนิมสำหรับ Ghidra
สถานะ: การพัฒนาได้รับการหยุดชั่วคราวอย่างถาวร ปลั๊กอินนี้อยู่ในสภาพที่ใช้งานได้บางส่วน คุณลักษณะการวิเคราะห์ไบนารีที่เป็นสนิมเพียงไม่กี่ตัวที่ได้รับการอัปสตรีมไปยัง Ghidra ตั้งแต่การสร้างปลั๊กอินนี้
การระบุไบนารีสนิมของ Ghidra ตอนนี้เหนือกว่าปลั๊กอินนี้ คุณสมบัติอื่น ๆ ที่ปลั๊กอินนี้มีให้คือการรวมฐานข้อมูลที่ใช้งานได้และการถ่ายทอดรหัส C decompiled เป็นรหัสสนิม ทั้งสองอย่างนี้ค่อนข้างสม่ำเสมอ
ฉันจะยังคงมีความสุขที่จะยอมรับแพตช์หรือคำขอดึง แต่จะไม่มีการพัฒนาที่ใช้งานอยู่ อย่าลังเลที่จะแยกโครงการนี้หรือสร้างโครงการใหม่ โปรดแจ้งให้เราทราบหากคุณทำเช่นนั้นฉันยินดีที่จะเพิ่มลิงค์ของโครงการของคุณที่นี่เป็นทางเลือก

โครงการนี้เป็นส่วนหนึ่งของหนึ่งในหลักสูตรสถาบันของฉัน สำหรับภาพรวมโดยละเอียดโปรดดูรายงานที่สร้างขึ้นสำหรับการส่งหลักสูตร readme ต่อไปนี้ค่อนข้างกระจัดกระจาย
ปลั๊กอินสามารถตรวจจับไบนารีสนิม หากต้องการใช้คุณสมบัติให้คลิกที่ GhidRust -> Check if Rust binary มันจะแสดงป๊อปอัพที่ระบุว่าเป็นไบนารีที่เป็นสนิมหรือไม่
| อาจไม่ใช่ไบนารีสนิม | อาจเป็นไบนารีสนิม |
|---|---|
![]() | ![]() |
ปลั๊กอินยังประกอบด้วย RustStdAnalyzer ซึ่งวิเคราะห์ไบนารีสนิมและใช้ฟังก์ชั่นลายเซ็นกับฟังก์ชั่นห้องสมุด ( std ของ Rust) ที่พบในไบนารี สิ่งนี้ทำโดยใช้ฐานข้อมูล ID ฟังก์ชั่น .fidb ฐานข้อมูลเริ่มต้นสำหรับ x86-64 และ Rust เวอร์ชัน 1.58.1 ได้รับการจัดเตรียมที่ libstd.fidb สิ่งนี้มีประโยชน์เมื่อวิเคราะห์ไบนารีสนิมที่ถูกถอดออก
| ไม่มี ID ฟังก์ชั่น | ด้วย ID ฟังก์ชั่น |
|---|---|
![]() | ![]() |
เครื่องวิเคราะห์ถูกเปิดใช้งานโดยค่าเริ่มต้นสำหรับ Rust Binaries และชื่อในหน้าต่างวิเคราะห์คือ "ตรวจจับฟังก์ชั่น Rust Libstd"

นี่คือคุณสมบัติการทำงานระหว่างดำเนินการ ณ ตอนนี้ มันต้องมีการแยกวิเคราะห์รหัส C ที่ถอดรหัสแล้วปล่อยรหัสสนิมที่เกี่ยวข้อง เมื่อทำเสร็จแล้วการสนับสนุนมาโครสนิมจะถูกเพิ่มในอนาคต
สามารถเข้าถึงแผง decompiler ได้โดยคลิกที่ GhidRust -> Open decompiler ดูเหมือนดังนี้

มีสคริปต์สร้าง ( build.sh ) ซึ่งสามารถสร้างและติดตั้งส่วนขยาย
$ ./build.sh -h
GhidRust install script
Usage: build.sh [-i | --install] -g GHIDRA_PATH
-i | --install Install the extension
-g | --ghidra Path to Ghidra installation (usually /opt/ghidra)
-h | --help Show usage/help
คุณสามารถสร้างส่วนขยายโดยใช้คำสั่งต่อไปนี้
$ ./build.sh -g <GHIDRA_INSTALL_DIR>
คุณสามารถติดตั้งได้โดยใช้สถานะการติดตั้งดังนี้
./build.sh -ig <GHIDRA_INSTALL_DIR>
หากต้องการเพิ่มลงใน Ghidra เพียงคลิกที่ File -> Install Extensions... และเลือก Ghidrust ที่นั่น เมื่อติดตั้งแล้วคุณจะมีรายการ GhidRust ในแถบเครื่องมือ Ghidra ซึ่งสามารถใช้ในการเรียกใช้ปลั๊กอิน
คุณอาจต้องเปิดใช้งานจาก File -> Configure... เมนู เลือกส่วน Miscellaneous และคลิกช่องทำเครื่องหมายข้าง RustDecplugin