PYG官方论坛 发表于 2020-4-1 19:09:54

使用 Baymax 修改指令中【全局变量】的数值

新版的 Baymax Patch Tools v2.9.5 / x64 v2.5 已经支持了从指令中保存全局变量的功能。



例如指令中:CMP DWORD PTR , 0

BAYMAX 可以解析出 77AFD9BC 这种 DWORD PTR 汇编语句中的“全局变量地址”。

如何修改全局变量的数值呢?分两步走:

1. 存储全局变量



输入中断地址,
补丁类型中选择“存储当前数据”,
存储值为“保存指令中的内存地址”,
并在存储标号栏中输入唯一的我们用于标识的标号名称,例如“ID_SAVENAME_TEST”

这样我们就将该地址进行了保存。

2. 使用并修改全局变量指向的内存



我们再设置一处中断地址(可以为同一个地址,baymax支持对同一个地址设置多个补丁条目,但顺序要对:先存后取)
补丁类型选择“修改存储值指向的内存”,
补丁数据选择“自定义立即数”,
标号数据栏输入格式为“ 标号_ID ,立即数数据”,这里我们需要赋值为 0x1F000000,所以填写 “ID_SAVENAME_TEST, 1F000000 ” 即可。

这样就可以修改该地址的内存数据了。

小技巧:



我们选择“修改存储地址指向的内存”时,发现寄存器一栏为 EXX/RXX,并且还可以设置偏移。

BAYMAX 支持对我们保存的地址进行二次寻址,支持 +N1 这样的寻址操作,这样我们保存类对象后,就可以方便的修改其成员的数值。

例如我们保存的地址为 10000000,而我们需要修改的地址为 10000008,我们设置偏移为 EXX+8 即可(x64位 RXX+8)。
Only Game, Have fun ~!



ningzhonghui 发表于 2020-4-1 19:26:19

谢谢,学会了,有空测试玩玩

echo 发表于 2020-4-1 22:37:48

太好了,非常实用的功能

smallhorse 发表于 2020-4-2 07:34:21

大白一出手,就是超神模式开启!{:lol:}

tiantian89 发表于 2020-4-2 11:39:29

感谢分享 收藏学习

lpjc_zms 发表于 2020-4-3 11:42:47

牛B,顶.................................

Leopard 发表于 2020-4-4 09:21:21

学习到了,大白确实太厉害了

iamok 发表于 2020-4-5 22:59:23

老大新版在哪里下载呀

fq5588 发表于 2020-4-7 22:56:10

1zc9太好了,非常实用的功能

daiviswang1987 发表于 2020-4-14 00:01:32

感谢发布原创作品,PYG有你更精彩!
页: [1] 2
查看完整版本: 使用 Baymax 修改指令中【全局变量】的数值