คำตอบ:
คุณสามารถใช้IDA ProโดยHex-Rays โดยปกติคุณจะไม่ได้รับ C ++ ที่ดีจากไบนารีเว้นแต่คุณจะรวบรวมข้อมูลในการดีบัก เตรียมใช้แรงงานคนจำนวนมากในการย้อนกลับรหัส
หากคุณไม่ได้ตัดไบนารีออกมีความหวังว่า IDA Pro สามารถสร้างรหัส C-alike เพื่อให้คุณใช้งานได้ โดยปกติแล้วมันจะหยาบมากอย่างน้อยก็เมื่อสองสามปีก่อน
ข้อมูลจะถูกทิ้งในกระบวนการคอมไพล์ แม้ว่าตัวถอดรหัสจะสามารถสร้างรหัสที่เทียบเท่าตรรกะกับคลาสและทุกอย่างได้ (อาจไม่สามารถทำได้) ส่วนการจัดทำเอกสารด้วยตนเองจะหายไปในรหัสรุ่นที่ปรับให้เหมาะสม ไม่มีชื่อตัวแปรไม่มีชื่อประจำไม่มีชื่อคลาส - แค่ที่อยู่
ใช่ แต่ไม่มีใครสามารถจัดการเพื่อสร้างรหัสที่อ่านได้เพียงพอที่จะคุ้มค่ากับความพยายาม คุณจะใช้เวลามากขึ้นในการพยายามอ่านซอร์สที่คอมไพล์ด้วยบล็อกแอสเซมเบลอร์ภายในมากกว่าการเขียนแอพเก่าของคุณใหม่ตั้งแต่ต้น
ฉันไม่เห็นตัวถอดรหัสใด ๆ ที่สร้างรหัส C ++ ฉันเคยเห็นการทดลองสองสามรายการที่พยายามสร้างรหัส C อย่างสมเหตุสมผล แต่พวกเขามักจะขึ้นอยู่กับการจับคู่รูปแบบการสร้างรหัสของคอมไพเลอร์เฉพาะ (ซึ่งอาจมีการเปลี่ยนแปลงมันเป็นเวลานานแล้วที่ฉันได้ตรวจสอบสิ่งนี้ครั้งล่าสุด ) ข้อมูลเชิงสัญลักษณ์ใด ๆ จะหายไปแน่นอน Google สำหรับ "decompiler"
ขึ้นอยู่กับว่าโค้ดต้นฉบับมีขนาดใหญ่เพียงใดและเขียนได้ดีเพียงใดการเริ่มต้นอีกครั้งในภาษาโปรดของคุณ (ซึ่งอาจยังคงเป็น C ++) และเรียนรู้จากข้อผิดพลาดที่เกิดขึ้นในเวอร์ชันล่าสุด ไม่เคยมีใครพูดเกี่ยวกับการเขียนหนึ่งเพื่อทิ้ง?
nb เห็นได้ชัดว่าหากเป็นผลิตภัณฑ์ขนาดใหญ่อาจไม่คุ้มกับเวลา
objdump
สำหรับ Linux