Pyinstaller Extractor เป็นสคริปต์ Python เพื่อแยกเนื้อหาของไฟล์ปฏิบัติการที่สร้างขึ้นได้
ส่วนหัวของไฟล์ PYC จะได้รับการแก้ไขโดยอัตโนมัติเพื่อให้การถอดรหัสของ Python bytecode จะรับรู้ได้ สคริปต์สามารถทำงานบน Python 2.x และ 3.x รุ่น Pyinstaller 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.5.1, 4.6, 4.7, 4.8, 4.9, 4.10, 5.0, 5.0.1, 5.1, 5.3 5.8.0, 5.9.0, 5.10.0, 5.10.1, 5.11.0, 5.12.0, 5.13.0, 5.13.1, 5.13.2, 6.0.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 6.5.0, 6.6.0, 6.7.0 อาจจะทำงานกับเวอร์ชันอื่น ๆ ด้วย
โครงการนี้เป็นโฮสต์บน SourceForge
สคริปต์สามารถเรียกใช้ได้โดยผ่านชื่อของ EXE เป็นอาร์กิวเมนต์
$ python pyinstxtractor.py <filename>
X:>python pyinstxtractor.py <filename>
ขอแนะนำให้เรียกใช้สคริปต์ใน Python เวอร์ชันเดียวกันซึ่งใช้ในการสร้างปฏิบัติการ นี่คือการป้องกันข้อผิดพลาด unmarshalling (ถ้ามี) ในขณะที่สกัดไฟล์เก็บถาวร PYZ
X:> python pyinstxtractor.py test.exe
[+] Processing disttest.exe
[+] Pyinstaller version: 2.1+
[+] Python version: 36
[+] Length of package: 5612452 bytes
[+] Found 59 files in CArchive
[+] Beginning extraction...please standby
[+] Possible entry point: pyiboot01_bootstrap.pyc
[+] Possible entry point: test.pyc
[+] Found 133 files in PYZ archive
[+] Successfully extracted pyinstaller archive: disttest.exe
You can now use a python decompiler on the pyc files within the extracted directory
หลังจากสกัด PYC คุณสามารถใช้ decompiler Python เช่น Uncompyle6 และ Decompyle ++
X:> uncompyle6.exe test.exe_extractedtest.pyc
X:> uncompyle6.exe test.exe_extractedPYZ-00.pyz_extracted__future__.pyc
Pyinstxtractor สามารถแยกไบนารี Linux Elf โดยไม่ต้องใช้เครื่องมืออื่น ๆ
สำหรับคำถามและข้อมูลอื่น ๆ โปรดดูวิกิและคำถามที่พบบ่อย
GNU ทั่วไปใบอนุญาตสาธารณะ v3.0