pyinstxtractor.pyとuncompyle 6

1368 ワード

  • の2日前、前学期はpythonでアルゴリズムを封印し、exeフォーマット
  • にパッケージしました.
  • その後、コンピュータはハードディスクを交換して、元のディスクの格、まだバックアップの習慣がなくて、だからソースコードは
  • ありません
  • なので、現在のexeをpythonソースコードに逆コンパイルします.
  • pyinstxtractor.py分解exeはpyc
  • pyinstxtractor.pyネット上の検索はダウンロードすることができて、exeディレクトリに置いて、python pyinstxtractor.py xxx.exe
  • 解体ディレクトリ
  • を生成する.
    --- xxx.exe_extracted
       -- out00-PYZ.pyz_extracted
          -   .pyc  
       -- out00-PYZ.pyz
       -- some
       -- others
       -- xxx(          )
    
  • uncompyleの逆コンパイルをインストールするには必要です.pycファイルは.py
  • pip install uncompyle
    
  • を使用
    uncompyle6 input.pyc > output.py
    
  • 反コンパイルされた.pyファイルのフォーマットにはいくつかの問題があります.もちろん、pythonのフォーマットが間違っています.正しくありません.それは論理エラーです.だから、修正する必要があります.
  • もう一つ質問があります.pycファイルの数が間違っていることがわかりました.そのステップでコンソールに表示されているエントリファイルを分解します.つまり、上の分解ディレクトリに接尾辞のないファイルです.
  • 実はそれらの書類も.pycファイル,.pycは16進数ファイルで、比較でファイルヘッダが欠けていることがわかりました.
  • Hex Editor Neoを使用して1つ開く.pycファイル、最初の行はこのような
  • です.
    33 0d 0d 0a 00 00 00 00 00 00 00 00 e3 00 00 00
    
  • 接尾辞なしファイルを開きます.最初の行はこのような
  • です.
    e3 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00
    
  • だから、接尾辞のないファイルの前に33 0d 0d 0a 00 00 00 00 00 00 00 00を付け、保存後に接尾辞を追加する.pyc、それでは.pycファイルは、逆コンパイルもできます.
  • python 36を使っています.