Yanıtlar:
Uncompyle6 , önceki çatalları birleştirmeyi ve otomatik birim testine odaklanmayı amaçlayan en yeni araç olan Python 3.x ve 2.7 için önerilir. GitHub sayfasında daha fazla ayrıntı vardır.
Eski Uncompyle2 yalnızca Python 2.7'yi destekler. Bu, bir süre önce .pyc bayt kodunu .py'ye dönüştürmek benim için iyi sonuç verirken, unpyclib bir istisna ile çöktü.
Tüm bu araçlarla, kodunuzu değişken adları da dahil olmak üzere geri alırsınız, ancak yorum yapmazsınız.
Evet, bunu elde edebilirsiniz unpyclib
bu konuda bulunabilir pypi .
$ pip install unpyclib
Daha sonra .pyc dosyanızı kodabilirsiniz
$ python -m unpyclib.application -Dq path/to/file.pyc
print __copyright
- neden print
parantez olmadan Python 2.7 sürümünü kullanıyor ?
Easy Python Decompiler'ı deneyebilirsiniz . Decompyle ++ ve Uncompyle2 tabanlı. 1.0-3.3 python sürümlerini decompiling destekler
Not: Yukarıdaki aracın yazarıyım.
Decompyle ++ (pycdc) benim için çalışan tek şeydi: https://github.com/zrax/pycdc
Decompile Python 2.7 .pyc'de önerildi
Evet .
Ben uncompyle6 decompile kullanıyorum (hatta en son Python 3.8.0 desteği):
uncompyle6 utils.cpython-38.pyc > utils.py
ve köken python ve karşılaştırmalı python karşılaştırması şöyle:
böylece görebilirsiniz, ALMOST aynı, koda etkisi çok iyi .
Evet mümkün.
Decompyle ++ adlı mükemmel bir açık kaynaklı Python (.PYC) kod çözücü var https://github.com/zrax/pycdc/
Decompyle ++ derlenmiş Python bayt kodunu geçerli ve insan tarafından okunabilir Python kaynak koduna çevirmeyi amaçlamaktadır. Diğer projeler bunu çeşitli başarılarla başarmış olsa da, Decompyle ++, Python'un herhangi bir sürümünden bayt kodunu desteklemeye çalışması açısından benzersizdir.
Pip install pycompyle6 kullanarak kurun
pycompyle6 dosyaadı.pyc