Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
Windows/Linux の PyInstaller プログラムからファイルを抽出し、Python バイトコードからのソース復元を試みます。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
PyInstaller は Python インタープリター、アプリケーションモジュール、関連ファイルをまとめて配布可能なプログラムにします。単一ファイル形式では、実行ファイルにアーカイブが追加されることがあります。アーカイブには圧縮された .pyc、ネイティブライブラリー、画像、設定、その他のリソースが含まれる場合があります。本ツールは Windows/Linux の .exe、.bin、ELF を読み取り、認識した内容を抽出し、含まれる Python バイトコードの変換を試みます。
逆コンパイルで元のプロジェクトがそのまま戻るわけではありません。コメント、空白、元の変数名など、コンパイル前の情報は通常バイトコードに残りません。復元結果はバイトコードの構造から組み立てた近似コードです。変換できないモジュールはバイトコードとして保持され、他のリソースはパッケージ構成や依存関係の調査に利用できます。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
所有している、または分析許可を得た Windows/Linux PyInstaller プログラムを選びます。未知のバイナリーを提出する前に、ファイル名、対象 OS、入手元を確認してください。
ファイル選択後、ページに表示されたアカウント別の上限を確認して処理を始めます。解析器はアーカイブの情報とファイル内容を読み取り、アップロードしたプログラムを起動しません。
完了後に ZIP をダウンロードします。まず説明やレポートを読み、次にディレクトリーごとにリソース、ネイティブ拡張、復元された Python ファイルを確認します。名前やパッケージパスは元のモジュールを推定する手掛かりになります。
エントリーモジュールや主要な呼び出し経路を、ログ、設定、依存関係一覧と照合します。バイトコードのまま残った場合は Python バージョンを記録し、対応する解析方法を選んでください。
活用例
仕事や日常の流れの中での活用方法を紹介します。
保守担当者はアーカイブ一覧を出力し、設定、テンプレート、証明書、ネイティブライブラリーが同梱されているか確認してから、復元が必要なモジュールを絞り込めます。
開発チームは同梱モジュールとリソースを確認し、ファイル不足、起動失敗、Windows/Linux ビルド間の差を追跡できます。
セキュリティ担当者は対象を実行せずにアーカイブとバイトコードの手掛かりを確認できます。不審なファイルは組織のマルウェア解析手順に従ってください。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
復元できる範囲はバイトコードのバージョンと命令の対応状況に左右されます。コンパイルでコメント、元の書式、名前の一部も失われます。対応できないモジュールはバイトコードまたはレポート項目として残ることがあります。
本ツールは Windows/Linux の PyInstaller 形式を対象とし、通常は対象プログラムを実行せずに調べます。アーキテクチャ、ビルド設定、追加のパッキングで検出が変わるため、重要な結果は別のアーカイブ確認方法でも照合してください。
実行されません。バイナリーとアーカイブ構造を読み取り、EXE/ELF を起動したり、エントリーポイントを呼び出したりしません。ただし、未知の入力から抽出したファイルを通常の作業端末で不用意に開かないでください。
まずバイトコードヘッダーと Python バージョンを記録し、そのバージョンに対応する逆コンパイラーを試します。暗号化、切り詰め、難読化、破損がある場合はソースを復元できないことがあるため、元のバイトコードを保管してください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
PyInstaller のバージョン、単一ファイル/フォルダー形式、UPX などの圧縮、独自ブートローダー、追加暗号化によって認識できる内容は変わります。アーカイブを読めても全モジュールを復元できるとは限りません。スキップや失敗の項目も含め、レポートと ZIP をまとめて結果として扱ってください。
自分が所有するか、分析許可を得たファイルだけを送信してください。この処理は静的なデータ解析であり、安全性を判定するものではありません。復元したコードはレビューせずに本番環境で使用しないでください。機密性の高いプログラムは組織のデータ管理規則に従い、抽出物を共有する前に内容を確認してください。
関連
関連ツール、特集、利用可能なAPIを探せます。