ไลบรารีและชุดเครื่องมือบรรทัดคำสั่งสำหรับการแยกวิเคราะห์สัญลักษณ์การดีบักจากเกม PS2 รุ่น 1.x มุ่งเน้นไปที่สัญลักษณ์ STABS ในส่วน .mdebug ในขณะที่รุ่น 2.x ยังสามารถแยกวิเคราะห์สัญลักษณ์ ELF มาตรฐานและสัญลักษณ์ตัวเชื่อมโยง SNDLL ได้อีกด้วย การสนับสนุน DWARF อยู่ระหว่างดำเนินการ
ตัวแยกส่วนสัญลักษณ์ C++ พร้อมรองรับทั้งรูปแบบ Mangling Itanium C++ ABI (GCC 3+) ใหม่และรูปแบบ GCC 2 แบบเก่า
เครื่องแยกชิ้นส่วน EE core MIPS ที่ทำงานได้ครึ่งหนึ่ง อาจจะไม่น่าสนใจมากนัก
ตัวแยกวิเคราะห์ตารางสัญลักษณ์และรถเท สามารถดึงข้อมูลต่อไปนี้:
รองรับรูปแบบเอาต์พุตต่อไปนี้:
สิ่งนี้มีจุดประสงค์เพื่อใช้กับ ghidra-emotionengine-reloaded (>= 2.1.0 หรือหนึ่งในบิลด์ที่ไม่เสถียร) เพื่อนำเข้าข้อมูลทั้งหมดนี้ไปยัง Ghidra โปรดทราบว่าแม้จะมีชื่อ เครื่องวิเคราะห์ STABS ก็ควรใช้งานได้กับ R3000 (IOP) และโปรเซสเซอร์ MIPS อื่นๆ ด้วยเช่นกัน
สิ่งนี้คล้ายกับ stdump ยกเว้นว่าจะจัดระเบียบเอาต์พุตเป็นไฟล์ต้นฉบับแยกกัน และมีคุณสมบัติพิเศษมากมายที่ออกแบบมาเพื่อพยายามทำให้เอาต์พุตดังกล่าวใกล้กับซอร์สโค้ดที่ถูกต้องมากขึ้น ต้องระบุไฟล์ SOURCES.txt
ในไดเร็กทอรีเอาต์พุต ซึ่งสามารถสร้างขึ้นได้โดยใช้คำสั่ง stdump files
(คุณควรแก้ไขเส้นทางด้วยตนเองเพื่อให้สัมพันธ์กับไดเร็กทอรีเอาต์พุต และลบที่อยู่) นอกจากนี้ ไฟล์ที่ไม่ว่างเปล่าซึ่งไม่ได้ขึ้นต้นด้วย // STATUS: NOT STARTED
จะไม่ถูกเขียนทับ
หากมีไฟล์ FUNCTIONS.txt
อยู่ในไดเร็กทอรีเอาต์พุต ตามที่สามารถสร้างได้โดยใช้สคริปต์ CCCDecompileAllFunctions.java
ที่รวมไว้สำหรับ Ghidra โค้ดจากไฟล์นั้นจะถูกนำมาใช้เพื่อเติมเนื้อหาของฟังก์ชันในเอาต์พุต ในกรณีนี้ กลุ่มแรกของการประกาศตัวแปรโลคัลที่ปล่อยออกมาจะเป็นกลุ่มที่กู้คืนจากสัญลักษณ์ และกลุ่มที่สองจะมาจากโค้ดที่ให้ไว้ในไฟล์ฟังก์ชัน ชื่อฟังก์ชันถูกแยกส่วน
ข้อมูลตัวแปรทั่วโลกจะถูกพิมพ์ในลักษณะที่มีโครงสร้างตามประเภทข้อมูล
ประเภทข้อมูลจะถูกจัดเรียงเป็นไฟล์ที่เกี่ยวข้อง เนื่องจากข้อมูลนี้ไม่ได้จัดเก็บไว้ในตารางสัญลักษณ์ uncc จะใช้การศึกษาพฤติกรรมเพื่อแมปประเภทกับไฟล์ ประเภทจะถูกใส่ไว้ในไฟล์ .c
หรือ .cpp
เมื่อมีหน่วยการแปลเพียงหน่วยเดียวที่ประเภทนั้นปรากฏใน และไฟล์ .h
เมื่อมีหลายไฟล์ (และด้วยเหตุนี้ เมื่อต้องใช้การวิเคราะห์พฤติกรรมเพื่อกำหนดตำแหน่งที่จะวาง)
แนะนำให้ใช้ตัวจัดรูปแบบโค้ด เช่น clang-format
หรือ astyle
ในเอาต์พุต
cmake -B bin/
cmake --build bin/
mdebugread.c
จาก gdb (อ่าน)ecoff.c
จากแก๊ส (การเขียน)include/coff/sym.h
จาก binutils (ส่วนหัว)stabs.c
จาก binutils (อ่าน)stabsread.c
จาก gdb (อ่าน)dbxread.c
จาก gdb (อ่าน)dbxout.c
จาก gcc (เขียน)stab.def
จาก gcc (รหัสสัญลักษณ์) ซอร์สโค้ดสำหรับไลบรารี CCC และเครื่องมือบรรทัดคำสั่งที่เกี่ยวข้องเผยแพร่ภายใต้ใบอนุญาต MIT
มีการใช้ตัวแยกส่วน GNU ซึ่งมีไฟล์ต้นฉบับที่ได้รับอนุญาตภายใต้ GPL และ LGPL RapidJSON ใช้ภายใต้ใบอนุญาต MIT ชุดทดสอบใช้ไลบรารี GoogleTest ภายใต้ใบอนุญาต BSD 3-Clause