Trace UI — 高性能 ARM64 実行トレース可視化ツール
概要
Trace UI は、ARM64 実行トレースの解析に特化したデスクトップ向け可視化ツールです。フロントエンドは TypeScript + React、デスクトップラッパーに Tauri 2 を採用しており、数百万〜数億行規模のトレースデータを扱えるように設計されています。主な機能として、関数呼び出しツリーの折りたたみ表示、逆方向の汚染(taint)追跡による脆弱性探索、実行時のメモリ/レジスタ表示、そして unidbg 等の既存トレースフォーマットのサポートがあります。パフォーマンス確保のため、ネイティブ側(Cargo.toml に示される Rust コンポーネントや Java 補助ツール)で重い処理をこなしつつ、軽快な UI 操作を実現しています。
リポジトリの統計情報
- スター数: 50
- フォーク数: 36
- ウォッチャー数: 50
- コミット数: 5
- ファイル数: 13
- メインの言語: TypeScript
主な特徴
- 大規模トレース対応:百万〜億行規模のトレースをスムーズに閲覧・検索可能。
- 逆方向汚染追跡(Reverse Taint):特定の出力やクラッシュに影響する入力ソースを逆に辿る分析機能。
- 関数呼び出しツリーの折りたたみ表示:呼び出し階層を折りたたみ・展開してトレースの構造を把握。
- メモリ/レジスタのリアルタイムビュー:実行時のメモリ領域やレジスタ値をコンテキストに応じて表示。
技術的なポイント
Trace UI は、フロントエンドの軽快さとバックエンドの高速処理を両立するアーキテクチャを採っています。UI 層は TypeScript と React で構築され、Tauri によりネイティブのファイル I/O や OS レベルの処理を呼び出せるため、巨大ファイルの取り扱いでネイティブ性能を活かせます。リポジトリに Cargo.toml が含まれていることから、トレースの事前インデックス化やバイナリ解析、ディスアセンブルなど重い処理は Rust サイドで実行される想定です。AssemblyCodeDumper.java の存在は、外部ツールや既存フォーマット(例:unidbg)のデータを抽出・変換するユーティリティ的役割を担っている可能性を示します。
パフォーマンス面では、ストリーミング解析やチャンク読み込み、仮想化レンダリング(必要な行だけ描画)といった技術が用いられていると考えられます。これによりメモリ消費を抑えつつ、検索・フィルタ・ジャンプといったインタラクションを高速化します。逆方向汚染追跡は、データフローを逆向きにたどるアルゴリズム(依存グラフの逆走査やシンボリック情報の逆伝搬)を用いることで、あるクラッシュや異常値に影響を与えた命令や入力を特定します。トレースとメモリ/レジスタの同期表示は、時刻付きのイベントストリームと状態スナップショットを整合させる仕組みが必要であり、効率的なインデックスとキャッシュ戦略が鍵になります。
また、Tauri を介したデスクトップ実装は、Web ベース UI の開発生産性とネイティブ実行の性能・権限の両立を可能にし、クロスプラットフォーム(Windows/macOS/Linux)で同じ操作感を提供します。GPL-3.0 ライセンスの採用により、利用・改変に対する配布時の制約に注意が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- AssemblyCodeDumper.java: file(外部トレース/バイナリ抽出用ユーティリティ)
- Cargo.toml: file(Rust コンポーネントのビルド設定)
- LICENSE: file(GPL-3.0)
- README.md: file(プロジェクト概要と利用方法)
- docs/: directory(スクリーンショットやドキュメント)
- src/: directory(TypeScript/React のフロントエンド実装)
- tauri.conf.json(または類似設定): file(Tauri 設定、ビルド/権限)
- package.json: file(フロントエンド依存管理)
- その他のユーティリティスクリプトや設定ファイル
(上記に加え、他 8 ファイル)
ファイル構成からは、フロントエンド(UI/UX)とネイティブ処理(Rust/Java)の役割分担が明確で、重いデータ処理はネイティブ側で行い、可視化と操作はブラウザ技術で実現するハイブリッド設計である点が読み取れます。
まとめ
大規模ARM64トレース解析に特化した実用的な可視化ツール。セキュリティ解析向けの有力な選択肢。
リポジトリ情報:
- 名前: trace-ui
- 説明: 高性能 ARM64 执行 trace 可视化分析工具
- スター数: 50
- 言語: TypeScript
- URL: https://github.com/imj01y/trace-ui
- オーナー: imj01y
- アバター: https://avatars.githubusercontent.com/u/71911891?v=4
READMEの抜粋:
Trace UI
高性能 ARM64 执行 trace 可视化分析工具。基于 Tauri 2 + React 构建的桌面应用,专为安全研究員设计,支持千万行或亿行级大规模 trace 的流畅浏览、函数调用树折叠、反向污点追踪、内存/寄存器实时查看等功能。
主界面全景
当前支持 unidbg