Bagaimana cara decompile file .pyc

Penulis masih mencoba untuk melakukan hal ini, bagi yang ingin mencoba, untuk sementara dapat membaca referensi dibawah ini. Sebagai informasi, .pyc yang saya miliki "sepertinya" dikompilasi menggunakan python 2.7

Percobaan 1, menggunakan unpyclib

Laskar@OpenThinkLabs:$python -m unpyclib.application -Dq table.pyc

__doc__ = 'Generic table model'

------

File "/usr/local/lib/python2.7/dist-packages/unpyclib/decompile.py", line 1062, in codeDecompile

stack, curIndent)

File "/usr/local/lib/python2.7/dist-packages/unpyclib/decompile.py", line 193, in _POP_TOP

r += ind(curIndent) + str(o) + '\n'

Traceback (most recent call last):

File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main

"__main__", fname, loader, pkg_name)

File "/usr/lib/python2.7/runpy.py", line 72, in _run_code

exec code in run_globals

File "/usr/local/lib/python2.7/dist-packages/unpyclib/application.py", line 242, in <module>

start()

File "/usr/local/lib/python2.7/dist-packages/unpyclib/application.py", line 225, in start

print decompiler.decompile(),

File "/usr/local/lib/python2.7/dist-packages/unpyclib/decompile.py", line 1102, in decompile

flowGraph.DFADecompile(self)

File "/usr/local/lib/python2.7/dist-packages/unpyclib/structure.py", line 807, in DFADecompile

mode='conditional')

File "/usr/local/lib/python2.7/dist-packages/unpyclib/decompile.py", line 1078, in codeDecompile

traceback.print_tb(sys.exc_info()[2]) + \

TypeError: cannot concatenate 'str' and 'NoneType' objects

Percobaan 2, menggunakan uncompyle

Berhasil! :) [Update : HASIL TIDAK SEMPURNA]

Jika ingin decompile satu file :

Laskar@OpenThinkLabs: $ uncompyle2 -o tmp/ table.pyc

Jika ingin docompile seluruh file :

Laskar@OpenThinkLabs: $ uncompyle2 -o tmp/ *

working directory, adalah direktori tempat file .pyc berada.

Untuk informasi lebih lanjut tentang cara menggunakan uncompyle, tinggal jalankan perintah

Laskar@OpenThinkLabs: $ uncompyle2 -h

Percobaan 3, menggunakan fupy

Setelah mencoba menggunakan fupy [4] hasilnya sempurna, tidak ada potongan kode yang hilang, jika menggunakan uncompyle2, ditemukan beberapa potongan kode yang hilang, sehingga jika dikompilasi ulang outputnya tidak akan sama.

Referensi