l DynamicPatcher是什么?
DynamicPatcher(以下简称DP) 是一个拥有动态编译和注入功能的程序。可以基于其原理编写YR扩展平台。
l 特性
Hook类型
Ares样式Hook
直接跳转到Hook函数
直接跳转到指定地址
写入字节码到指定地址
可以随时移除Hook
当hook出现异常时将Hook移除,并执行原有的代码
动态编译和注入代码
Hook冲突检测机制
l 基于DP的扩展平台
现暂将其划分为两部分——动态与静态
动态意味着可以在运行时编辑代码,并重新编译注入。
动态
所有的Hook
…
静态 (在解决方案(.sln)中包含的项目)
API
数据结构定义
…
l 提供的例子
在项目提供的例子中,实现了以下功能:
多扩展平台管理
装饰者
脚本(可在运行时更新,但不安全)
支持存档读档
实时INI编辑(实验性功能,需自行启用)
l 例子展示

动态修改动态部分代码1

装饰者模型使用例子

单位脚本使用例子

动态修改动态部分代码2

实验性功能实时INI

从异常中恢复的Hook处理
l 我不是程序猿,我如何使用?
如果有那么一点可能,你可能会想尝试DP(例如实时INI,之后我会发视频介绍如何启用),尽管你不是程序猿,那么:
1. 下载最新的DP
2. 解压到游戏目录
3. 为验证DP是否工作,将DynamicPatcher\compiler.config.json里面的hide_console设置为false(之后可以改回去)。除此之外可以尝试发布页面中提到的修改尝试。
4. 用运行Ares的方式运行游戏
如果DP工作不正常,检查:
1. 是否有VC++ 2015-2019 x86 和 .NET Framework 4.8 运行库
2. 是否以管理员身份启动
l 更多信息
请到Github页面了解
链接:https://github.com/Xkein/YRDynamicPatcher
l 觉得DP不错?(要饭)
赞助方式:前往Github页面拉到最下面,选择支付宝或微信赞助。