ResourceHacker MCP 服务器
基于 Model Context Protocol (MCP) 的 ResourceHacker 工具服务器,可通过 Claude、codex等使用自然语言操作 Windows PE 文件资源。
功能特性
通过 MCP 协议提供 ResourceHacker 的命令行功能访问:
- 提取资源 - 从 PE 文件(exe、dll 等)中提取图标、位图、对话框、菜单等资源
- 列出资源 - 查看 PE 文件中包含的所有资源列表,无需提取文件
- 添加资源 - 向可执行文件添加新资源
- 删除资源 - 从 PE 文件中删除资源
- 修改资源 - 更新现有资源
- 编译资源脚本 - 将 .rc 资源脚本编译为 .res 二进制文件
- 更改语言 - 修改所有资源的语言 ID
- 执行脚本 - 运行包含多个命令的 ResourceHacker 脚本
- 获取帮助 - 显示 ResourceHacker 命令行帮助信息
安装配置
前置要求
- Windows 操作系统
- Node.js 18 或更高版本
- Claude code、codx等支持mcp的应用
- ResourceHacker
步骤 1:安装依赖
git clone https://github.com/Valerian7/ResourceHacker-mcp.git
cd ResourceHacker-mcp
npm install
步骤 2:配置 MCP
Claude添加以下配置:
{
"mcpServers": {
"resource-hacker": {
"command": "node",
"args": [
"ResourceHacker-mcp_PATH\\ResourceHacker-mcp\\index.js"
],
"env": {
"RESOURCE_HACKER_PATH": "RESOURCE_HACKER_PATH\\ResourceHacker.exe"
}
}
}
}
Codex添加以下配置:
[mcp_servers.resource_hacker_mcp]
type = "stdio"
command = "node"
args = ['ResourceHacker-mcp_PATH\\ResourceHacker-mcp\\index.js']
[mcp_servers.resource_hacker_mcp.env]
RESOURCE_HACKER_PATH = 'RESOURCE_HACKER_PATH\\ResourceHacker.exe'
- 将路径替换为你的实际安装位置
ResourceHacker-mcp_PATH指向 ResourceHacker-mcp 的完整路径RESOURCE_HACKER_PATH指向 ResourceHacker.exe 的完整路径
快速使用示例
在Claude、codex中输入
调用ResourceHacker-mcp工具汉化procexp64.exe,注意窗口层级
汉化效果对比:
完整功能
1. list_resources - 列出资源
查看 PE 文件中包含的所有资源列表,无需提取文件。此命令可以避免产生大量临时文件。
参数:
input_file(必需):输入 PE 文件的路径
使用示例:
列出 myapp.exe 中的所有资源
2. extract_resource - 提取资源
从 PE 文件或资源文件中提取资源。
参数:
input_file(必需):输入 PE 文件的路径output_path(必需):输出文件或文件夹路径resource_mask:资源掩码格式类型,名称,语言(默认:,,)log_file:日志文件路径或CONSOLE(默认:CONSOLE)
使用示例:
从 notepad.exe 中提取所有图标到 icons 文件夹
3. add_resource - 添加资源
向 PE 文件添加新资源。
参数:
input_file(必需):要修改的 PE 文件路径output_file(必需):输出文件路径resource_file(必需):要添加的资源文件路径resource_mask:资源掩码(默认:,,)mode:添加模式 -add(存在则失败)、addoverwrite(覆盖)、addskip(跳过)log_file:日志文件路径
使用示例:
用 newicon.ico 替换 myapp.exe 的主图标
4. delete_resource - 删除资源
从 PE 文件中删除资源。
参数:
input_file(必需):PE 文件路径output_file(必需):输出文件路径resource_mask(必需):标识要删除资源的掩码log_file:日志文件路径
5. modify_resource - 修改资源
修改 PE 文件中的现有资源。
参数:
input_file(必需):PE 文件路径output_file(必需):输出文件路径resource_file(必需):新资源文件路径resource_mask:资源掩码log_file:日志文件路径
6. compile_rc - 编译资源脚本
将资源脚本(.rc)编译为二进制格式(.res)。
参数:
input_rc(必需):.rc 文件路径output_res(必需):输出 .res 文件路径log_file:日志文件路径
使用示例:
编译 resources.rc 为 resources.res
7. change_language - 更改语言
更改 PE 文件中所有资源的语言。
参数:
input_file(必需):PE 文件路径output_file(必需):输出文件路径language_id(必需):语言 ID 数字log_file:日志文件路径
常用语言 ID:
- 1033:英语(美国)
- 2052:中文(简体)
- 1028:中文(繁体)
- 1049:俄语
- 1031:德语
- 1036:法语
- 1041:日语
- 1042:韩语
使用示例:
将 myapp.exe 的所有资源改为简体中文
8. run_script - 运行脚本
执行包含多个命令的 ResourceHacker 脚本文件。
参数:
script_file(必需):脚本文件路径
9. get_help - 获取帮助
获取 ResourceHacker 命令行帮助。
参数:
topic:帮助主题 -general、commandline或script
资源掩码格式
资源掩码格式:类型,名称,语言
- 类型:资源类型(如
ICON、BITMAP、DIALOG、MENU、STRINGTABLE、ICONGROUP) - 名称:资源名称或 ID
- 语言:语言 ID(0 表示语言中性)
示例:
ICON,,- 所有图标,任意名称,任意语言BITMAP,128,0- ID 为 128 的位图,语言中性ICONGROUP,MAINICON,- 名为 MAINICON 的图标组,任意语言,,1033- 所有英语(美国)资源
技术细节
- 语言: JavaScript (ES Modules)
- 运行时: Node.js 18+
- 协议: Model Context Protocol (MCP)
- SDK: @modelcontextprotocol/sdk v1.0.4
- 平台: 仅限 Windows(需要 ResourceHacker.exe)
常见问题
MCP 服务器未在 Claude 中显示
- 检查配置文件路径是否正确并使用双反斜杠
- 验证 Node.js 已安装:运行
node --version - 确保
npm install已成功完成 - 完全重启 Claude Desktop(不仅是关闭窗口)
- 检查 Claude Desktop 日志是否有错误
路径问题
确保配置文件中的路径是绝对路径并使用双反斜杠:
- ✅ 正确:
"D:\\Tools\\resource_hacker\\mcp_server\\index.js" - ❌ 错误:
"D:\Tools\resource_hacker\mcp_server\index.js" - ❌ 错误:
"./index.js"或"index.js"
找不到 ResourceHacker.exe
确保在配置中正确设置了 RESOURCE_HACKER_PATH 环境变量,指向 ResourceHacker.exe 的完整路径。
权限错误
修改系统文件时需要适当的权限,尤其是在修改系统目录中的文件时。
限制说明
- 需要 Windows 操作系统
- ResourceHacker.exe 必须可访问
- 无法修改"打包"或"压缩"的可执行文件
- 某些操作需要对目标文件的写权限
参考链接
更新日志
v1.1.0
- 新增
list_resources工具,无需提取即可查看资源列表,减少文件混乱 - 优化代码结构,增加临时文件清理机制
- 修复
parseRcFile解析逻辑
v1.0.0
- 初始版本
- 实现 8 个 MCP 工具
- 支持可配置的 ResourceHacker.exe 路径
- 完整的错误处理和日志记录