これは ZOZO Advent Calendar 2025 カレンダーVol.12の21日目の記事です。昨日の投稿は@chichi1091さんでした。
はじめに
こちらはBinary NinjaのMCP機能を試してみる記事です。CTFの問題をBinaryNinjaとAIでどれだけ解けるか頑張ってみたいと思います!
使用するToolたちは以下です。
環境準備
MCP Server on Binary Ninja
まずMCPサーバの設定をします。
Free以上を利用している場合は「Plugin Manager」があるので、そこからMCPを検索します。


「Binary Ninja MCP」を選択してInstallします。
Binary Ninjaを再起動すると「Plugins」のタブの中に「MCP Server」の欄ができると思いますので、そこで「Start MCP Server」とかクリックするとMCPサーバがlocalhost:9009で起動します。
MCP Client
以下のリポジトリをクローンしてきます。
次にClient用のPython仮想環境を作成します。Python3.12以上が必要です。
以下コマンドで適当にvenv環境作りましょう。
python3.12 -m venv .venv
source ./.venv/bin/activate
pip install -r ./bridge/requirements.txt
あとはこのToolをClaude CodeのMCPの設定に突っ込むだけですね。
Claude Code
以下でMCPの設定を入れます。
{
"mcpServers": {
"binary_ninja_mcp": {
"command": "[PATH to]/binary_ninja_mcp/.venv/bin/python",
"args": [
"[PATH to]/binary_ninja_mcp/bridge/binja_mcp_bridge.py"
]
}
}
}
Claude Codeの「設定」から「開発者」タブで以下のようにうまく読み込めていたら設定OKです!

Pwn - CTFの問題を解かせる
Daily AlpacaHack
今回解いてもらう問題は、以下のAlpacaHackの「Daily AlpacaHack」の問題です。
初心者に楽しんでもらえるようなシンプルな問題・教育的問題を毎日1問出題します。
月〜金は新規の問題、土日は新たに移植したCTFの過去問を公開します。
上記のような趣旨のイベントで、初心者にも取り組みやすい問題が1日1つ出題される感じです!
Writeupも出題から24時間後に投稿できるので、猛者の回答などをみつつ取り組めたりするのもいいですね!素晴らしいイベントです!
Integer Writer
Claude Codeさんにはこの5日目の問題「Integer Writer」に取り組んでもらいます。

提供ファイルにはCソースコードがありますが、バイナリだけで頑張ってもらいます。
Let's MCP
ではやっていきます!
バイナリをBinary Ninjaさんに食わせます。

パッと見たところ、pos >で上限100までを見ており書き込むポインタ(Stack)の位置を制限しています。
ただ上限は制限していますが、負の値など下限は設定されていません。負の値を入れてStackのreturnアドレスをwinのアドレス0x4011d6などに書き換えてあげればShellが取れそうですね。
これをAIさんが見つけることができるのか!
Claude Codeに聞いてみます。
AIが解けるってマジ???
とりあえず脆弱性有無を聞きます。



おお!脆弱な部分だけじゃなくExploit方針まで提案してくれてる!
優秀すぐる。
BinaryNinjaのログも見てみる。

おお、きておる!
もう少し踏み込んで聞いてみる。


Stack領域内から出ちゃう位置を提案してきちゃった。。。
Canaryを気にして上手くExploitできてなさそうな気ガス。
__stack_chk_fail()がデコンパイル結果から見えてしまってるのが良くないのかな?
ヒントは与えずに何もわからない体で聞き直してみる。


Oh、Stackの位置からGOTのアドレスに飛び込もうとしている...
違う違うそうじゃない!
ただ、DisassemblyでStackレイアウトを見てくれるのはとても良いですね!
しょうがない、特大ヒントを与えましょう。


お、今度はうまくいきそうな答えを出してきました。
試してみます。

うまくいきました!Pwnedです。
Exploitの考案まではヒントとなる情報提供など人の介入が必要そうですね。
最後に
BinaryNinja MCPを用いてCTF Pwnの問題をAIに解かせてみました!
脆弱性の調査までくらいなら良い感じに提案してくれそうですね!後のExploit考案は若干軌道修正が必要そうです。
Pwnは初心者には難しい部分もあるかもしれませんが、AIに手助けしてもらえればある程度説明もしてくれて知識を補完しながら、Chat形式で学べる良い体験になるかもなと思いました。