
Baymax Patch Tools v3.5.1

软件介绍：
	Baymax Patch Tools 针对目标进程释放劫持DLL来加载功能模块PYG.DLL，实现对目标进程的动态补丁。Baymax 不仅支持动态修改目标模块的指令和数据，还模拟了 OD 的下断功能，可以对目标模块下断后修改对应的寄存器、标志寄存器、寄存器指向内存的内存数据，在不修改目标文件的情况下实现对其破解。
	支持以下两种补丁功能：搜索替换补丁，通过特征码或偏移地址来定位内存地址，直接修改进程内存中的指令代码或内存数据。异常中断补丁，支持模拟调试器的异常中断功能，通过设置并触发中断后修改寄存器、内存等数据，以实现修改程序执行流程等目的。
	工具有加壳保护，杀软可能会误报工具及补丁文件！由于使用了壳的SDK，工具所有组件（包括生成的补丁）均不含联网功能！所生成的补丁运行时不会修改系统中的任何文件（覆盖补丁文件除外）。工具自身有校验机制，启动时校验模块成功后才会进行加载，但为了安全考虑，请务必从官方下载使用。

功能介绍：
. 支持创建劫持和注入补丁，不修改目标文件实现破解
. 支持对动态基址(ASLR)的进程补丁
. 支持补丁目标进程的多个DLL模块
. 支持同时补丁同目录下的不同EXE
. 支持对进程指定地址的内存数据补丁
. 支持对进程使用特征码匹配进行补丁
. 支持对加壳程序设置API HOOK解码后再补丁数据
. 支持对进程设置软件、硬件断点中断后再进行补丁数据
. 支持对进程设置异常断点中断后修改寄存器或寄存器指向的内存
. 支持对进程设置条件断点根据中断次数、寄存器或内存数值来判断是否执行Patch
. 支持对同一地址设置不同条件断点对符合条件的中断进行对应的Patch
. 支持从指令中提取全局变量存储及修改
. 支持进程执行中存储数据和使用存储的数据
. 支持中断后对存储标号指向的内存进行补丁
. 支持中断后对数据做基本运算操作
. 支持从ini文件中读取补丁数据
. 支持创建内存注册机
. 支持创建调试补丁，可自行排查补丁问题

作者：Nisy/PYG 
官方网站：飘云阁官方论坛 www.chinapyg.com
首发时间：2016.03.21


更新日志：

2025.11.16
x86 v3.5.1.7
1. 扩展补丁文件生成
 - 新增一批系统劫持DLL。
 - 补丁支持自定义，可在“自定义补丁设置”页面自定义劫持模块；
 - 补丁中也可捆绑自定义文件，其中，非PE文件将随补丁一同释放到目标目录，其他文件可手动选择释放；
 - 破解模块 PYG/PYG64 中补丁数据支持动态扩容。
2. [小工具]：增加 “进程劫持DLL探测器” 小工具，实现了从发现可用劫持DLL ==> 生成劫持DLL代码工程 ==> 补丁中自定义劫持模块的闭环。
3. [小工具] 劫持代码生成器更新，感谢 &SkyLine、踏雪无痕 的反馈。
 - 兼容 vs2022 最新版，修正中间目录的设置
 - 修复设置“中转模式”时处理以序号导出场景的BUG
 - 修复C++导出参数间无逗号的BUG
 - 支持 UNICODE 文件名，x64 汇编代码支持UNICODE
 - 对已安装VS的环境，支持一键编译
 - 支持 vs2026
4. [小工具] PE文件二进制比较 更新，增加结果导出功能。
5. 修复某些情况下特征码搜索不到的BUG。
6. 修复了和 VMP3.x 的兼容性和一些 BUG，感谢 csjwaman、真小白 的问题反馈。
7. 优化主程序的一些细节，如保存 bpt 工程等提示。
8. 补丁 LOGO 弹框关闭时将目标程序主窗口前置
9. 主程序崩溃时生成 dump 文件
10. 在 UI 窗体控件上增加了 tip 冒泡以展示完整文字。 
11. 支持更多的语言文件，感谢 KuNgBiM、红豆 提供的多语言文件及文案校对。
12. 增强了数据保护、兼容性和反调试，感谢 kxoe 提供的建议。
13. 增加工具使用视频教程

2024.08.11  
x86 v3.3.3
1. 修复 Win7 系统Hook失败导致监控模块加载无效的BUG。
2. 修复 INT3-3 模式下，设置NOP类型补丁时崩溃的BUG。（感谢 SlayerS'_'BoxeR 反馈）
3. 内部逻辑的一些优化。

2024.03.21  
x86 v3.3.1
1. 增加劫持代码生成工具。将可用于劫持的模块（dll）拖入窗口，可以生成对应 VS 版本的劫持工程。工具支持劫持模式和中转模式；支持部分 C++的导出函数（命名空间、类、虚表、静态成员等）；可以解析并生成导出数据（非函数）等
2. 对补丁模块 PYG.dll/PYG64.dll 内部逻辑做了重构优化，32/64模块功能已对齐。
3. 增强了“保护硬件断点”功能（win7上有待完善），勾选该功能后，对一些加壳程序可直接设置硬断进行补丁。
4. 支持设置UI字体，支持对补丁设置默认字体，补丁的菜单中也可以自行设置字体。
5. 修复在非中文系统上的兼容性问题。
6. 修复XP系统 PYG.dll 加载失败的问题
7. 修复 detours 偶现的卡死问题（感谢 DNA 的反馈和协助测试）
8. 修复“自主加载”模式对某些进程注入失败的BUG（ 感谢 石头&布 的反馈）
9. 生成 loader 不再强制覆盖 ini 文件
10. 语言文件的修改，支持设置多 LangId，以逗号分割
11. 取消了调试版对debugview的输出。
12. 调试版不再检测x64dbg，不再检测自带的劫持DLL。
13. 增加西班牙语 语言文件，感谢 LoPeRa 提供。


2023.09.12
x86 v3.1.7
1. 修复设置语言后重启失效的BUG（感谢 plusv 的反馈）。
2. 增加 繁体中文 语言（感谢 plusv 提供）。
3. 修复“函数直接返回后修改上下文”类型中设置栈调整数值后可能触发崩溃的问题。

2023.08.31
x86 v3.1.5
1. 修复 Int3-3 模式中设置函数立即返回程序卡死的BUG（感谢 听雨 的反馈）。
2. 修复在同地址设置多补丁条目时的逻辑冲突问题。
3. 修复条件断点中包含 UNICODE 字符串时设置失败的BUG。
4. 优化int3-1、硬件断点异常处理函数的流程。
5. 增加补丁过程中调试信息的输出。
6. 修复 KB5029247 系统补丁的兼容性问题（感谢 夫唯不争 的反馈）。
7. 完善对所有线程设置硬件断点的处理逻辑（感谢 春天里 的反馈和测试）。
8. 修复 XP 以上平台对 uxtheme.dll 文件校验错误的 bug（感谢 小面条 的反馈）。
9. 内部的一些优化和反调试。

2023.01.30
x86 v3.1.3
1. 修正编辑老版本 bpt 工程时，解析包含条件断点条目错误的BUG （感谢 737008227 的反馈）
2. 修正x64 编辑条件断点 QWORD 数据显示错误的BUG

2023.01.29
x86 v3.1.2
修复3.1版本中引入的bug：设置 When Running to Oep 生成非调试版 Loader 将导致目标进程启动卡死（感谢 梦幻的彼岸 反馈）

2023.01.19
x86 v3.1.1
修复加壳导致的XP系统下的兼容性问题

2023.01.18
x86/x64 v3.1.0
1. 支持多国语言功能
2. 调整优化了UI，文字描述等，提升了交互体验
3. 修复了偶尔创建补丁失败的问题（感谢 沐子 反馈）
4. 补丁模块：优化进程加载众多Dll导致启动卡慢的问题（感谢 真小白 反馈）
5. 补丁程序：补丁工具也支持多国语言功能
6. 地址格式转换工具：调整UI、优化交互
7. 特征码搜索工具：优化搜索算法，支持搜索字符串，搜索结果增加区段信息、属性。
8. 感谢这段时间参与翻译、测试和反馈的众多好友，没有大家的共同努力，多国语言的需求也难以在年前落地，再次感谢。

2022.04.10
x86 v2.9.7.5
x64 v2.7.5
1. 修复解析以序号导出表的BUG（感谢 飞鹰 反馈）
2. (x64)修复解析QWORD立即数的BUG
3. 优化当原始数据和补丁数据相同时的一处逻辑问题（感谢 GGLHY 反馈）
4. 特征码搜索结果设置最大值为99，优化特征码搜索算法
5. 优化补丁条目编辑框一些细节

2022.04.06
x86 v2.9.7.3
x64 v2.7.3
1. 修复编辑补丁条目窗口的BUG
2. 函数导出列表支持以序号导出的接口

2022.04.05
x86 v2.9.7.1
x64 v2.7.1
1. 增加异常断点补丁编辑功能
2. 修正存储数据的引用计数

2022.03.21
x86 v2.9.7
x64 v2.7.0
1. 增加 Loader 模式（When Running to OEP），带参启动loader即可将参数传给目标进程
2. 支持对所有线程设置断点
3. 劫持模块对win11的支持
4. 去掉补丁字数限制
5. (x64)可设置补丁启动不弹框 

2020.06.08
x86 v2.9.5.4
x64 v2.5.4
1. 修复特征码补丁的BUG（感谢 SlayerS'_'BoxeR 的反馈）

2020.05.17
x86 v2.9.5.3
x64 v2.5.3
1. INT3断点（模仿HOOK模式）支持AntiDbg补丁类型。
2. 修复INT3断点（模仿HOOK模式）多线程的BUG。
3. 同步”帮助文档“。

2020.05.01
x86 v2.9.5.2
x64 v2.5.2
1. 修复INT3断点模仿HOOK模式的BUG。
2. INT3断点模仿HOOK模式支持“增加反调试检测”的补丁类型。
3. 支持" 7? "格式的特征码搜索及特征码补丁。
4. 修复选择大文件失败的BUG。
5. 内部的调整及优化。

2020.04.07
x86 v2.9.5.1
x64 v2.5.1
1. INT3断点增加模拟单步模式2模式（不支持多线程）。
2. INT3断点增加模仿HOOK模式（支持多线程）。
3. 修复条件断点偶尔解析失败的BUG。
4. 修复其他一些BUG。

2020.03.21 Hb
x86 v2.9.5
x64 v2.5.0
1. 支持从中断地址中存储指令中包含的内存地址（形如[XXXXXXXX]的全局变量值）。

2019.08.04
x64 2.3.7
1. 优化断点处理逻辑，增加反调试断点。
2. 增加“帮助文档”
3. 修复bug，增强稳定性。
x86 v2.9.3
1. 优化断点处理逻辑，增加反调试断点。
2. 修复劫持DLL跨平台的兼容性。
3. 若补丁中存在无效条目，可勾选"无效补丁最多搜索5次"。
    例如补丁中使用HOOK功能，且存在无效条目，勾选后可加速启动。
4. 若进程加载模块较多，为不影响启动速度，可勾选"自定义补丁DLL时机"。
    此时Baymax将不再监控模块的加载，若补丁地址为DLL，用户需自行设置HOOK完成补丁。
5. 加壳选项中不再检测IDA。
6. 增加“帮助文档”

2019.07.24
x64 v2.3 
1. 修复条件断点的BUG（感谢 太阳 帮忙排查定位BUG）。
2. 修复INT3断点的BUG
3. 修复劫持DLL跨平台的兼容性。
4. 若补丁中存在无效条目，可勾选"无效补丁最多搜索5次"。
    例如补丁中使用HOOK功能，且存在无效条目，勾选后可加速启动。
5. 若进程加载模块较多，为不影响启动速度，可勾选"自定义补丁DLL时机"。
    此时Baymax将不再监控模块的加载，若补丁地址为DLL，用户需自行设置HOOK完成补丁。
6. 加壳选项中不再检测IDA。

2019.03.21 Hb
x64 v2.1
1. 修复解析某些PE导出表时崩溃的BUG
2. 修复x64特征码偏移值为负数时VA计算错误。
3. 修复x64异常循环断点超过4个时崩溃的BUG。
4. 修复地址属性非可执行时未补丁的BUG。
5. 修复注入补丁无效的BUG。
x86 v2.9.1
1. 修复解析某些PE导出表时崩溃的BUG
2. 修复地址属性非可执行时未补丁的BUG。

2019.02.16
x64 v2.0
1. 支持异常断点功能
2. 增加文件比较、偏移转化小工具。
3. 支持进程执行中存储数据和使用存储的数据。
4. 支持对存储标号指向的内存进行补丁。
5. 支持对数据做基本运算操作。
6. 支持从ini文件中读取补丁数据。
7. 优化界面错误提示等。
x86 v2.9
1. 增加文件比较、偏移转化小工具。
2. 支持进程执行中存储数据和使用存储的数据。
3. 支持对存储标号指向的内存进行补丁。
4. 支持对数据进行运算。
5. 支持从ini文件中读取补丁数据。
6. 优化界面错误提示等。

特别感谢不破不立、hpindigo、andyfeifei、太阳等会员的内测反馈。

2018.08.16 v2.7 beta Build0816
1. 增加 内存注册机
    示例贴：https://www.chinapyg.com/thread-120569-1-1.html 
2. 增加 函数直接返回后修改上下文
    示例贴：https://www.chinapyg.com/thread-119125-1-1.html
3. 调整[内存偏移值]输入为汇编格式自动解析
    格式样例：[[[ESP]+23]]+B7	// 均为HEX数值
    放弃早期的偏移设定规则，若存在多层偏移旧版BPT可能在新版会解析出错。
4. 优化硬断
5. 优化若干细节

2018.05.27 
x64 v1.1
1. 修复某些HOOK API崩溃的问题。
2. 修复Release版补丁条目为一字节失效的BUG。
x86 v2.5.3
1. 更新新图标并支持拖拽。
2. 修复Release版补丁条目为一字节失效的BUG。

2018.05.13 x64 v1.0
Baymax Patch Tools x64 发布
1. 支持偏移补丁
2. 感谢 KuNgBiM、感冒的猪baby、路漫漫、零下七度、飞上天的鱼 为x64提供的资源素材。

2018.05.05 v2.5 r2 Build0505
1.修复加载老版本bpt崩溃的BUG

2018.04.12 v2.5 r1 Build0412
1.修复界面设置若干bug
2.增强条件断点安全性

2018.03.21 v2.5 Hb Build0321
1.增加函数返回时处理参数或返回值的功能。
2.优化界面设置及出错弹框反馈。
3.修复若干小BUG。

2017.11.18 v2.3 r2 Build1126
1.补丁特征码采用混淆搜索方案增强调试分析难度。
2.补丁数据采用新的加密方案，优化VM加密方案使之更稳定(感谢 xjun 的建议)。
3.修复v2.1版生成的补丁在Win10预览版崩溃的BUG。
4.修复uxtheme.dll在某些程序加载后功能异常的BUG。
5.修复retn x指令设置永久断点无效的BUG(感谢 不破不立 反馈)。
6.修复多层偏移指针地址无效的BUG(感谢 太阳 反馈)。
  方案修正为：第一层为偏移，之后的数据若为0则取改地址指向的数据( *(PBYTE)xxx )，非0则认为偏移( xxx + n)。
  即：第一层为0时也默认为偏移值；第二层一般为0；第一层之后不应该出现两个连续的非0值。
  例：ESP:1C,0,70 ==> (PBYTE)*(ESP + 1C ) + 70
  例：ESP:0,0,2C,0 ==> *((PBYTE)*(ESP + 0 ) + 2C)

2017.09.07 v2.1 Build0905
1.修复硬件断点超过3个后程序崩溃的BUG。
2.智能断点原策略为：优先设置硬件断点，若硬件断点占满则设置为INT3断点。
      调整新策略为：全部设置硬件断点，若硬件断点占满，则当硬断有空位后依次添加剩余条目。
3.优化内部架构，增强稳定性。
4.祝贺武汉科锐逆向十周年< 五期学员 Nisy >。

2017.03.21 v2.0
1.增加补丁启动时不显示LOGO的选项。
2.修复若干小BUG
3.周年纪念版！03.21 Hb

-------------------------------- -

2016.12.28 v1.99c
1.修复中断补丁编辑条目时条件断点解析错误的BUG（感谢 Rooking 的反馈）。
2.修复加载BPT工程文件时，中断补丁无法显示目标为其他模块的BUG（感谢 Glacier 的反馈）。

2016.12.25 v1.99
1.修复快速搜索算法的BUG（感谢 初若安然 的反馈）。
2.对于INT3异常中断补丁，当选择内存地址模式时，程序若加壳需设置该指令首字节数据，无壳默认为0即可。
3.增加选项"补丁含有无效条目"，勾选后release版若遇到无效条目将继续执行下一条补丁数据。
4.增加字符串转HEX数据插件。
5.Merry Christmas ^_^ 

2016.11.30 v1.97
1.修复 Anit Shellcode 在某些情况下导致修改内存失败的BUG（感谢 有你§幸福 的反馈）。
2.庆祝PYG论坛成立十二周年！ 2004.12.01 ==> 2016.12.01 ==> Future ...

2016.11.27 v1.95
1.修复异常断点窗口对条目编辑数据出错的BUG。
2.修复对连续地址设置异常断点出错的BUG（感谢 不破不立 的反馈）。
3.启动提速：Release版当特征码数据未找到将等待下次调用时继续查找。
4.启动提速：对于已补丁过的条目不再遍历。

2016.10.28 v1.93
1.修复条件断点内存偏移为负值时解析失败的BUG。
2.条件断点编辑时提供伪码预览。
3.特征码搜索若不含 ?? 时恢复高效查询算法。
4.修复PE解析等代码的一些BUG。
5.增强 Baymax.exe 及 PYG.DLL 的安全性。

2016.10.13 v1.91
1.异常中断补丁增加条件断点功能。
   <1>条件断点：第几次执行中断；寄存器或寄存器指向的数据满足设定条件时。
   <2>支持对同一地址设置不同的条件断点并当符合条件时执行对应的补丁数据。
2.修复补丁数据为空字符串的BUG。

2016.09.07 v1.77 Beta5
1.增加设置选项：
   <1>保护硬件断点   // 若程序有检测硬件断点时可以设置
   <2>OEP不设置中断  // 若程序有检测内存数据时可以设置（设置后可能会影响平台兼容性）
2.修复设置中断方式兼容性，可以配合“保护硬件断点”功能一起使用。
3.特征码搜索模块增加选择 *.DLL, *.* 文件 的下拉选项。
4.修复目标模块较大时搜索特征码超时等BUG。

2016.08.28 v1.77 Beta3
1. 补丁执行时机 HOOK 选项增加“设置中断方式”，选择模块并设置RVA后，当程序运行到该地址时再执行补丁项（相对于HOOK API提高执行效率，设置中断方式适用于部分壳，对于注入模式补丁暂时无效）。

2016.07.30 v1.77 Hb
1. 调试版补丁生成 xxxx_baymax.log 文件。
2. 修正BUG。

2016.07.25 v1.75 Beta7
1. 创建补丁增加时间戳

2016.07.20 v1.75 Beta5
1. 解决特征码搜索的BUG，去掉KMP回朔逻辑。
2. 支持API HOOK对新线程设置硬件断点。
3. 简单Anti壳对于硬件断点的防护
4. PatchUi 释放文件时判断是否为大白创建
5. PatchUi 当未找到劫持补丁时讯问是否采用注入模式。
6. 异常补丁界面,修复修改后数据变大写 的BUG
7. 窗口选择文件默认路径不再设置为打开目录

2016.07.09 v1.75 Beta3
1. 修复反调试触发的BUG

2016.07.09 v1.75 Beta1
1. 增加DLL注入补丁
2. 优化异常断点的处理

2016.07.02 v1.73
1. 增加补丁方案保存和加载功能。
2. 增强各平台的兼容性  fix1
3. 修复特征码搜索的BUG
4. 补丁DLL模块扩展为任意格式模块

2016.06.09 v1.71
1. Fix 修复主程序添加空项时会崩溃的问题
2. 修复XP下加壳异常的问题

2016.06.06 v1.7 Release
1. 修改启动LOGO
2. Release版补丁增加反调试功能
3. 修复Bug
4. Fix EDX,0..M,H,10,ECX,0

2016.06.03 Beta7
1. 修复目标为任意进程无效的BUG
2. 增加异常中断补丁伪码的修改功能
3. 对异常断点的优化及防止附加

2016.05.24 Beta5
1. 修复硬件断点无效的BUG
2. 增加特征码搜索工具

2016.05.22 Beta3
1. 修复断点MEM类型 REG\ASCII\UNICODE的BUG。

2016.05.20 Beta
1. 修复BUG
2. 优化异常中断补丁实现机制
3. 添加程序启动LOGO及补丁LOGO
4. 可生成补丁发布版及调试版（打开debugview接受调试输出信息）

2016.05.12 (0504_2 Alpha)
1. 修复BUG，增加获取NEXT IP的更多情况。
2. 增加 INT3 断点，接管R3非调试模式下的异常机制。
3. 断点补丁支持API HOOK，对补丁条目增加引用计数判断。

2016.05.09 (0504_1 Alpha)
1. 增加异常中断补丁
2. 支持硬件中断类型补丁（智能 or 硬件断点）
3. 频率支持每次，可以解析跳转指令的NEXT IP。 

2016.03.21 Alpha
1. 完成指令替换补丁