Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/withsecurelabs/python-exe-unpacker
動的分析 (サンドボックス)リバースエンジニアリングフォレンジックマルウェア分析バイナリ解析
GitHubwithsecurelabs/python-exe-unpacker

python-exe-unpacker

EXE(Pythonコードからコンパイルされたもの)を展開・逆コンパイルするためのヘルパースクリプト。

リポジトリを見る
1.0k35262年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

著者: In Ming Loh ([email protected] - @tantaryu)
会社: Countercept (@countercept)
ウェブサイト: https://www.countercept.com

はじめに

Pythonで書かれた実行ファイルをアンパックおよび逆コンパイルするためのリサーチャー向けスクリプトです。ただし、現時点ではpy2exeおよびpyinstallerで作成された実行ファイルのみをサポートしています。

このスクリプトは、コミュニティで利用可能ないくつかのツールをまとめたものです。これが皆さんの日々の業務に役立つことを願っています。実行ファイルがPythonで書かれているかどうかを判断するためのYARAルールがいくつか用意されています(このスクリプトは、実行ファイルがpy2exeまたはpyinstallerのどちらで作成されたかも確認します)。

必要条件

  • Python 2.7以降。
  • 必要な依存関係をすべてインストールします:
    pip2 install --user -r requirements.txt
    または、root権限で依存関係をインストールしたい場合
    sudo pip2 install -r requirements.txt

はじめに

  • python python_exe_unpack.py -i [malware.exe]

    • pyinstaller
      • 元のファイル名に「_extracted」を連結した名前のフォルダが作成されます。例: 「malware.exe_extracted」。
      • ロジックを含むメインのPythonファイルは、通常、拡張子のないファイルです(「_extracted」を連結したフォルダ内)。次の例では、「hello」がメインのPythonロジックを含むファイルです:
        -rw-rw-r-- 1 testuser testuser 70K Nov 14 13:08 bz2.pyd
        -rw-rw-r-- 1 testuser testuser 993K Nov 14 13:08 _hashlib.pyd
        -rw-rw-r-- 1 testuser testuser 111 Nov 14 13:08 hello
        -rw-rw-r-- 1 testuser testuser 1009 Nov 14 13:08 hello.exe.manifest
        -rw-rw-r-- 1 testuser testuser 1.1K Nov 14 13:08 Microsoft.VC90.CRT.manifest
        -rw-rw-r-- 1 testuser testuser 220K Nov 14 13:08 msvcm90.dll
        -rw-rw-r-- 1 testuser testuser 557K Nov 14 13:08 msvcp90.dll
        -rw-rw-r-- 1 testuser testuser 638K Nov 14 13:08 msvcr90.dll
        -rw-rw-r-- 1 testuser testuser 628K Nov 14 13:08 out00-PYZ.pyz
        drwxrwxr-x 2 testuser testuser 12K Nov 14 13:08 out00-PYZ.pyz_extracted
        -rw-rw-r-- 1 testuser testuser 5.2K Nov 14 13:08 pyiboot01_bootstrap
        -rw-rw-r-- 1 testuser testuser 2.5K Nov 14 13:08 pyimod01_os_path
        -rw-rw-r-- 1 testuser testuser 12K Nov 14 13:08 pyimod02_archive
        -rw-rw-r-- 1 testuser testuser 22K Nov 14 13:08 pyimod03_importers
        -rw-rw-r-- 1 testuser testuser 0 Nov 14 13:08 pyi-windows-manifest-filename hello.exe.manifest
        -rw-rw-r-- 1 testuser testuser 2.6M Nov 14 13:08 python27.dll
        -rw-rw-r-- 1 testuser testuser 10K Nov 14 13:08 select.pyd
        -rw-rw-r-- 1 testuser testuser 234 Nov 14 13:08 struct
        -rw-rw-r-- 1 testuser testuser 671K Nov 14 13:08 unicodedata.pyd
      • pyinstallerにはPythonバイトコードを暗号化するオプションがあります。このスクリプトは、その復号を試み、復号されたコードを逆コンパイルします。
    • py2exe
      • アンパックおよび逆コンパイルの結果は、「unpacked」フォルダまたは指定した場所に配置されます。
      • 「Error in unpacking the exe. Probably due to version incompability (exe created using python 2 and run this script with python 3)」のようなエラーが表示された場合は、使用中のPythonとは異なるバージョンにPythonを設定してみてください。例: 「alias python=python2」または「alias python=python3」
  • python python_exe_unpack.py -p [pycファイル]

    • 上記の例では、メインのロジックを含むPythonファイルがuncompyle6が受け付ける形式ではない場合があります(Pythonマジックナンバーが欠落している)。上記のコマンドは、マジックナンバーを先頭に付加して逆コンパイルします(マジックナンバーがすでに付加されている場合は追加せず、そのまま逆コンパイルを続行します)。

クレジット

  • pyinstaller実行ファイルのアンパックを支援するpyinstxtractor.pyスクリプトを提供してくれたExtreme Coders氏。
  • 暗号化されたPythonバイトコードの復号方法に関する解説を提供してくれたExtreme Coders氏: https://0xec.blogspot.sg/2017/02/extracting-encrypted-pyinstaller.html
  • unpy2exe
  • uncompyle6
ツールをダウンロード