NeuroCore
高性能構造的バイナリ解析・可視化ユーティリティ
概要
NeuroCoreは、高速可視化によるバイナリデータの構造解析のために設計されたネイティブmacOSユーティリティです。Metal Compute Shadersを介したGPGPU(汎用GPUコンピューティング)を活用し、生のバイナリストリームをリアルタイムでヒルベルト空間充填曲線にマッピングします。この投影により、ファイルの分類、エントロピー分布、暗号異常の高速な識別が可能となり、線形16進数表現の限界に対処します。
はじめに
従来の16進数エディタはバイナリデータを線形のオフセットベース形式で表示するため、マクロスケールの構造パターンやデータ密度がわかりにくくなっています。NeuroCoreは、線形データを2次元位相空間に投影することで、このヒューリスティックなギャップを埋めます。
中心となる投影は、連続フラクタル空間充填曲線であるヒルベルト曲線に依存しています。この数学的変換は空間的局所性を維持します:線形メモリストリームで隣接するデータポイントは、2D可視化でも厳密に隣接したままです。この特性により、アナリストはファイルヘッダを解析することなく、マシンコード、構造化テキスト、ビットマップ、高エントロピーブロックを区別してファイルの構造構成を視覚的に解析できます。
技術アーキテクチャ
NeuroCoreは、中間抽象化レイヤをバイパスしてGPUと直接やり取りする高性能ネイティブアプリケーションとして設計されています。
- 言語: Swift 5.5+ (Strict Concurrency)
- グラフィックスパイプライン: Metal API (Compute & Render Command Encoders)
- インターフェース: SwiftUIとMetalレイヤ用の
NSViewRepresentableブリッジを使用。
レンダリングパイプライン
レンダリングエンジンは、カスタムMetal Shading Language (MSL)カーネルを利用して、シャノンエントロピーと座標マッピングの並列計算を実行します。
- 取り込み: 生のバイナリデータが
MTLBufferオブジェクトにストリーミングされます。
- 計算: GPUがバッファ全体でスライディングウィンドウエントロピー計算を実行します。
- マッピング: 線形オフセットがビット単位のヒルベルトマッピングアルゴリズムを使用して$(x, y)$座標に変換されます。
- ラスタライズ: ピクセルフラグメントが局所的なエントロピー分散に基づいて動的に色付けされ、VRAMのスラッシングなしに任意の大規模データセットで60fpsのパフォーマンスを実現します。
視覚的データ解析と解釈
以下のケーススタディは、エントロピー可視化によるファイル構造識別におけるNeuroCoreの有効性を示しています。
図1: 17.7 MBの未識別バイナリの可視化(階層的JSONと識別)
ケーススタディ I: 低エントロピー階層データ
対象: オペレーティングシステムによって「不明」と分類された17.7 MBのファイル。
- エントロピーシグネチャ(低/中): 可視化は緑/ティールスペクトルが支配的で、エントロピースコアが $\approx 2.0 - 4.0$ であることを示しています。暗号化されたブロブとは異なり、このスペクトルはデータストリーム内の高い冗長性と予測可能性を示しています。
- トポロジカル特徴: ヒルベルト曲線に沿った明確な幾何学的セグメンテーションと「ブロック状」のアーティファクトはpretty-printテキストの特徴です。一様な領域は繰り返しのバイトシーケンス(例:空白のインデント、繰り返しキー)を表し、分散した変化は値の変更を表します。
- 結論: 視覚的トポグラフィーは、ファイルがコンパイル済み実行可能ファイルではなく非圧縮の階層的テキスト構造(JSONデータセット)であることを確認し、最初の16進数検査の必要性を不要にします。
図2: 192 MBのAppleディスクイメージ(.dmg)の可視化
ケーススタディ II: 高エントロピー圧縮アーカイブ
対象: 192 MBの.dmgボリューム。
- エントロピーシグネチャ(高): 赤色ピクセルデータの飽和が最大エントロピー(1バイトあたり約7.5〜8.0ビット)を示します。視覚的には「ノイズ」と解釈されますが、この確率的分布はデータ冗長性の効果的な除去を示しています。
- テクスチャの均一性: 可視化には図1に見られる幾何学的な「島」がありません。圧縮アルゴリズム(例:LZFSE、zlib)はバイト値を均一に分散してストレージ効率を最大化し、その結果として高分散のフィールドが生じます。
- 結論: この視覚的密度はパックされた実行可能ファイル、暗号化ボリューム、または圧縮アーカイブの明確なシグネチャです。フォレンジックコンテキストでは、標準的な文書とされるファイルでこのシグネチャを観察すると、すぐにステガノグラフィーペイロードの注入や暗号化が示唆されます。
主な機能
- ハードウェアアクセラレーテッドコンピュート: Metal Compute Shadersを介してエントロピーヒューリスティックと座標変換をGPUにオフロードし、リアルタイムナビゲーションを保証します。
- ヒルベルト局所性保存: 隣接関係を維持しながら線形ストリームを2Dトポグラフィーに変換し、構造的境界を視覚的に明確にします。
- エントロピーベースの測色:
- 赤: 高エントロピー(暗号化、圧縮、RNG出力)
- 青/緑: 低〜中エントロピー(x86/ARM64マシンコード、テキスト、ヘッダ)
- 黒: ヌルスペース(ゼロパディング/アロケーション)
- 仮想ウィンドウイング: ゼロアロケーションナビゲーションシステムを実装。オフセットはシェーダ内で動的に計算され、フルデータセットをVRAMに事前バッファリングすることなく、ギガバイト規模のファイルを即座にトラバースできます。
使用事例
- リバースエンジニアリング: バイナリラッパー内の
.textセクション、埋め込みリソース、暗号化ペイロードの迅速な位置特定。
- マルウェア解析: パッカーや難読化レイヤの視覚的識別。これらは標準的なコンパイル済みロジックとは異なる高エントロピー異常として現れます。
- デジタルフォレンジック: 予想されるファイル構造パターンを乱す追加データ(EOFオーバーレイ)やステガノグラフィー改変の検出。
- 暗号検証: 乱数生成器 (RNG) の一様性と圧縮アルゴリズムの効率性の視覚的検証。
インストールとビルド
このプロジェクトはネイティブmacOSツールチェーンを利用し、外部パッケージマネージャは必要ありません。
前提条件:
- macOS 12.0 (Monterey) 以上。
- Apple Silicon (M1/M2/M3) アーキテクチャを推奨(最適なシェーダスループットのため)。
- Xcodeコマンドラインツール。
コンパイル:
プロジェクトルートで以下のコマンドを実行し、Swiftコンパイラを起動して必要なフレームワーク(SwiftUI、Metal、MetalKit、AppKit、Foundation)をリンクします:
swiftc NeuroCoreApp.swift ContentView.swift Renderer.swift ShaderSource.swift Utils.swift \
-o NeuroCore \
-sdk $(xcrun --show-sdk-path) \
-target arm64-apple-macos12.0 \
-framework SwiftUI \
-framework Metal \
-framework MetalKit \
-framework AppKit \
-framework Foundation
実行:
./NeuroCore
使用方法
- データ取り込み: 任意のバイナリターゲットを可視化ビューポートに直接ドラッグアンドドロップします。レンダリングは即座に行われます。
- ナビゲーション:
- パン: 2本指スクロール(トラックパッド)またはスクロールホイール。
- ズーム:
Optionキーを押しながらスクロールして、バイト/ピクセル密度を調整します。
ライセンス
無断転載を禁じます。
許可されていない商用利用、再配布、改変は固く禁止されています。