
ในระหว่างการประชุม RSA สำนักงานความมั่นคงแห่งชาติของสหรัฐฯ ได้ประกาศเปิดให้เข้าถึงชุดเครื่องมือวิศวกรรมย้อนกลับ “Ghidra”ซึ่งประกอบด้วยโปรแกรมถอดประกอบแบบโต้ตอบที่รองรับการถอดรหัสโค้ดภาษา C และมีเครื่องมือที่มีประสิทธิภาพสำหรับการวิเคราะห์ไฟล์ปฏิบัติการ
โครงการนี้อยู่ระหว่างการพัฒนามาเกือบ 20 ปีแล้ว และหน่วยงานข่าวกรองของสหรัฐฯ ใช้ประโยชน์จากโครงการนี้อย่างต่อเนื่องเพื่อระบุตัวบ่งชี้ วิเคราะห์โค้ดที่เป็นอันตราย ศึกษาไฟล์ปฏิบัติการต่างๆ และวิเคราะห์โค้ดที่คอมไพล์แล้ว
ในแง่ของความสามารถผลิตภัณฑ์นี้เทียบได้กับเวอร์ชันเพิ่มเติมของแพ็กเกจ IDA Pro ที่เป็นกรรมสิทธิ์แต่ได้รับการออกแบบมาเพื่อการวิเคราะห์โค้ดโดยเฉพาะและไม่มีตัวดีบักเกอร์
ในทางกลับกันGhidra มีฟังก์ชันรองรับการถอดรหัสเป็นรหัสเทียมที่คล้ายกับภาษา C (ใน IDA ฟังก์ชันนี้มีให้ใช้งานผ่านปลั๊กอินของบุคคลที่สาม) รวมถึงเครื่องมือที่มีประสิทธิภาพมากขึ้นสำหรับการวิเคราะห์ไฟล์ปฏิบัติการร่วมกัน
คุณสมบัติหลัก
ภายในชุดเครื่องมือวิศวกรรมย้อนกลับ Ghidra เราสามารถค้นหาสิ่งต่อไปนี้:
- รองรับชุดคำสั่งโปรเซสเซอร์และรูปแบบไฟล์ปฏิบัติการต่างๆ
- การวิเคราะห์การสนับสนุนไฟล์ปฏิบัติการสำหรับ Linux, Windows และ macOS
- ประกอบด้วยตัวแยกชิ้นส่วน, แอสเซมเบลอร์, ตัวถอดรหัส, ตัวสร้างกราฟิกการดำเนินการโปรแกรม, โมดูลสำหรับเรียกใช้สคริปต์และชุดเครื่องมือเสริมขนาดใหญ่
- ความสามารถในการทำงานในโหมดโต้ตอบและอัตโนมัติ
- การสนับสนุนปลั๊กอินพร้อมการใช้งานส่วนประกอบใหม่
- รองรับการดำเนินการอัตโนมัติและขยายฟังก์ชันการทำงานที่มีอยู่ผ่านการเชื่อมต่อสคริปต์ในภาษา Java และ Python
- ความพร้อมของเงินทุนสำหรับการทำงานเป็นทีมของทีมวิจัยและการประสานงานระหว่างการทำวิศวกรรมย้อนกลับของโครงการขนาดใหญ่มาก
ที่น่าสนใจคือเพียงไม่กี่ชั่วโมงหลังจากที่ Ghidra เปิดตัว แพ็กเกจดังกล่าวก็พบช่องโหว่ในการใช้งานโหมดดีบัก (ซึ่งปิดใช้งานโดยค่าเริ่มต้น) ที่เปิดพอร์ตเครือข่าย 18001 สำหรับการดีบักแอปพลิเคชันจากระยะไกลโดยใช้ JDWP (Java Debug Wire Protocol)
โดยค่าเริ่มต้นการเชื่อมต่อเครือข่ายจะทำผ่านอินเทอร์เฟซเครือข่ายที่มีอยู่ทั้งหมด แทนที่จะเป็น 127.0.0.1ซึ่งช่วยให้คุณสามารถเชื่อมต่อกับ Ghidra จากระบบอื่น ๆ และเรียกใช้โค้ดใด ๆ ในบริบทของแอปพลิเคชันได้
ตัวอย่างเช่นคุณสามารถเชื่อมต่อกับดีบักเกอร์และยกเลิกการดำเนินการโดยตั้งค่าเบรกพอยต์และแทนที่โค้ดของคุณสำหรับการดำเนินการเพิ่มเติมโดยใช้คำสั่ง "พิมพ์ใหม่" เช่น»
พิมพ์ java.lang.Runtime () ใหม่ exec ('/ bin / mkdir / tmp / dir') »
นอกจากนี้ ยังสามารถติดตามการเผยแพร่ฉบับปรับปรุงใหม่เกือบทั้งหมดของโปรแกรมถอดรหัสแบบโต้ตอบโอเพนซอร์ส REDasm 2.0 ได้ อีกด้วย
โปรแกรมมีสถาปัตยกรรมที่ขยายได้ซึ่งช่วยให้คุณสามารถเชื่อมต่อไดรเวอร์สำหรับชุดคำสั่งเพิ่มเติมและรูปแบบไฟล์ในรูปแบบของโมดูล รหัสโครงการเขียนด้วย C ++ (อินเทอร์เฟซที่ใช้ Qt) และแจกจ่ายภายใต้สิทธิ์การใช้งาน GPLv3 รองรับการทำงานบน Windows และ Linux
แพ็คเกจพื้นฐานใช้งานได้กับเฟิร์มแวร์รูปแบบ PE, ELF, DEX (Android Dalvik), Sony Playstation, XBox, GameBoy และ Nintendo64ชุดคำสั่งที่รองรับ ได้แก่ x86, x86_64, MIPS, ARMv7, Dalvik และ CHIP-8
คุณสมบัติเด่น ได้แก่การรองรับการแสดงผลแบบโต้ตอบในรูปแบบ IDA การวิเคราะห์แอปพลิเคชันแบบมัลติเธรดการสร้างแผนภูมิแสดงความคืบหน้า การประมวลผลลายเซ็นดิจิทัล (ซึ่งทำงานกับไฟล์ SDB) และเครื่องมือสำหรับการจัดการโครงการ
จะติดตั้ง Ghidra ได้อย่างไร?
สำหรับผู้ที่สนใจติดตั้งชุดเครื่องมือวิศวกรรมย้อนกลับ “Ghidra”ควรทราบว่าอย่างน้อยที่สุดจะต้องมีสิ่งต่อไปนี้:
- 4 GB RAM
- 1 GB สำหรับพื้นที่จัดเก็บ Kit
- ติดตั้ง Java 11 Runtime และ Development Kit (JDK) แล้ว
หากต้องการดาวน์โหลด Ghidra คุณต้องไปที่เว็บไซต์อย่างเป็นทางการของโปรแกรม โดยลิงก์อยู่ที่นี่
เมื่อทำตามขั้นตอนนี้เสร็จแล้ว คุณเพียงแค่ต้องแตกไฟล์แพ็กเกจที่ดาวน์โหลดมา และภายในไดเร็กทอรีนั้น คุณจะพบไฟล์ "ghidraRun" ซึ่งเป็นไฟล์ที่จะใช้เรียกใช้งานชุดเครื่องมือดังกล่าว
หากคุณต้องการทราบข้อมูลเพิ่มเติม คุณสามารถเข้าไปดูได้ที่ลิงก์ต่อไปนี้