QTreanalyzer เป็นเครื่องวิเคราะห์ GHIDRA ที่ออกแบบมาเพื่อย้อนกลับไบนารีเครื่องยนต์ที่ใช้เฟรมเวิร์ก QT ฟังก์ชั่นหลักของมันคือการกู้คืนข้อมูลและวิธีการเฉพาะของ QT ซึ่งให้ข้อมูลเชิงลึกที่มีคุณค่าในโครงสร้างไบนารี
เครื่องวิเคราะห์นี้เชื่อมโยงกับรุ่น Ghidra ที่ติดตั้งอยู่ ปัจจุบันจำเป็นต้องสร้างมัน ส่วนขยายที่สร้างขึ้นจะมีให้ในอนาคตสำหรับรุ่น Ghidra ล่าสุด
QtREAnalyzerQtREAnalyzer cd QtREAnalyzer Q tREAnalyzer$GHIDRA_DIR ด้วยไดเรกทอรีการติดตั้งของคุณ) ตัวอย่างเช่นหากคุณมีเส้นทางการติดตั้ง Ghidra ต่อไปนี้ C:ghidra_11.0.3_PUBLIC คุณจะเรียกใช้ gradle -PGHIDRA_INSTALL_DIR=C:ghidra_11.0.3_PUBLIC gradle -PGHIDRA_INSTALL_DIR= $GHIDRA_DIR File -> Install Extensions... คลิกที่เครื่องหมาย + และเลือก QtREAnalyzerQtREAnalyzerdistghidra_*_QtREAnalyzer.zip แล้วคลิกตกลง ในการตรวจสอบ QTreanalyzer ได้รับการติดตั้งอย่างถูกต้องคุณสามารถเปิด CodeBrowser และเลือก Analysis -> Auto Analyze ... A และตรวจสอบว่ามีตัวเลือก QtReAnalyzer อยู่

ขณะนี้ QTreanalyzer ทำงานกับไบนารี X32 หรือ X64 เท่านั้นที่มี RTTI (เช่นคอมไพเลอร์ MSVC) นี่เป็นเช่นนั้นเนื่องจาก QTreanalyzer ใช้ RTTI เพื่อค้นหาว่าคลาสที่สืบทอดมาจาก QObject สิ่งนี้กล่าวว่าหากใครต้องการขยายเครื่องวิเคราะห์นี้เพื่อทำงานกับไบนารีโดยไม่ต้อง RTTI ทั้งหมดที่จำเป็นต้องทำคือแก้ไขไฟล์ RttiClass.java อย่างเหมาะสม
ในกรณีที่หายากมากลายเซ็นที่ไม่ถูกต้องจะถูกนำไปใช้กับฟังก์ชั่นหรือคุณสมบัติจะถูกเพิ่มลงในประเภทข้อมูลในที่อยู่ที่ไม่ถูกต้อง สิ่งนี้แทบจะเป็นไปไม่ได้เลยที่จะแก้ไขได้เนื่องจากวิธีที่ QTreanalyzer Maps สัญญาณ QT, สล็อตและลายเซ็นคุณสมบัติไปยังที่อยู่ฟังก์ชั่นที่เกี่ยวข้อง/การชดเชยคุณสมบัติเป็นแบบฮิวริสติก สิ่งนี้ไม่ควรเป็นข้อ จำกัด ที่สำคัญในไฟล์ที่มีสัญญาณ QT มากกว่า 10,000 รายการและการตรวจสอบสล็อตด้วยตนเองเป็นตัวอย่างที่สำคัญฉันพบสัญลักษณ์ที่มีป้ายกำกับอย่างผิดพลาดเพียงไม่กี่ตัวเท่านั้น
QTreanalyzer จะเป็นไปไม่ได้หากไม่มีทรัพยากรที่น่าทึ่งดังต่อไปนี้: