首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
安全工具
发新帖
16
18
[原创] 由于转型游戏安全 我打算开源这个IDA插件 PatchEx
发表于: 2026-4-27 22:43
3760
[原创] 由于转型游戏安全 我打算开源这个IDA插件 PatchEx
江树
1
2026-4-27 22:43
3760
# 来源 在IDA插件领域有一个几乎人人离不开的插件,大名鼎鼎的**Keypatch**,但是在我实际的CTF使用当中,其实是感觉不够方便的,主要有几个场景: 1. patch后代码超越了原本的区域大小,无法正常patch 2. patch的代码中涉及IDA本身的符号或更为复杂的汇编运算式子,比如:(他们没有上下文含义) ``` mov rcx, cs:qword_147CAC8E8 mov cs:qword_147CB1490, 0 mov word ptr cs:lpServiceName, ax mov rax, gs:58h call cs:_invalid_parameter_noinfo_noreturn mov rcx, cs:qword_147CAC8E8 mov [rsp+28h+arg_0], rdi call j_j_free xorps xmm0, xmm0 lea rcx, unk_147CB12F0 mov ecx, cs:TlsIndex mov rbx, [rax+rcx*8] mov rax, gs:58h lea rcx, sub_144A458F0 jmp atexit mov [rsp+28h+arg_8], rax ``` AI日益发展的今天,CTF 的领域貌似已经被 AI 完全掠夺了,更快的做题速度,更好的方案,更杰出的解题脚本……不可否认 CTF 是锻炼基础的好阶段,不过我还是打算重点学习游戏安全领域,这是我从小就向往的行业,更希望这个插件能够帮助到有需要的师傅们,祝你们顺利! # 使用效果     # PatchEx PatchEx 是一个面向 IDA Pro 的汇编与字节补丁插件,适用于逆向分析、漏洞研究、二进制修复、CTF/AWDP 等需要精确修改和可靠回滚的场景。 ## 功能特性 - 基于 Keystone 的汇编补丁。 - 原始字节补丁,支持常见输入格式: - `90 90 C3` - `9090C3` - `\x90\x90\xC3` - `0x90, 0x90, 0xC3` - `db 90h, 90h, 0C3h` - 就地补丁:新代码短于选区时自动填充。 - Code cave trampoline:新代码无法放入原选区时,可跳转到代码洞执行后再跳回。 - 后台扫描 code cave,支持进度显示和取消。 - ELF 可覆盖节扫描,支持 `.eh_frame`、`.eh_frame_hdr`、`.gcc_except_table` 等元数据节。 - 补丁预览:按“机器码字节 + 对应汇编”的形式逐行展示。 - 原始选区展示:同步显示原始字节和反汇编。 - 补丁历史记录持久化到 IDB。 - Undo 前校验当前字节,避免覆盖用户或其他插件后续修改。 - 写入后读回校验,确保实际写入字节与预览一致。 ## 与 Keypatch 的区别 Keypatch 是 IDA 中非常经典的 Keystone 汇编补丁插件,适合快速输入汇编并应用补丁。PatchEx 的定位不同:它更像一个完整的补丁工作台,强调预览、符号解析、code cave、历史记录和安全回滚。 | 对比项 | Keypatch以及衍生版本 | PatchEx | | --- | --- | --- | | 主要定位 | 快速 Keystone 汇编补丁 | 带预览、历史、校验和 cave 支持的补丁工作流 | | 汇编补丁 | 支持 | 支持 | | 字节补丁 | 支持常见字节格式 | 支持,并显示原始字节、输入字节和最终写入字节 | | 预览方式 | 偏编码结果展示 | 按每条指令显示“字节 + 汇编” | | Code cave 工作流 | 无 | 内置 cave 扫描、rel32 可达性显示和 trampoline patch | | Cave 扫描 | 无 | 后台扫描,支持进度和取消 | | IDA 符号支持 | 无 | 支持自动名、导入名、ELF 版本符号、本地 label、栈变量风格名称、枚举常量、结构体成员、段前缀内存操作数 | | Undo 模型 | 偏最后一次补丁回滚 | IDB 持久化历史,记录原始字节和补丁字节,Undo 前校验 | | 安全策略 | 用户自行确认为主 | 未解析符号拒绝汇编;写入前检查映射;写入后读回验证 | | 大型二进制体验 | 重点在补丁动作本身 | Cave 扫描后台执行,避免 UI 长时间无响应 | PatchEx 并不是为了在所有场景取代 Keypatch。Keypatch 仍然是紧凑、熟悉的 Keystone 汇编入口;PatchEx 更适合需要审阅字节、使用复杂 IDA 符号、寻找 code cave、保留补丁历史和安全回滚的场景。 ## IDA 符号支持 PatchEx 会在汇编前解析常见 IDA 风格符号,包括: - 普通名称:`main`、`puts`、`global_buf` - IDA 自动名:`loc_401000`、`sub_401000`、`qword_404000` - 符号偏移表达式:`symbol+0x10`、`symbol-4` - 补丁文本内本地 label - ELF 版本符号:`puts@@GLIBC_2.2.5` - 常见导入/跳板装饰名:`__imp_MessageBoxA`、`j_puts`、`_symbol` - Demangled/display name 查询 - 栈变量风格名称:`var_8`、`arg_10` - 混合内存表达式:`[global_buf+rax*4+8]` - 枚举常量表达式:`PROT_READ | PROT_WRITE` - 结构体成员偏移:`my_struct.field` - IDA 段前缀内存操作数: - `mov rcx, cs:qword_147CAC8E8` - `mov cs:qword_147CB1490, 0` - `mov word ptr cs:lpServiceName, ax` - `mov rax, gs:58h` ## 安装方法 1. 在 IDA 使用的 Python 环境中安装 Keystone: ```bash pip install -r requirements.txt ``` 2. 将整个 `patchex` 目录复制到 IDA 插件目录: ```text <IDA>/plugins/patchex/ ``` 3. 重启 IDA。 4. 在反汇编窗口中选中需要修改的指令或字节,然后使用: ```text 右键 -> PatchEx -> PatchEx -- Patch Selection... ``` 或快捷键: ```text Ctrl+Shift+P ``` ## 使用流程 1. 在 IDA 中选中要替换的指令或字节。 2. 打开 PatchEx。 3. 查看顶部的原始字节和反汇编。 4. 在 ASM 或 Bytes 页面输入补丁内容。 5. 检查 Patch Preview 中的最终写入结果。 6. 如果可以就地写入,直接 Patch;如果需要 cave,先扫描并选择 cave。 7. 在 History 页面查看或撤销已记录补丁。 ## 注意事项 - 未解析符号会导致汇编失败,PatchEx 不会带着未知符号继续尝试写入。 - Undo 前会检查当前字节是否仍然等于 PatchEx 当初写入的字节。 - 大型二进制的 cave 扫描在后台执行,可以取消。 - 独立 NOP Fill 功能未暴露;如需写入 NOP,请使用 Bytes 页面明确输入字节。 # 一些补充 由于一直只有我一个人在用这个插件,只能随用随修,AI发展起来后,AI介入并重构了这套代码,在我的实际使用中,已经几乎稳定了,但难免有一些设计上的不合理之处,难以避免的Bug,希望不会影响到您的使用心情,如果您愿意,您可以参与到项目的维护当中:<a href="elink@09eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6q4N6h3q4J5L8X3!0Q4x3V1k6b7j5i4c8U0K9p5g2^5i4K6u0r3">项目地址</a>
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
上传的附件:
patchex.zip
(46.84kb,95次下载)
收藏
・
16
点赞
・
18
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
wx_晨梦
你的分享对大家帮助很大,非常感谢!
2026-7-16 09:14
mb_ybifzhpm
你的帖子非常有用,感谢分享!
2026-6-19 08:29
QL啊这啊这
感谢你分享这么好的资源!
2026-5-18 15:48
bluegatar
感谢你的积极参与,期待更多精彩内容!
2026-5-7 12:05
小柯南
为你点赞!
2026-5-7 00:00
程序原
感谢你分享这么好的资源!
2026-5-2 05:53
wusha
+1
非常支持你的观点!
2026-4-30 12:41
qqizai
感谢你的贡献,论坛因你而更加精彩!
2026-4-30 09:47
马来
谢谢你的细致分析,受益匪浅!
2026-4-29 19:59
dragonhood
你的分享对大家帮助很大,非常感谢!
2026-4-29 07:20
承_
感谢你分享这么好的资源!
2026-4-29 02:18
mb_wpitiize
期待更多优质内容的分享,论坛有你更精彩!
2026-4-28 21:47
mb_vmplhnet
非常支持你的观点!
2026-4-28 13:45
安全裤
这个讨论对我很有帮助,谢谢!
2026-4-28 09:16
UnicornMaker
为你点赞!
2026-4-28 08:22
七星舞月
你的分享对大家帮助很大,非常感谢!
2026-4-27 23:51
Gagma
感谢你分享这么好的资源!
2026-4-27 23:00
我的小拇指啊
谢谢你的细致分析,受益匪浅!
2026-4-27 22:57
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
14
)
mb_soqpzdaf
雪 币:
216
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
12
粉丝
0
关注
私信
mb_soqpzdaf
2
楼
佬,提前区的文章能看看吗
2026-4-29 05:08
0
mb_soqpzdaf
雪 币:
216
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
12
粉丝
0
关注
私信
mb_soqpzdaf
3
楼
佬,提前区的文章能看看吗?
2026-4-29 05:08
0
院士
雪 币:
7153
活跃值:
(7649)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
261
粉丝
5
关注
私信
院士
4
楼
感谢大佬开源。
2026-4-29 11:39
0
靴子
雪 币:
215
活跃值:
(1675)
能力值:
( LV2,RANK:10 )
在线值:
发帖
19
回帖
565
粉丝
1
关注
私信
靴子
5
楼
不明觉厉~
2026-4-29 16:34
0
靴子
雪 币:
215
活跃值:
(1675)
能力值:
( LV2,RANK:10 )
在线值:
发帖
19
回帖
565
粉丝
1
关注
私信
靴子
6
楼
2026-4-29 16:35
0
huangjw
雪 币:
6688
活跃值:
(11872)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
511
粉丝
2
关注
私信
huangjw
7
楼
大佬非你莫属
2026-4-29 18:56
0
huangjw
雪 币:
6688
活跃值:
(11872)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
511
粉丝
2
关注
私信
huangjw
8
楼
大佬非你莫属
2026-4-29 18:56
0
huangjw
雪 币:
6688
活跃值:
(11872)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
511
粉丝
2
关注
私信
huangjw
9
楼
大佬非你莫属
2026-4-29 18:56
0
huangjw
雪 币:
6688
活跃值:
(11872)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
511
粉丝
2
关注
私信
huangjw
10
楼
2026-4-29 18:56
0
huangjw
雪 币:
6688
活跃值:
(11872)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
511
粉丝
2
关注
私信
huangjw
11
楼
大佬非你莫属
2026-4-29 18:57
0
mb_aopnnvxb
雪 币:
97
能力值:
( LV1,RANK:0 )
在线值:
发帖
1
回帖
79
粉丝
0
关注
私信
mb_aopnnvxb
12
楼
mark
2026-4-29 19:30
0
墨穹呢
雪 币:
4706
活跃值:
(8127)
能力值:
( LV3,RANK:20 )
在线值:
发帖
2
回帖
224
粉丝
18
关注
私信
墨穹呢
13
楼
感谢分享
2026-5-3 09:44
0
xzchina
雪 币:
623
活跃值:
(2517)
能力值:
( LV4,RANK:50 )
在线值:
发帖
43
回帖
854
粉丝
2
关注
私信
xzchina
1
14
楼
很酷
2026-5-4 20:22
0
啊你好哇123
雪 币:
723
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
362
粉丝
0
关注
私信
啊你好哇123
15
楼
这不收藏
2026-5-5 15:57
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
江树
1
9
发帖
39
回帖
85
RANK
关注
私信
他的文章
[原创] 由于转型游戏安全 我打算开源这个IDA插件 PatchEx
3760
[原创]2026 年腾讯游戏安全初赛 PC方向
11172
[原创]第十九届全国大学生信息安全竞赛半决赛 ISW 第二题 WP
14291
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
谁下载
×
ylp1332
LOCKLOSE
cquaker
ysoni
hxsoft
huangyalei
meilin
sice
asd
断血疯
xdjm
caxfan
amazingosp
dreampsp
pittsfr
dragonhood
Gagma
michallsun
wuyuhan
Crakme
dxzhang
马来
jstqyymwy
Flandre
btmanbtman
leishop
spacetimec
fujing
顽劣
蓝色水瓶
jiqigouer
asmbin
breaklink
doduhuang
wx_kx29662
风_158566
mata
kycgni
Weird_Wired
烈酒醉江山
阿腊婆
qqizai
小柯南
jing2020
seeooo
mb_dcnwdpsk
iCookiie
zixuan203344
Saint Shine
mb_ghcouuzx
七星舞月
mb_jpkymxtc
mb_uznbhaji
ClPrada
crisq
ysc130
Dilene
mb_kujsrqqv
R3v
mb_ssivymdz
mb_ybifzhpm
KI08
mb_uvlpnjmp
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部