การเปิดตัวเฟรมเวิร์กสำหรับวิศวกรรมย้อนกลับ Rizin และเครื่องตัดเปลือกกราฟิกที่เกี่ยวข้องเกิดขึ้น โครงการ Rizin เริ่มต้นจากการเป็นทางแยกของเฟรมเวิร์ก Radare2 และยังคงพัฒนาต่อไปโดยเน้นที่ API ที่สะดวกสบาย และมุ่งเน้นไปที่การวิเคราะห์โค้ดโดยไม่ต้องมีนิติเวช ตั้งแต่การแยกทาง โปรเจ็กต์ได้เปลี่ยนไปใช้กลไกที่แตกต่างกันโดยพื้นฐานสำหรับการบันทึกเซสชัน (“โปรเจ็กต์”) ในรูปแบบของสถานะตามการทำให้เป็นอนุกรม นอกจากนี้ ฐานโค้ดยังได้รับการออกแบบใหม่อย่างมากเพื่อให้สามารถบำรุงรักษาได้มากขึ้น รหัสโครงการเขียนด้วยภาษา C และเผยแพร่ภายใต้ใบอนุญาต LGPLv3
เชลล์กราฟิกของ Cutter เขียนด้วยภาษา C++ โดยใช้ Qt และเผยแพร่ภายใต้ลิขสิทธิ์ GPLv3 Cutter ก็เหมือนกับ Rizin ตรงที่มุ่งเป้าไปที่กระบวนการของโปรแกรมวิศวกรรมย้อนกลับในรหัสเครื่องหรือรหัสไบต์ (เช่น JVM หรือ PYC) มีปลั๊กอินถอดรหัสสำหรับ Cutter/Rizin ที่ใช้ Ghidra, JSdec และ RetDec
ในรุ่นใหม่:
- เพิ่มการรองรับสำหรับการสร้างลายเซ็น FLIRT ซึ่งสามารถโหลดลงใน IDA Pro ได้
- แพ็คเกจนี้ประกอบด้วยฐานข้อมูลลายเซ็นมาตรฐานสำหรับห้องสมุดยอดนิยม
- ปรับปรุงการจดจำฟังก์ชันและบรรทัดของไฟล์ปฏิบัติการใน Go สำหรับ x86/x64/PowerPC/MIPS/ARM/RISC-V;
- ภาษาตัวแทนระดับกลางใหม่ RzIL ตามทฤษฎี BAP Core (ภาษาคล้าย SMT) ได้ถูกนำมาใช้แล้ว
- เพิ่มความสามารถในการตรวจจับที่อยู่ฐานสำหรับไฟล์ "ดิบ" โดยอัตโนมัติ
- มีการรองรับการโหลดหน่วยความจำ “snapshots” ตามรูปแบบ Windows PageDump/Minidump ในโหมดดีบัก
- ปรับปรุงการทำงานกับดีบักเกอร์ระยะไกลโดยใช้ WinDbg/KD
- ในขณะนี้ การสนับสนุนสถาปัตยกรรม ARMv7/ARMv8, AVR, 6052 และ Brainfuck ได้ถูกถ่ายโอนไปยัง RzIL ใหม่แล้ว ในรุ่นถัดไป มีการวางแผนที่จะแปล SuperH, PowerPC และ x86 บางส่วนให้เสร็จสิ้น
นอกจากนี้ ยังมีการเปิดตัว:
- rz-libyara – ปลั๊กอินสำหรับ Rizin/Cutter เพื่อรองรับการโหลดและสร้างลายเซ็นในรูปแบบ Yara
- rz-libdemangle – ไลบรารีการถอดรหัสชื่อฟังก์ชันสำหรับภาษา C++/ObjC/Rust/Swift/Java;
- rz-ghidra – ปลั๊กอินสำหรับ Rizin/Cutter สำหรับการถอดรหัส (ขึ้นอยู่กับรหัส Ghidra C++);
- jsdec – ปลั๊กอินสำหรับ Rizin/Cutter สำหรับการถอดรหัสการพัฒนาดั้งเดิม
- rz-retdec – ปลั๊กอินสำหรับ Rizin/Cutter สำหรับการถอดรหัส (ขึ้นอยู่กับ RetDec);
- rz-tracetest – ยูทิลิตี้สำหรับตรวจสอบความถูกต้องของการแปลรหัสเครื่องเป็น RzIL โดยการเปรียบเทียบกับการติดตามการจำลอง (อิงจาก QEMU, VICE)
ที่มา: opennet.ru