在windows安装opencode和vscode, 体验大模型辅助编程, 并结合ida mcp进行漏洞发现
感受了一周的vibe coding, 选择合适的工具和构建环境也够我折腾, 也是踩了不少坑, 最后总结一下自己的经验, 方便大家开始.
前言
现在大家都在用claude code, 但是由于它的封闭性, 动不动就封, 我最后还是选择了opencode, 拥抱开放自由. 体验了opencode的ui, 发现并不好用, 于是希望可以和vscode结合. 虽然有官方插件, 但是一直因为安装问题, 插件没法正常运行, 有些opencode的配置我也不太了解. 摸索了一番后, 我总结了一些我遇到的问题, 希望可以帮助大家.
另外也探索了一下claude code, ida的mcp配置, 大模型漏洞挖掘的流程, 我也会在后文介绍这些内容.
安装opencode
通过安装程序安装有UI版本
首先, 点击此处https://opencode.ai/zh/download 下载官方的windows软件, 按照提示开始安装opencode.
安装完成后, 插件桌面的图标, 在桌面图标右键, 选择”打开文件所在位置”:

我们可以把opencode-cli.exe 这个程序复制到你喜欢的路径. 改名成opencode.exe
然后, win+R, 输入 sysdm.pl
选择”高级”->”环境变量”


如上所示, 我将路径”C:\test”目录添加到了Path里. 添加完成后, 点击确认, 结束配置环境变量.
完成后, 这样在命令行输入opencode, 就可以打开opencode的命令行程序了.
通过npm安装命令行版本
确保你装了nodejs
执行
npm i -g opencode-ai完成安装打开cmd终端,执行
ren %userprofile%\appdata\roaming\npm\opencode.ps1 opencode.ps1.bak, 输入opencode就可以看到opencode的命令行程序了.
默认情况下, 在命令行运行
opencode启动的是powershell脚本,%userprofile%\appdata\roaming\npm\opencode.ps1, 虽然可以通过Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser禁用, 但是它不够安全. 最好是将该脚本重命名, 让它默认运行opencode.cmd脚本.
虽然npm安装很简单, 我个人还是建议用ui版本, 用起来有时候会简单一点.
安装vscode
进入https://code.visualstudio.com/download, 选择windows安装包, 下载安装.
安装vscode的opencode插件

安装完成后, 右上角就有个图标了:

点击图标, 看到它运行命令后, 就可以看到opencode了:

可以通过ctrl+p设置它, 快捷键功能参考opencode的显示.
配置opencode, 添加mcp
配置文件全局的配置路径%UserProfile%\.config\opencode\opencode.json , 一开始没有任何配置的情况下, 这个文件不存在.
项目的配置文件是在打开的项目的根目录的opencode.json文件里.
假如我们想添加一个mcp, 可以如下添加到opencode.json文件里:
1 | { |
添加后, 打开opencode的带界面的程序:

如图指示, 就可以看到添加的mcp工具了. 如果设置了"enabled": true, 它默认就会连接. 我们再次打开vscode的opencode 终端, 在设置里也可以看到这个mcp了.
注意, 此处只展示了添加mcp, 如何运行mcp server, 取决于你安装的mcp工具.
添加大模型api
默认情况下, 它自带一些免费的体验模型, 也可以自己定义连接模型. 以下以kimi为例:
根据官方文档: https://platform.moonshot.cn/docs/api/chat#%E5%85%AC%E5%BC%80%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%9C%B0%E5%9D%80, 可以看到例子:
1 | from openai import OpenAI |
在opencode中, 选择模型:

之后选择查看更多:

选择自定义, 添加如下内容:

之后需要添加模型id, 可以参考 https://platform.moonshot.cn/docs/pricing/chat#%E8%AE%A1%E8%B4%B9%E9%80%BB%E8%BE%91 页面的模型定价, 添加模型id:

最后提交即可添加模型. 最后选择我们添加的模型, 输入内容, 如果正确应答, 就算成功.

对话
默认有两种模式: plan和build, plan模式是不能写文件的, 我建议一般情况下, 都可以先用plan问问看它要干啥, 然后再切build, 否则一次性被改了很多文件后, 不满意还得一个个改, 很累.
注意事项
如果在vscode里使用opencode, 输入数据尽量不要复制粘贴, 它默认情况下会识别换行符, 导致输入不完整就开始思考了.
claude code
虽然claude的模型需要花钱, 但是它的client是可以免费用的.
1 | npm config set proxy http://192.168.50.5:7890 |
安装完, 输入claude就进入claude的命令行程序了.
如果提示需要git的bash, 可以访问https://git-scm.com/install/windows下载安装, 默认安装配置即可.
运行起命令行程序后, 在对话中输入 “/“, 根据提示, 输入不同的命令就可以配置claude.
claude的大模型接口配置在环境变量中, 我们可以在powershell中配置这些环境变量. 如果要使用kimi, 它的环境变量如下:
1 | powershell> $env:ANTHROPIC_BASE_URL="https://api.moonshot.cn/anthropic"; |
配置了后, 再输入claude进入命令行程序, 输入/status确认模型状态 .
如果要换其它的api, 请参考各自的官方文档进行设置.
安装IDA-PRO-MCP
ida-pro-mcp是目前比较全面的关于ida的mcp工具. 它支持调试和各种ida功能, 实战中已经比较好用了. 下面一起来安装和使用它.
安装python 3.10以上系列, 确保安装时, 有设置添加环境变量选项:

完成python安装后, 启动新的powershell, 运行
pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip如果需要代理, 末尾添加
--proxy http://127.0.0.1:7890的形式添加你的代理.进入已安装的ida目录:
C:\Program Files\IDA Professional 9.1\idalib\python执行
python ./py-activate-idalib.py运行python, 执行
import idapro, 如果不报错, 就证明安装idalib成功了.uv是一个类似pip的python包管理器, 使用pip install uv安装它.
运行ida-pro-mcp server
运行uv run idalib-mcp --host 127.0.0.1 --port 8745 C:\Users\test\Desktop\concrete-202504.dll.i64, 就启动了server, 并打开了数据库 concrete-202504.dll.i64:
1 | PS C:\Program Files\IDA Professional 9.1\idalib\python> uv run idalib-mcp --host 127.0.0.1 --port 8745 C:\Users\test\Desktop\concrete-202504.dll.i64 |
它官方的sse接口有问题, 我们配置的时候用 /mcp这个端点.
opencode的配置我已经在之前提过了, claude的配置是在命令行运行:
1 | $> claude mcp add ida-pro-mcp --transport http http://127.0.0.1:8745/mcp |
如果你想使用mcp, 可以在聊天界面对话”列出当前支持的mcp工具”, 如果输出没问题, 就可以让ai自动开始了.
ida-mcp-s2
我自己觉得ida-pro-mcp工具不支持多实例访问, 代码架构也挺复杂, 懒得改它, 就基于它写了个简洁版本: ida-mcp-s2, 目前是基于ida9.1的idalib写的api, 如果遇到兼容性问题. 可以自行修改项目的ida_functions.py的函数实现. 主要功能和ida-pro-mcp是差不多的, 只不过它把一些功能细化了, 实际上常规功能就能实现.
另外, https://github.com/Captain-AI-Hub/IDA-MCP/tree/master 这个项目似乎基于ida-pro-mcp做了点改动, 支持了多实例的功能, 有兴趣也可以试试.
漏洞挖掘
有了大模型后, 我尝试了aaedge.dll, 让大模型来复现我发现过的历史漏洞, 让ai写了个提示词:
1 | 角色设定: |
把提示词输入对话框, 接着就等大模型自己调用mcp访问ida数据库, 开始挖掘了.(我的提示词不一定靠谱, 我也还在摸索中.)