LLDB-MCP
バッファ オーバーフローを自動的にデバッグする acton のこちらの記事をご覧ください: https://x.com/full\_duplex/status/1904770477698277847
概要
LLDB-MCPは、LLDBデバッガとClaudeのModel Context Protocol(MCP)を統合するツールです。この統合により、ClaudeはLLDBデバッグセッションを直接開始、制御、操作できるようになり、AIを活用したデバッグワークフローを実現できます。
このツールは、LLDB を操作するための包括的なコマンド セットを提供します。
- LLDBセッションの開始と管理
- デバッグ用のプログラムの読み込み
- ブレークポイントとウォッチポイントの設定
- プログラム実行の制御
- メモリ、レジスタ、変数の検査
- スタックトレースとプログラム状態の分析
特徴
- 複数のLLDBデバッグセッションを作成および管理する
- 実行ファイルを読み込み、実行中のプロセスにアタッチする
- 事後分析のためにコアダンプファイルをロードする
- 任意のLLDBコマンドを実行する
- プログラム実行のきめ細かな制御
- メモリの検査と分解
- スレッドとスタックフレームの検査
インストール
- リポジトリをクローンします。
- 依存関係をインストールします:
- LLDB-MCP サーバーを使用するように Claude を構成します。
- Claudeデスクトップアプリの設定を開く
- MCP構成に以下を追加します: GXP3
使用法
インストールして構成したら、自然言語を使用して Claude を通じて LLDB と対話できます。
基本的なワークフロー
- 新しいLLDBセッションを開始する
- プログラムをロードする
- ブレークポイントを設定する
- プログラムを実行する
- 変数とメモリを検査する
- 実行を制御する (continue、step、next など)
- 完了したらセッションを終了する
コマンド例
Claude を介して LLDB-MCP と対話する方法の例をいくつか示します。
- 「新しいLLDBセッションを開始する」
- 「プログラム '/path/to/executable' をロードします」
- 「mainにブレークポイントを設定する」
- 「プログラムを実行する」
- 「バックトレースを表示」
- 「変数 'count' の値を出力します」
- 「次の行をまたぐ」
- 「アドレス0x1000のメモリを調べる」
- 「レジスタ値を表示」
- 「実行を続行」
- 「プロセスを強制終了する」
- 「LLDBセッションを終了する」
サポートされているコマンド
セッション管理
lldb_start
: 新しいLLDBセッションを開始するlldb_terminate
: LLDBセッションを終了するlldb_list_sessions
: アクティブなLLDBセッションをすべて一覧表示する
プログラムの読み込み
lldb_load
: プログラムをLLDBにロードするlldb_attach
: 実行中のプロセスにアタッチするlldb_load_core
: コアダンプファイルをロードする
実行制御
lldb_run
: ロードされたプログラムを実行するlldb_continue
: プログラムの実行を継続するlldb_step
: 次の行または命令へ進むlldb_next
: 関数呼び出しをステップオーバーするlldb_finish
: 現在の関数が戻るまで実行するlldb_kill
: 実行中のプロセスを強制終了する
ブレークポイントとウォッチポイント
lldb_set_breakpoint
: ブレークポイントを設定するlldb_breakpoint_list
: すべてのブレークポイントを一覧表示するlldb_breakpoint_delete
: ブレークポイントを削除するlldb_watchpoint
: 変数またはメモリアドレスにウォッチポイントを設定する
検査
lldb_backtrace
: コールスタックを表示するlldb_print
: 式の値を印刷するlldb_examine
: メモリを調べるlldb_info_registers
: レジスタを表示するlldb_frame_info
: スタックフレームの詳細情報を取得するlldb_disassemble
: コードを逆アセンブルするlldb_process_info
: 現在のプロセスに関する情報を取得する
スレッド管理
lldb_thread_list
: 現在のプロセス内のすべてのスレッドを一覧表示するlldb_thread_select
: 特定のスレッドを選択する
その他
lldb_command
: 任意のLLDBコマンドを実行するlldb_expression
: 現在のフレーム内の式を評価するlldb_help
: LLDB コマンドのヘルプを取得する
サンプルプログラム
example/overflow.c
には、特定の引数でバッファオーバーフローを引き起こすCプログラムの例が含まれています。cc cc overflow.c
を使用してコンパイルし、Claude に結果のプログラムで問題をデバッグしてもらってください。
デバッグのヒント
- 専用の関数がないLLDBコマンドを実行する必要がある場合は、
lldb_command
使用します。 - 詳細なログ記録のために、サーバーを起動するときに
--debug
フラグを使用してデバッグモードを有効にします。 - サーバーのシャットダウン時にセッションは自動的にクリーンアップされます
- 各セッションには固有のIDがあります。コマンドを実行するときは正しいIDを使用してください。
要件
- Python 3.7以上
- システムにLLDBがインストールされている
- MCPサポート付きのClaudeデスクトップアプリ
トラブルシューティング
- LLDBコマンドがタイムアウトする場合は、LLDBが正しくインストールされていることを確認してください。
- 新しいセッションを開始するときにLLDBへのパスを確認する
- プロセスにアタッチするときに権限の問題がないか確認する
- コマンドが正しく実行されない場合はデバッグログを確認してください
ライセンス
BSD 2節
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
ネイティブ アプリの自動分析、デバッグ、逆アセンブルを可能にする LLDB 用の MCP サーバー。
Related MCP Servers
- -securityAlicense-qualityA Python-based MCP server that allows Claude and other LLMs to execute arbitrary Python code directly through your desktop Claude app, enabling data scientists to connect LLMs to APIs and executable code.Last updated -23MIT License
- -securityAlicense-qualityA GDB/MI protocol server based on the MCP protocol, providing remote application debugging capabilities.Last updated -19RustMIT License
- AsecurityAlicenseAqualityMCP server for reverse engineering that enables interaction with IDA Pro for analysis tasks such as decompilation, disassembly, and memory engagement reports.Last updated -2428PythonMIT License
- -securityAlicense-qualityAn MCP server that allows LLMs to autonomously reverse engineer applications by exposing Ghidra functionality, enabling decompilation, analysis, and automatic renaming of methods and data.Last updated -4,290Apache 2.0