PE 图标替换专家

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

无需重新编译,给 Windows EXE/DLL 添加或替换图标。自动复制原资源树、追加新资源节、修正节表与校验和;支持任意路径、多尺寸 ICO、已有图标组、原地备份和结果验证。

一句话选型结论

按资料字段整理

PE 图标替换专家是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_6e944aba/pe-icon-replacer
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_6e944aba仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量11.9 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
PE 图标替换专家当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

11.9 KB
模型实际读到的说明书原文,来自技能仓库

PE Icon Replacer(PE 图标替换专家)

在不重新编译、不改代码段的前提下,给 Windows PE 文件(EXE/DLL)添加或替换图标资源。

核心做法:

> 复制原来的资源树,加入新的 RT_ICON / RT_GROUP_ICON,序列化成一个新的资源节,追加到文件末尾;再让 PE 的资源数据目录指向新节,最后修正节表、镜像大小、调试目录指针和校验和。

代码段、导入表、入口点、重定位都不改,所以不需要源代码,也不需要编译器。

功能

  • 加图标:目标 EXE/DLL 原本没有 RT_GROUP_ICON 时,自动新增组 ID 1。
  • 换图标:已有图标组时,默认替换排序后的第一组(通常就是资源管理器显示的那一组)。
  • 保留旧资源:其他资源类型、其他图标组、旧图标图像全部保留。
  • 任意路径:EXE、ICO、输出文件都可以是绝对路径或相对路径;支持空格、中文路径。
  • 原地修改:不写 --output 时直接修改目标文件,并自动生成 <文件名>.bak。
  • 多尺寸 ICO:一个 ICO 里有 16/32/48/64 多个帧时,会生成多个 RT_ICON,组数据逐一对应。
  • 完整验证:verify_icon.py 会检查校验和、原有节数据、非图标资源、旧图标、新图标字节和 overlay。
  • 安全处理签名:不会破坏文件结构,但会明确提示 Authenticode / catalog 签名失效。

环境依赖

  • Python 3.8+
  • pefile
pip install pefile

也可以使用本 skill 的 requirements.txt(在 pe-icon-skill 根目录执行):

pip install -r requirements.txt

工具本身解析 .ico,不需要 PIL。pe_icon.py 可以在 Windows / Linux / macOS 上编辑 PE;图标在资源管理器里的显示效果建议在 Windows 上验证。

获取

从 SkillHub 安装本技能,或把整个 pe-icon-skill 目录复制到你的技能目录。然后:

cd pe-icon-skill\scripts
python pe_icon.py --help

快速使用

1. 给 EXE 加图标 / 换图标

python .\pe_icon.py `
  "D:\程序\我的应用.exe" `
  "D:\图标\新图标.ico" `
  --output "D:\程序\我的应用_new.exe"

先输出到新文件,确认能启动、图标正确后再替换原文件,是最稳妥的用法。

2. 原地修改

python .\pe_icon.py "D:\程序\我的应用.exe" "D:\图标\新图标.ico"

会生成 D:\程序\我的应用.exe.bak。如果 .bak 已存在,不会覆盖旧备份。

3. 替换所有已有图标组

python .\pe_icon.py "D:\程序\我的应用.exe" "D:\图标\新图标.ico" --all-groups

默认只替换第一组;程序有多个图标组、或者按 ID 加载图标时,可以用 --all-groups。

4. 相对路径

cd /d D:\work
python "C:\Tools\pe-icon-skill\scripts\pe_icon.py" `
  .\demo.exe .\demo.ico --output .\demo_with_icon.exe

相对路径按当前工作目录解析,不是按脚本所在目录解析。

5. 多尺寸 ICO

直接把多帧 .ico 传给工具即可,例如 16/32/48/64 四帧:

python .\pe_icon.py .\demo.exe .\multi-size.ico --output .\demo_with_icon.exe

验证结果

verify_icon.py 会执行一次注入并检查结果,适合在批量处理前验证样本:

# 默认输出到 %TEMP%\pe_icon_verify\<原名>_with_icon.exe
python .\verify_icon.py "D:\程序\我的应用.exe" "D:\图标\新图标.ico"

# 指定输出文件
python .\verify_icon.py `
  "D:\程序\我的应用.exe" "D:\图标\新图标.ico" `
  --output "D:\程序\我的应用_new.exe"

# 验证后启动输出(仅适合会自动退出的控制台程序)
python .\verify_icon.py `
  "D:\程序\我的应用.exe" "D:\图标\新图标.ico" --run

验证内容:

  • PE 校验和是否有效;
  • 原有各节的代码/数据是否逐字节一致(只允许调试目录 PointerToRawData 变化);
  • 非图标资源类型、语言、代码页是否保留;
  • 旧 RT_ICON 是否保留且字节不变;
  • 新 RT_GROUP_ICON 的 ID 和每个 RT_ICON 是否与 ICO 对应帧一致;
  • 文件末尾的 overlay 是否完整保留;
  • 使用 --force-expand-headers 时,头部是否确实扩展且未覆盖第一个节。

不加参数运行 verify_icon.py 只显示帮助,不会自动执行任何操作。

参数

pe_icon.py

参数 说明
EXE 输入 EXE/DLL,绝对或相对路径
ICON 输入 .ico,绝对或相对路径
--output PATH 输出文件;默认原地修改
--all-groups 替换所有已有 RT_GROUP_ICON 组
--no-backup 原地修改时不生成 .bak
--force-expand-headers 强制走“扩展 PE 头”路径,主要用于测试;空间不足时会报错

verify_icon.py

参数 说明
EXE 输入 EXE/DLL
ICON 输入 .ico
--output PATH 输出文件;默认写入 %TEMP%\pe_icon_verify
--run 启动输出并要求退出码为 0
--all-groups 替换所有已有图标组
--force-expand-headers 强制扩展 PE 头

两个脚本都支持 --help。不传参数时:

  • pe_icon.py 显示用法并报错(EXE、ICON 是必填参数);
  • verify_icon.py 显示帮助和示例,不会执行注入。

工作流程

  1. 解析 PE 资源目录树,读出所有类型 / 名称 / 语言 / 数据。
  2. 解析 ICO 的目录和每个图像帧。
  3. 为每个 ICO 帧分配未占用的 RT_ICON ID,生成 RT_GROUP_ICON 数据。
  4. 把完整资源树序列化成新的 .rsrcN 节(若 .rsrc 已存在,则用 .rsrc2、.rsrc3…)。
  5. 在最后一个节之后追加新节,保留原文件末尾的 overlay。
  6. 修正资源数据目录、节表、SizeOfImage、SizeOfInitializedData、调试目录 PointerToRawData、证书表偏移和 PE 校验和。
  7. 输出新文件;verify_icon.py 再按上述规则逐项验证。

为什么要追加新节

直接改旧 .rsrc 需要移动其中所有数据、重算所有内部偏移,容易破坏其他资源。追加新节只改资源目录指针和节表,旧资源树原样复制,风险更低。

头部空间不足时

新增节需要在节表末尾写一个 40 字节的节头。如果 SizeOfHeaders 不够,工具会:

  1. 把 SizeOfHeaders 增加一个 FileAlignment;
  2. 在旧头部末尾插入零字节;
  3. 把后续所有节的文件偏移整体后移;
  4. 修正调试目录、证书表、符号表等文件偏移字段。

扩展后的头部不能超过第一个节的 RVA,否则会覆盖第一个节,Windows 会拒绝加载;工具会直接报错,不生成坏文件。

输入要求

  • EXE/DLL:标准 PE32 或 PE32+ 文件,资源目录结构完整。加壳/压缩过的文件请先脱壳。
  • ICO:至少包含 1 个图像帧;推荐 16/32/48/64 多尺寸。
  • ICO 里的 256×256 尺寸按格式规定存为 0;工具按原始字段复制。
  • 支持 PNG 压缩帧(按原始字节写入 RT_ICON)。
  • 目标文件可以原本没有资源节,工具会从零创建。

注意事项

  • 签名会失效:修改任何字节后,嵌入式 Authenticode 签名和 catalog 签名都不再有效。这是 PE 修改的固有结果,工具会在输出时提示。
  • 备份只在原地修改时生成:使用 --output 时原文件不动,不会额外生成 .bak。
  • 旧图标不删除:默认保留旧 RT_ICON,避免破坏其他图标组或程序中按 ID 加载图标的逻辑。
  • 资源管理器图标缓存:替换成功后如果还看到旧图标,可能是系统图标缓存;重启 explorer.exe 或清理图标缓存后再看。
  • 程序自己缓存的图标:有些程序启动后自己缓存图标,需要重启程序或重新登录。
  • --force-expand-headers 不是万能:如果第一个节 RVA 太小,扩展头会覆盖代码,工具会明确拒绝。
  • 不要直接修改系统文件:先复制到临时目录验证,确认后再替换。

故障排查

现象 原因 处理
pefile is required 缺少依赖 pip install pefile
target not found EXE 路径不存在 检查路径;相对路径要基于当前工作目录
icon not found ICO 路径不存在 检查路径和引号
not a valid .ico file 不是 ICO,或目录损坏 用画图/图标工具重新导出 ICO
output directory not found 输出目录不存在 先创建目录,或改用绝对路径
cannot expand headers 头部扩展会覆盖第一个节 不要加 --force-expand-headers;或换一个头部空间足够的文件
输出文件打不开 输入 PE 本身损坏/加壳 先在原文件上验证能运行,再尝试注入
资源管理器仍显示旧图标 系统图标缓存 重启 explorer.exe,或清理图标缓存
程序仍显示旧图标 程序按 ID 加载或自身缓存 用 --all-groups,重启程序
checksum invalid 输出被其他工具改动/截断 重新生成;不要让其他工具二次改写
杀毒软件拦截 修改后的 PE 无签名/行为可疑 使用可信来源文件;必要时对输出重新签名

文件结构

pe-icon-skill/
├── SKILL.md                 ← 本文件
├── requirements.txt         ← Python 依赖
├── assets/
│   ├── icon.png             ← 技能图标(1024×1024)
│   ├── icon-512.png         ← 512×512
│   └── icon.ico             ← 16–256 多尺寸图标
├── scripts/
│   ├── pe_icon.py           ← 注入工具
│   └── verify_icon.py       ← 注入并验证
└── examples/
    ├── README.md            ← 示例说明
    └── sample.ico           ← 64×64 测试图标

分支根目录的 README.md 提供快速上手和分支约定。

使用示例

# 给任意 EXE 加图标
python .\pe_icon.py "C:\Tools\demo.exe" "C:\Icons\demo.ico" `
  --output "C:\Tools\demo_new.exe"

# 原地替换,自动生成 demo.exe.bak
python .\pe_icon.py "C:\Tools\demo.exe" "C:\Icons\demo.ico"

# 先验证再批量处理
python .\verify_icon.py "C:\Tools\demo.exe" "C:\Icons\demo.ico"

# 多尺寸 ICO + 替换所有图标组
python .\pe_icon.py "C:\Tools\demo.exe" "C:\Icons\multi.ico" `
  --all-groups --output "C:\Tools\demo_new.exe"

已验证场景

  • PE32、原本无图标的 EXE:新增组 1、图像 1,原 .text/.data/.rsrc 逐字节一致。
  • PE32+、已有命名图标组(如 IDI_APPICON)的 EXE:使用 --all-groups 后组名保留,新图像 ID 追加,类型 3/14/16/24 保留。
  • 16/32/48/64 多帧 ICO:生成 4 个 RT_ICON,每个图像与 ICO 对应帧字节一致。
  • 带尾部 overlay 的 EXE:overlay 原样保留在文件末尾,且只出现一次。
  • --force-expand-headers:SizeOfHeaders 成功扩展,旧节数据只允许调试目录 PointerToRawData 变化。

许可

MIT License

常见问题

5 问
答案由本站依据条目字段整理
PE 图标替换专家怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_6e944aba/pe-icon-replacer。安装方式为未标注。装完刷新技能列表或重开客户端。

PE 图标替换专家支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

PE 图标替换专家权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

PE 图标替换专家收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

PE 图标替换专家用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。