คอลเลกชันของยูทิลิตี้ที่เกี่ยวข้องกับ PWN/CTF สำหรับ Ghidra
ยูทิลิตี้นี้จะพยายามแทนที่ค่าคงที่ที่รู้จักในฟังก์ชั่นกับคู่ที่อ่านได้ของมนุษย์

ยูทิลิตี้นี้จะพยายามค้นหาและระบุการโทรระบบ (และอาร์กิวเมนต์)
คำอธิบายประกอบในมุมมอง decompiler
อาร์กิวเมนต์มีคำอธิบายประกอบในมุมมองถอดชิ้นส่วน
เวิร์กโฟลว์ที่ถูกต้องในการแปลงข้อมูลที่แสดงในตัวถูกดำเนินการคือคลิกขวาที่ค่าและเลือกประเภทการแปลงภายใต้เมนู Convert อย่างไรก็ตามตามคำขอฉันได้ทำสคริปต์เพื่อแปลงประเภทการแสดงผลของตัวถูกดำเนินการเป็น char เพื่อให้สามารถใช้กับแป้นพิมพ์ลัดเพื่อความสะดวก (รูปแบบ IDA)
ในการใช้มันเลือกตัวเลือก In Tool ในสคริปต์ UtilitiesConvertCharacter.py จากนั้นเลือกตัวถูกดำเนินการตัวเลขและกด shift+r เพื่อแปลงเป็นสตริง คุณสามารถเปลี่ยนทางลัดได้โดยการแก้ไขบรรทัดที่มีความคิดเห็นด้วย keybinding ที่ด้านบนของสคริปต์
ความแตกต่างที่น่ารำคาญอย่างหนึ่งระหว่าง Ghidra และ Ida คือ Ghidra ไม่พยายามข้ามไปที่ main() (หรือจุดเริ่มต้น) เมื่อคุณโหลดไบนารี สคริปต์ UtilitiesGotoMain.py มีจุดมุ่งหมายเพื่อแก้ไขสิ่งนั้น เรียกใช้โดยตรงหรือถ้ารวมเข้ากับ In Tool แล้วกด ctrl + m และจะพยายามค้นหา main() แบบไดนามิกและย้ายโฟกัสไปยังฟังก์ชั่นนั้น
หากไม่มีฟังก์ชั่น main() ที่ตรวจพบมันจะข้ามไปยังฟังก์ชั่นรายการ หากคุณทำงานบนไบนารีที่ถูกถอดออกมันจะเปลี่ยนชื่อฟังก์ชั่น main สำหรับคุณ
โคลนที่เก็บหรือดาวน์โหลดและแยกบางแห่ง ใน Ghidra ให้เปิด Script Manager ( Window -> Script Manager ) คลิกปุ่ม Script Directory และเพิ่ม pwndra/scripts ลงในรายการ
เมื่อเพิ่มไดเรกทอรีสคริปต์ลงใน Ghidra คุณสามารถค้นหาสคริปต์ในหมวดหมู่ Pwn คุณสามารถเรียกใช้สคริปต์โดยตรงจาก Script Manager หากคุณต้องการ แต่สคริปต์ยังมีเมนูและแป้นพิมพ์ลัดเพื่อความสะดวกในการใช้งาน ในการเปิดใช้งานเมนูและทางลัดคุณต้องคลิกช่องทำเครื่องหมาย In Tool ถัดจากสคริปต์ที่คุณต้องการรวมเข้ากับเครื่องมือ
หากคุณคลิก In Tool เมนูจะอยู่ภายใต้ Analysis -> Pwn และทางลัดใด ๆ สำหรับสคริปต์จะแสดงอยู่ในรายการเมนูที่ใช้ทางลัดนั้น
มีหลายส่วนที่มีอยู่:
คุณสามารถเรียกใช้หนึ่งในสคริปต์ส่วนหน้าโดยตรง (ผ่าน Script Manager หรือถ้าคุณคลิก In Tool คุณสามารถเข้าถึงเมนู; Analysis -> Pwn -> Tool Name )
มีส่วนหน้า Auto ที่จะตรวจจับโปรแกรมโหลดปัจจุบันสำหรับคุณโดยอัตโนมัติ นอกจากนี้ยังสามารถเข้าถึงได้ด้วยแป้นพิมพ์ลัดซึ่งระบุไว้ในรายการเมนูสำหรับเครื่องมือ
สคริปต์มีสองโหมดการทำงานค่าเริ่มต้นคือการทำงานทั่วโลกที่สองคือการทำงานเฉพาะในการเลือกที่กำหนดเท่านั้น สิ่งนี้มีประโยชน์สำหรับเวลาที่คุณมีสองโหมดไบนารีที่เชื่อมโยงกันในรหัสเดียวกันเช่น i386 / amd64 หรือ thumb / arm