记录unity3d通用加速器功能

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

第一逆向出dump文本,帖子内有。记得区分32位So和64位。

一般情况建议删除armeabi-v7a文件夹留下arm64-v8a 因为64位支持库性能更好。

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

第二搭建Debug菜单环境

#记录手机制作u3d游戏mod菜单过程#

第三搜索dump.cs文本里面的关键词【public class Time //】记住搜出来的结果上面必须是叫【UnityEngine】这个搜错成了其他有可能没效果。

图片[1]-记录unity3d通用加速器功能-可能资源网

然后在下面几行找到【get_deltaTime】这个函数复制偏移地址Offset,方法名上面一行标注了有。比如0x12A6648第四打开debug菜单开发工具,申明一个int类型变量,变量名随便,这里是sliderValue=1 默认这样填(不默认有可能导致游戏出错)

图片[2]-记录unity3d通用加速器功能-可能资源网

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

图片[3]-记录unity3d通用加速器功能-可能资源网

代码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通用加速器功能-可能资源网

64位hook偏移地址代码放在if里面 32位的在下面else里面HOOK_LIB(“libil2cpp.so”, “0x12A6648”,get_timeScale,old_get_timeScale); 现在这里在0x12A6648后面的两个参数名字填上刚刚申明的函数名。第五添加菜单OBFUSCATE(“77_SeekBar_加速器_1_1000”),77代表这里

图片[5]-记录unity3d通用加速器功能-可能资源网

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

图片[6]-记录unity3d通用加速器功能-可能资源网

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

图片[7]-记录unity3d通用加速器功能-可能资源网

教程结束。

THE END
抢沙发

请登录后发表评论

    暂无评论内容