バイナリファイル・インスペクター

プログラムファイル——Windows の PE(.exe、.dll)、Linux の ELF バイナリ、または macOS/iOS の Mach-O——をドロップし、より重いツールを出す前に、そのファイルが自らについて宣言している内容を読み取りましょう:ヘッダー、セクションとセグメント、インポートするライブラリと関数、エクスポートとシンボル、そして内部のすべての印字可能文字列に、MD5 と SHA のハッシュとセクションごとのエントロピーを添えて。ファイルは決してあなたのデバイスを離れず、決して実行されません:アップロードされるのではなく、このページで開かれて読まれます。疑わしいバイナリこそ、見知らぬ相手のサーバーに渡してはいけないファイルだからです。

最終更新:

またはファイルをこのボックス内の任意の場所にドロップしてください。以下の内容はすべて、ファイル自体から、このデバイス上で読み取られます。静的解析のみ:ファイルは解析されるだけで、実行されることは決してありません。制限:128 MB。

このページとは何か — そして何でないか

これは第一印象の静的検査です:ファイルは解析されるだけで、実行されることは決してなく、ここにあるものはマルウェアの判定ではありません。所見は観察であって有罪認定ではありません——署名されていないファイルは事実です(正規のツールの多くは未署名です)、エントロピーが 7.2 を超えることも事実です(パッカーはそれを引き上げますが、通常の圧縮リソースも同様です)、そして Authenticode 署名ブロックが存在することは、署名が有効かどうかについては何も語らず、そこに署名があることだけを示します。不審なファイルについてセカンドオピニオンが必要なら、概要タブの検索でその SHA-256 を公開判定と比較してください——検索されるのはハッシュであり、ファイル自体が送信されることは決してありません。Android パッケージには専用のリーダーである APK Analyzer があり、プログラムがネットワーク上で何をするかは PCAP Analyzer の領域です。そしてコンパニオン記事 AI エージェントはあなたのアプリをリバースエンジニアリングできるか? は、自動解析が今どこまで進んだかを説明しています。

プログラムファイルが実行前に宣言すること

すべてのネイティブ・プログラムファイルは、オペレーティングシステムのローダーに向けて書かれた意図の表明から始まります。Windows PE は対象マシン、ビルドのタイムスタンプ、ロードされたいアドレス、期待するサブシステムを名乗ります;そのセクションテーブルはコード、データ、リソースの在りかを示し、そのインポートテーブルは呼び出すつもりのすべてのライブラリと関数を名前で列挙します——これは閉じたバイナリが持つ目次に最も近いものです。ELF バイナリはクラス、エンディアン、マシン、それを起動するインタプリタ、カーネルがマッピングしなければならないセグメント、そして順序どおりに必要な共有ライブラリを宣言します。Mach-O は CPU とファイルタイプ、セグメントとセクション、リンクする dylib、ビルドを識別する UUID、そしてコードが署名されているか FairPlay で暗号化されているかを宣言します。これらのいずれも、ファイルを実行すること、ファイルを信頼すること、ファイルをアップロードすることを必要としません——すべてはローダー自身が読むヘッダーの中にあります。

このページが読むのはまさにその層であり、意図的に最初の層だけです。何かを逆コンパイルすることも、アンパックすることも、コードが何をするかを伝えることもありません——それは Ghidra、IDA、そしてコンパニオン記事がたどるエージェント駆動のツールチェーンの仕事です。第一印象の目的はトリアージです:期待したアーキテクチャか、署名されているか、ネイティブの衣を着た .NET アセンブリではないか、あるセクションが疑わしく高密度のデータを抱えていないか、インポートリストにそのプログラムが呼ぶはずのないライブラリが含まれていないか、そして送られてきたファイルが他の全員が受け取ったファイルと同じか——最後の点にはハッシュが即答します(そしてハッシュ生成ツールがテキストや小さなファイルについて照合します)。ローカルで読む 5 分間のヘッダーが、重いツールをインストールする前に、それらのほとんどに答えます。

よくある質問

私のファイルはどこかにアップロードされますか?

いいえ。ファイルはこのページで、あなたのデバイス上で開かれて解析され、何もアップロード、送信、保存されません——ファイルの解析でネットワークリクエストが発生することはありません。ページ上の唯一の外部リンクは VirusTotal 検索で、これはファイルの SHA-256 ハッシュをテキストとして検索します;ファイル自体が送信されることは決してありません。ページは読み込み後、オフラインでも動作します。

これでファイルがマルウェアかどうか分かりますか?

分かりません。そして、それを約束するヘッダーリーダーは誇大広告です。このページはファイルが宣言する内容——形式、アーキテクチャ、セクション、インポート、エクスポート、文字列、署名の有無——を報告します。これは不注意なケースを捕らえるには十分です:実は 32 ビット実行ファイルである「請求書」、不可能なほど高密度なセクションを 1 つ持つビルド、ハッシュがベンダーの公開した何とも一致しない未署名のアップデーターなど。コードが実際に何をするかを判断するには、逆コンパイル、サンドボックス実行、または信頼できるスキャナーの判定が必要です。ここで見た目がきれいな結果は「ヘッダーにおかしいところは見当たらない」と受け取ってください。安全証明書として扱ってはいけません。

エントロピーとは何ですか?なぜ 7.2 が目安なのですか?

シャノン・エントロピーは、バイト列がどれほどランダムに見えるかを 0(すべて同じバイト)から 8(ランダムと区別できない)までで測ります。通常のコンパイル済みコードとテキストは 7 を大きく下回ります;圧縮データは 8 に近く、暗号化データは実質的に 8 です。パッカーはプログラムの本当のコードを圧縮または暗号化するため、およそ 7.2 を超えるセクションは「この中身は圧縮された」という標準的なトリアージの目安になります——しかしインストーラー、圧縮リソース、埋め込みメディア、現代のランタイムも、正規のファイルで高エントロピーのセクションを生みます。もっと詳しく見る理由にはなりますが、結論ではありません。

なぜ私のファイルは構造がほとんど表示されないのですか?

ページはファイルが実際に宣言している内容を報告するからであり、中には宣言が非常に少ないファイルもあるからです。ストリップされた ELF はセクションヘッダーテーブルをまったく持たない場合があります(セグメントのみ);手作りまたは切り詰められたファイルは、ヘッダーが約束する構造より前に終わっている場合があります——その場合、注記がまさにその旨を示し、表示される内容はすべて、存在するバイトから読み取られたものです。そして一部の形式は単に深層パーサーの対象外です:それらは名前で識別され(ZIP、PDF、画像など)、作り話の詳細なしに一般的な事実——サイズ、ハッシュ、エントロピー、文字列——が得られます。