เป็นไปได้หรือไม่ที่จะรับข้อมูลบางอย่างจากไฟล์. pyc ที่สร้างจากไฟล์. py
เป็นไปได้หรือไม่ที่จะรับข้อมูลบางอย่างจากไฟล์. pyc ที่สร้างจากไฟล์. py
คำตอบ:
Uncompyle6 ใช้งานได้กับ Python 3.x และ 2.7 - ตัวเลือกที่แนะนำเนื่องจากเป็นเครื่องมือล่าสุดโดยมีเป้าหมายที่จะรวมการส้อมก่อนหน้านี้และมุ่งเน้นไปที่การทดสอบหน่วยอัตโนมัติ หน้า GitHubมีรายละเอียดเพิ่มเติม
Uncompyle2รุ่นเก่ารองรับ Python 2.7 เท่านั้น วิธีนี้ใช้งานได้ดีสำหรับฉันในช่วงเวลาที่ผ่านมาในการถอดรหัส. pyc bytecode ให้เป็น. py ในขณะที่ unpyclib ล้มเหลวโดยมีข้อยกเว้น
ด้วยเครื่องมือเหล่านี้คุณจะได้รับรหัสกลับมาพร้อมชื่อตัวแปร แต่ไม่มีความคิดเห็น
ใช่คุณจะได้รับมันกับunpyclib
ที่สามารถพบได้ในpypi
$ pip install unpyclib
คุณสามารถถอดรหัสไฟล์. pyc ของคุณได้
$ python -m unpyclib.application -Dq path/to/file.pyc
print __copyright
- ทำไมมันถึงใช้เวอร์ชั่น Python 2.7 ที่print
ไม่มีวงเล็บ
คุณอาจลองง่ายหลาม Decompiler มันขึ้นอยู่กับ Decompyle ++ และ Uncompyle2 มันรองรับ decompiling python เวอร์ชั่น 1.0-3.3
หมายเหตุ: ฉันเป็นผู้เขียนเครื่องมือด้านบน
Decompyle ++ (pycdc) เป็นคนเดียวที่ทำงานกับฉัน: https://github.com/zrax/pycdc
แนะนำในDecompile Python 2.7 .pyc
ใช่แล้ว
ฉันใช้decompile uncompyle6 (แม้สนับสนุน Python 3.8.0 ล่าสุด):
uncompyle6 utils.cpython-38.pyc > utils.py
และไพ ธ อนต้นทางและไพ ธ อนที่คอมไพล์แล้วเปรียบเทียบเป็นแบบนี้:
เพื่อให้คุณสามารถดูเกือบเดียวกันแยกผลดีมาก
ใช่มันเป็นไปได้
มีตัวถอดรหัสคอมไพล์โอเพนซอร์ส (.PYC) ที่สมบูรณ์แบบที่เรียกว่า Decompyle ++ https://github.com/zrax/pycdc/
Decompyle ++ มีจุดมุ่งหมายเพื่อแปลไพ ธ อนท์ไพ ธ อนรหัสที่คอมไพล์กลับไปเป็นซอร์สโค้ดไพ ธ อนที่ถูกต้องและมนุษย์อ่านได้ ในขณะที่โครงการอื่น ๆ ประสบความสำเร็จในเรื่องนี้ด้วยความสำเร็จที่แตกต่างกัน Decompyle ++ นั้นมีความพิเศษที่จะสนับสนุนไบต์รหัสจาก Python ทุกรุ่น
ติดตั้งโดยใช้ pip install pycompyle6
pycompyle6 filename.pyc