Reko (สวีเดน: "เหมาะสม มีความรับผิดชอบ") เป็นตัวถอดรหัสสำหรับไบนารีของรหัสเครื่อง โครงการนี้สามารถใช้ได้อย่างเสรีภายใต้สัญญาอนุญาตสาธารณะทั่วไปของ GNU
โปรเจ็กต์ประกอบด้วยส่วนหน้า เอ็นจิ้นการถอดรหัสหลัก และส่วนหลังเพื่อช่วยให้บรรลุเป้าหมาย บรรทัดคำสั่ง, Windows GUI และส่วนหน้า ASP.NET มีอยู่ในขณะที่เขียน กลไกการถอดรหัสจะได้รับอินพุตจากส่วนหน้าในรูปแบบของไฟล์ปฏิบัติการแต่ละไฟล์หรือไฟล์โปรเจ็กต์ตัวถอดรหัส ไฟล์โปรเจ็กต์ Reko มีข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ไบนารี ซึ่งเป็นประโยชน์ต่อกระบวนการถอดรหัสหรือสำหรับการจัดรูปแบบเอาต์พุต จากนั้นกลไกการถอดรหัสจะดำเนินการวิเคราะห์ไบนารีอินพุต
มุมมองแผนที่ไบต์ของไฟล์ปฏิบัติการไบนารี ARM ที่โหลดแล้ว | มุมมองที่คอมไพล์แล้วของไฟล์ปฏิบัติการไบนารี ARM ที่โหลดแล้ว |
Reko มีความทะเยอทะยานที่จะสนับสนุนการคอมไพล์สถาปัตยกรรมโปรเซสเซอร์ต่างๆ และรูปแบบไฟล์ปฏิบัติการโดยมีการรบกวนผู้ใช้น้อยที่สุด สำหรับรายการทั้งหมด โปรดดูที่หน้าไบนารีที่รองรับ
โปรดทราบว่าลิขสิทธิ์ซอฟต์แวร์จำนวนมากห้ามไม่ให้มีการถอดรหัสหรือวิศวกรรมย้อนกลับอื่นๆ ของไบนารีของรหัสเครื่อง ใช้ตัวถอดรหัสนี้เฉพาะเมื่อคุณมีสิทธิ์ตามกฎหมายในการถอดรหัสไบนารี่ (เช่น หากไบนารีเป็นของคุณเอง)
การเผยแพร่อย่างเป็นทางการจะเผยแพร่ทุก ๆ สองสามเดือนบน Github และ SourceForge ผู้ใช้ที่ไม่สามารถหรือไม่สร้าง Reko ด้วยตนเองได้สามารถดาวน์โหลดเอาต์พุตของตัวสร้างการรวม Cirrus CI หรือตัวสร้างการรวม Github Actions โดยปกติแล้ว คุณสามารถสร้างโครงการได้จากแหล่งที่มา: ดู "การแฮ็ก" ด้านล่าง
ต้องติดตั้งซอฟต์แวร์ที่จำเป็นต้องมีต่อไปนี้บนเครื่องของคุณก่อน:
.NET 6.0 (https://www.microsoft.com/net/download/dotnet-framework-runtime)
ดาวน์โหลดตัวติดตั้งที่เหมาะสมและรันบนเครื่องเป้าหมาย
หลังจากการติดตั้ง คุณสามารถดำเนินการต่อโดยการดาวน์โหลดไบนารีโดยตรงจากเซิร์ฟเวอร์บิลด์การรวม หรือโดยการสร้าง Reko จากแหล่งที่มา (ดู Hacking
ด้านล่าง)
หากต้องการทำความคุ้นเคยกับคุณสมบัติต่างๆ ของ Reko คุณสามารถอ่านคู่มือผู้ใช้ได้ หากคุณสนใจในการทำงานภายในของโครงการ โปรดดูที่วิกิ
คุณสามารถรายงานปัญหาใดๆ ที่คุณพบหรือถามคำถามที่เกี่ยวข้องกับ Reko ได้ในตัวติดตามปัญหา คุณยังสามารถลองใช้ห้องสนทนา Reko Gitter.im ได้ Reko สร้างขึ้นจากความพยายามของอาสาสมัครในเวลาว่าง ดังนั้นควรปรับความคาดหวังด้านเวลาตอบสนองของคุณให้เหมาะสม
หากต้องการสร้าง reko ให้เริ่มด้วยการโคลน https://github.com/uxmal/reko คุณสามารถใช้ IDE หรือบรรทัดคำสั่งเพื่อสร้างไฟล์โซลูชัน Reko-decompiler.sln
Reko ต้องการ .NET 6.0 SDK เพื่อคอมไพล์ หากคุณเป็นผู้ใช้ IDE ให้ใช้ Visual Studio 2022 เวอร์ชันล่าสุด หากคุณต้องการสร้างโดยใช้บรรทัดคำสั่ง ให้ใช้คำสั่ง
dotnet msbuild -p:แพลตฟอร์ม={แพลตฟอร์ม} -p:การกำหนดค่า={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
แทนที่ {config}
ด้วย Debug
หรือ Release
และ {platform}
ด้วย x64
หรือ x86
หมายเหตุ : โปรดแจ้งให้เราทราบหากคุณยังไม่สามารถคอมไพล์ได้ เพื่อให้เราสามารถช่วยคุณแก้ไขปัญหาได้
หากคุณสนใจที่จะร่วมเขียนโค้ด โปรดดูแผนผังสำหรับพื้นที่ต่างๆ ที่จะสำรวจ Wiki มีข้อมูลเพิ่มเติมเกี่ยวกับการทำงานภายในของโครงการ Reko โปรดปรึกษาคู่มือสไตล์
คุณจะได้รับคำเตือนหรือข้อผิดพลาดเมื่อโหลดโซลูชันใน Visual Studio หากคุณไม่ได้ติดตั้งชุดเครื่องมือ WiX บนเครื่องพัฒนาของคุณ คุณสามารถเพิกเฉยต่อคำเตือนได้อย่างปลอดภัย ชุดเครื่องมือ WiX ใช้เมื่อสร้างแพ็คเกจตัวติดตั้ง MSI เท่านั้น คุณไม่จำเป็นต้องสร้างโปรแกรมติดตั้งหากคุณสามารถคอมไพล์โปรเจ็กต์ได้แล้ว: กระบวนการสร้างจะคัดลอกไฟล์ที่จำเป็นทั้งหมดลงในไดเร็กทอรีเดียว หากคุณต้องการสร้างตัวติดตั้ง MSI ด้วย WiX toolchain คุณสามารถดาวน์โหลดได้ที่นี่: http://wixtoolset.org/releases/
ขึ้นอยู่กับสิ่งที่คุณทำ Visual Studio อาจพยายามสร้าง NativeProxy ใหม่ซึ่งขึ้นอยู่กับ CMake คุณสามารถติดตั้ง CMake และตรวจสอบให้แน่ใจว่าได้เพิ่มลงใน PATH ของคุณหรือปิดการใช้งานโครงการใน Visual Studio
การติดตั้ง CMake เป็นส่วนหนึ่งของ Visual Studio นั้นเพียงพอที่จะเรียกใช้ msbuild จาก Developer Command Prompt
แต่ไม่ใช่เมื่อสร้างจากภายใน VS เว้นแต่คุณจะเพิ่มสิ่งนั้นลงใน PATH ทั่วโลกของคุณ การติดตั้ง CMake ภายนอกทำให้คุณสามารถเพิ่มลงใน PATH ระหว่างการติดตั้งได้
หมายเหตุ : มีปัญหาใน Visual Studio บางเวอร์ชันที่สามารถแสดงออกมาได้เมื่อโหลดโปรเจ็กต์ คุณจะสังเกตเห็นว่า Visual Studio ติด "การรันงานพื้นหลัง" ค้างอยู่ และจะไม่ยอมให้คุณสร้างโปรเจ็กต์ วิธีแก้ปัญหาคือคลิกขวาที่โปรเจ็กต์ "NativeProxy" ในตัวสำรวจโซลูชัน และเลือก "Unload Project" จากนั้นโครงการจะสามารถโหลดและสร้างได้อย่างถูกต้อง ปัญหานี้ไม่เกิดขึ้นเมื่อสร้างจากบรรทัดคำสั่ง
โฟลเดอร์โซลูชัน Drivers
ประกอบด้วยไฟล์ปฏิบัติการที่ทำหน้าที่เป็นอินเทอร์เฟซผู้ใช้ ไดเรกทอรีย่อย WindowsDecompiler
ประกอบด้วยไคลเอนต์ GUI สำหรับส่วนติดต่อผู้ใช้ Windows Forms ไดเรกทอรีย่อย AvaloniaShell
มีไคลเอนต์ GUI สำหรับอินเทอร์เฟซผู้ใช้ Avalonia ข้ามแพลตฟอร์ม (ยังอยู่ระหว่างการปรับปรุง) CmdLine
เป็นโปรแกรมควบคุมบรรทัดคำสั่ง
ดูบันทึกการเผยแพร่สำหรับรุ่นล่าสุด