Cursor-Tap — Cursor gRPC 通信流量解析ツール
概要
Cursor-Tap は Cursor IDE がサーバーとやり取りする gRPC(Connect Protocol)トラフィックを中間者プロキシとして傍受・復号し、Protocol Buffers(protobuf)でエンコードされたバイナリデータを人間可読な JSON に変換して表示するツールです。Cursor の通信は TLS で保護され、さらに公式の proto 定義が公開されていないため、通常のパケットキャプチャツールでは中身を読むことができません。本ツールは TLS の MITM による復号、逆解析した proto 定義や復号ロジックを用いることで、ストリーミングを含む各 RPC フレームの内容をリアルタイムに可視化します。開発者やリバースエンジニアに便利なデバッグ/解析用ユーティリティです。
リポジトリの統計情報
- スター数: 29
- フォーク数: 3
- ウォッチャー数: 29
- コミット数: 3
- ファイル数: 15
- メインの言語: Go
主な特徴
- gRPC(Connect Protocol)通信の MITM による TLS 復号と傍受
- protobuf バイナリを JSON にデシリアライズして可読化
- streaming(ストリーミング)RPC の各フレームをリアルタイム表示
- 逆解析した定義や専用パーサを用いた非公開 proto の解析対応
技術的なポイント
Cursor-Tap の核は「中間者プロキシによる復号」と「protobuf の復号表示」にあります。Cursor と api2.cursor.sh 間は gRPC(Connect Protocol)で通信し、ボディはバイナリの protobuf です。一般的な HTTP プロキシでは TLS の中身は見えないため、本ツールは MITM(自己署名 CA を用いたローカルプロキシ)アプローチを採り、Cursor 側とバックエンド間の TLS 接続を復号します。そのうえで HTTP レイヤ(Connect Protocol)に乗った protobuf ペイロードを抽出します。
もう一つの重要点は protobuf の扱いです。Cursor の公式 proto 定義は公開されていないため、ツールはリポジトリにある逆解析情報や独自定義の proto 定義を基にデコードを行い、バイナリを JSON に変換して表示します。これは特に streaming(サーバー/クライアントのストリーム)で送られる逐次フレームの可視化に有効で、各フレームのリクエスト/レスポンスを逐一確認できます。
実装は Go で行われており、標準ライブラリや gRPC/HTTP 周りのパッケージを活用することでパフォーマンス良くプロキシ処理を実装しています。コマンドライン(cmd ディレクトリ)から起動してプロキシを立て、リアルタイムにデコード結果をログ/UI へ出力する運用想定です。なお、MITM による解析は証明書ピンニングや利用規約、法的・倫理的制約に注意が必要であり、正当な理由と許可を得た環境でのみ利用するべきです。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .idea: dir
- README.md: file
- README_EN.md: file
- cmd: dir
…他 10 ファイル
まとめ
Cursor の gRPC 通信を可視化する実用的なリバースエンジニアリングツールです。
リポジトリ情報:
- 名前: cursor-tap
- 説明: Cursor gRPC 通信流量分析工具
- スター数: 29
- 言語: Go
- URL: https://github.com/burpheart/cursor-tap
- オーナー: burpheart
- アバター: https://avatars.githubusercontent.com/u/35721255?v=4
READMEの抜粋:
Cursor-Tap
中文 | English
Cursor IDE gRPC 中间人流量分析工具。可以解密 TLS、反序列化 protobuf、实时展示 AI 对话产生的RPC请求和响应。
image-20260131181319486
为什么做这个
Cursor 和后端的通信全是 gRPC,走的 Connect Protocol,body 是二进制 protobuf。用 Burp 或 Fiddler 抓到的都是一堆看不懂的二进制。官方也没公开 proto 定义,想看 AI 对话的具体内容很麻烦。
这个工具能把流量解密成可读的 JSON,还能实时看到 streaming 的每一帧。
相关文章
Cursor 逆向笔记 1 —— 我是如何拦截解析 Cursor 的 gRPC 通信流量的
原理
- MITM 代理:在 Cursor 和 api2.cursor.sh …