.pyファイルから生成された.pycファイルからいくつかの情報を取得することは可能ですか?
9 に答える
Uncompyle6は Python 3.x および 2.7 で動作します。これは最新のツールであるため、以前のフォークを統合し、自動化された単体テストに重点を置いているため、推奨されるオプションです。GitHub ページに詳細があります。
- Python 3.7 以降を使用している場合は、3.7 以降に焦点を当てた Uncompyle6 のフォークである decompyle3 を試すこともできます。
- 必要に応じて、これらのプロジェクトで GitHub の問題を提起してください。両方とも、さまざまな Python バージョンで単体テスト スイートを実行します。
これらのツールを使用すると、変数名とドキュメント文字列を含むコードを取得できますが、コメントは含まれません。
古いUncompyle2は Python 2.7 のみをサポートします。これは、.pyc バイトコードを .py に逆コンパイルするために少し前にうまく機能しましたが、unpyclib は例外でクラッシュしました。
Easy Python Decompilerを試すことができます。Decompyle++ と Uncompyle2 に基づいています。Python バージョン 1.0-3.3 の逆コンパイルをサポートしています。
注: 私は上記のツールの作成者です。
はい、pypiunpyclib
で見つけることができます。
$ pip install unpyclib
.pyc ファイルを逆コンパイルするよりも
$ python -m unpyclib.application -Dq path/to/file.pyc
Decompyle++ (pycdc) was the only one that worked for me: https://github.com/zrax/pycdc
was suggested in Decompile Python 2.7 .pyc
はい、可能です。
Decompyle++ https://github.com/zrax/pycdc/と呼ばれる完全なオープンソースの Python (.PYC) 逆コンパイラがあります。
Decompyle++ は、コンパイルされた Python バイトコードを有効で人間が読める Python ソース コードに変換することを目的としています。他のプロジェクトはさまざまな成功を収めてこれを達成しましたが、Decompyle++ は、Python の任意のバージョンからのバイトコードをサポートしようとするという点で独特です。
pip install pycompyle6 を使用してインストールします
pycompyle6 ファイル名.pyc
pyc を逆コンパイルする必要があるが、python 3.9 がインストールされている場合は、uncompyle6 を強制的に実行できます。完璧ではありませんが、機能します。site-packages\uncompyle6\bin\uncompile.py を編集するだけです
def main_bin():
if not (sys.version_info[0:2] in ((2, 6), (2, 7), (3, 0),
(3, 1), (3, 2), (3, 3),
(3, 4), (3, 5), (3, 6),
(3, 7), (3, 8), (3, 9)
インストールしたバージョンを他のバージョンと同じ形式で追加して保存するだけです。少なくとも実行されます。