SQLite Trace: 任意のバイナリが実行するSQLiteクエリを抽出
SQLite Traceは、任意のバイナリが内部的に実行するSQLiteクエリを動的に抽出するツールである。実行中のプロセスにアタッチし、SQLite API呼び出しをフックすることでクエリを可視化する。リバースエンジニアリングやデバッグ用途に有用で、バイナリのソースコードがなくてもデータベース操作を追跡できる。
背景メモ
SQLiteは埋め込み型の軽量データベースで、アプリ内のデータ保存に広く使われている。多くのソフトウェア(ブラウザ、チャットアプリ、OSコンポーネントなど)が内部でSQLiteを利用するが、ユーザーがその中身を直接覗くことは難しい。sqlite-traceはLinux上で動作するツールで、実行中のプロセスが発行するSQLiteクエリをリアルタイムに横取り・表示する。仕組みとしては、動的リンクの仕組み(LD_PRELOAD)を利用してSQLiteの関数呼び出しをフックする、あるいはptraceでシステムコールを追跡する手法に近い。デバッグ、セキュリティ監査、またはブラックボックス的なソフトウェア解析に有用。類似のツールとしてastra或いはsqlite3のトレース機能があるが、バイナリを改変せずに任意のプロセスを対象にできる点が特徴。