pycデコンパイル
pyinstallerで実行ファイルにしたpython3.9.13のスクリプトをデコンパイルしたかったが、uncompyle6だのdecompyle3だのunpycだのpython-exe-unpackerだのごちゃごちゃしてる上にできなくて苦しんだので成功した方法をメモする。
結論
pyinstxtractorとpycdcを使う。
やり方
pythonの実行ファイルをデコンパイルするには以下の二段階の手順を行う必要がある。
- バイトコード(.pycのやつ)を抽出する
- バイトコードをpythonコードにデコンパイルする
バイトコード抽出
抽出自体は問題なかったが先頭にあるべきマジックナンバーが欠如するものがあり、そのままだとデコンパイルが失敗することがある。
pyinstxtractorだと欠如していない正当なpycファイルとして抽出できた。
欠如している場合は、こちらのサイトに記載されているやり方で補完すれば問題ない。
デコンパイル
ここがまったくうまくいかなかった。
pycのデコンパイルで一番有名であろうuncompyle6、decompyle3では、3.9のバイトコードに対応していないらしく失敗してしまう。
pycdcだとうまくいった。