原理,通过Hook unity3d系统内时间函数,达到全局加速。
第一逆向出dump文本,帖子内有。记得区分32位So和64位。
一般情况建议删除armeabi-v7a文件夹留下arm64-v8a 因为64位支持库性能更好。
第二搭建Debug菜单环境
第三搜索dump.cs文本里面的关键词【public class Time //】记住搜出来的结果上面必须是叫【UnityEngine】这个搜错成了其他有可能没效果。
然后在下面几行找到【get_deltaTime】这个函数复制偏移地址Offset,方法名上面一行标注了有。比如0x12A6648第四打开debug菜单开发工具,申明一个int类型变量,变量名随便,这里是sliderValue=1 默认这样填(不默认有可能导致游戏出错)
然后写一段新的函数代码这里我偷了懒,没修改函数名字为get_deltaTime 不过问题不大,其实函数名字都可以随便自己填,不是必须得原函数名,只要能区分就行
代码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位 如图
64位hook偏移地址代码放在if里面 32位的在下面else里面HOOK_LIB(“libil2cpp.so”, “0x12A6648”,get_timeScale,old_get_timeScale); 现在这里在0x12A6648后面的两个参数名字填上刚刚申明的函数名。第五添加菜单OBFUSCATE(“77_SeekBar_加速器_1_1000”),77代表这里
文本显示就是加速器,自己随便改 1_1000代表滑动拉条可以从1倍拉到最满的1000倍,都是随便改。不要太高手机fps会卡。
填完了打包植入so测试就行。植入so教程在第二步。测试图
教程结束。
暂无评论内容