跳转到帖子

推荐的帖子

发布于

原理,通过Hook unity3d系统内时间函数,达到全局加速。

第一

逆向出dump文本,帖子内有。

记得区分32位So和64位。

一般情况建议删除armeabi-v7a文件夹

留下arm64-v8a

因为64位支持库性能更好。

#【技术教程】手机实现逆向so文件,u3d游戏教程#

第二

搭建Debug菜单环境

#【技术教程】记录手机制作u3d游戏mod菜单过程#

第三

搜索dump.cs文本里面的关键词

【public class Time //】

记住搜出来的结果上面必须是叫

【UnityEngine】这个

搜错成了其他有可能没效果。

rBAAdmR3yUyAPZavAANflicc1do261.jpg

然后在下面几行找到【get_deltaTime】这个函数复制偏移地址Offset,方法名上面一行标注了有。

比如0x12A6648

第四

打开debug菜单开发工具,申明一个int类型变量,变量名随便,这里是sliderValue=1 默认这样填(不默认有可能导致游戏出错)

rBAAdmR3yU2AZg3yAAGczYHA1BM429.jpg

然后写一段新的函数代码这里我偷了懒,没修改函数名字为get_deltaTime 不过问题不大,其实函数名字都可以随便自己填,不是必须得原函数名,只要能区分就行

rBAAdmR3yU6AfysFAAGfaOHtX5o078.jpg

代码

float (*old_get_timeScale)(void *instance);

float get_timeScale(void *instance) {

return old_get_timeScale(instance) * sliderValue;

}

填完函数后添加Hook偏移代码语句,记得分清楚你是dump的arm64-v8a 64位的so还是armeabi-v7a 32位的so 因为填写的地方会不同,这里默认64位 如图

rBAAdmR3yU-AMqfHAAHvGETgChY506.jpg

64位hook偏移地址代码放在if里面 32位的在下面else里面

HOOK_LIB("libil2cpp.so", "0x12A6648",get_timeScale,old_get_timeScale);

现在这里在0x12A6648后面的两个参数名字填上刚刚申明的函数名。

第五

添加菜单

OBFUSCATE("77_SeekBar_加速器_1_1000"),

77代表这里

rBAAdmR3yVCAWbBqAAHHqlkdfXI163.jpg

文本显示就是加速器,自己随便改 1_1000代表滑动拉条可以从1倍拉到最满的1000倍,都是随便改。不要太高手机fps会卡。

rBAAdmR3yVCABiUKAAHizEzkrhg900.jpg

填完了打包植入so测试就行。植入so教程在第二步。测试图

rBAAdmR3yVGAHdfFAAIhHK4kur4090.jpg

教程结束。

参与讨论

你可以现在发布并稍后注册. 如果你有帐户,现在就登录发布帖子.

游客
回帖…