弱鸡娱乐网 · 免费提供绿色软件、活动线报以及其他网络资源,好货不私藏!

【原创教程】Mod菜单-函数数还原与重写

zhangzhyu 安卓软件

大佬勿笑! 仅供小白参考!!

1.使用的HOOK方法如图1

使用到了

HOOK_LIB_NO_ORIG()

thumb和32位 MSHookFunction((void *) getAbsoluteAddress(targetLibName, 0xD4722C), (void *) BossMonster_BaseEntity__PlusHp, nullptr);

64位 A64HookFunction((void *) getAbsoluteAddress(targetLibName, 0xD4722C), (void *) BossMonster_BaseEntity__PlusHp, nullptr);

2.可以看到这种hook方式将不会返回原函数继续执行(即只执行你写的代码),为了保证游戏不崩溃,第一步你应该还原函数逻辑,这时候我们需要IDA来分析要还原的函数,根据其逻辑用c或c++还原逻辑。好在iDA为我们提供了伪代码功能(按F5),我们只需要复制伪代码到我们的菜单中即可,不过需要注意的是A: IDA的伪代码往往没有变量名称,你可以根据dump.cs中的信息来补全 B: IDA常常会搞错参数个数,请你注意,并自行修复报错

还原过程如图 2,3,4。

先还原,还原后注入游戏的原功能是否还正常,如正常就可以进入修改步骤了。

3.一个例子: 这里我们还原了一个加血函数和它会调用的函数,这里为了玩家自己坐牢,我们想要实现如下功能 1.削弱回血量 2.血量不得大于1000否则加负血。3,每加一滴血减三滴蓝

如图5

4.有什么用????????

--还原函数后我们可以轻易的用高级语言来修改函数逻辑,而不用考虑怎样机械码来实现功能,可以轻易实现一些高级功能。

--还原函数后我们可以在函数内轻易的调用一些库函数或自定义函数,可玩性极高,这是改机械码很难做到的

--被还原的函数间可相互调用,实现更高级的功能,你甚至可用此功能来改变游戏逻辑

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

评论列表
请自觉遵守互联网相关的政策法规,严禁发布广告、色情、暴力、反动的言论。
  • 点击我更换图片
  • 全部评论(0
    还没有评论,快来抢沙发吧!