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