手游加速器原理分析和代码实现
前段时间手游加速器很火。以光环为代表,进行C层的HOOK,既可以实现加速,又可以免Root保证手机安全,看起来很不错。
于是决定学习一下,并且自己用代码实现。经过一段时间的努力,基本上能实现和光环差不多的功能。
1.首先是基础知识。我们先讲基础知识,再讲如何Hook
何为加速?加速就是改变应用的运行速度。怎么样才能加速?根据不同的引擎有不同的加速方法。关键还是在认识引擎上。
市面上大多数的 游戏引擎大致可以分为 cocos2dx、Unity3d、 AdobeAir、白鹭、OpenGL。接下来我们分开来讲解各个引擎的加速方案。
(1)cocos2dx 引擎一般是会有一个cocos2dx引擎动态库。由于cocos2dx是开源的软件,所以cocos2dx的引擎动态库的名字可以自定义。但是判断是不是cocos2dx引擎的游戏可以查看Java代码目录,是否有org/cocos2dx/目录,如果有这个目录就是cocos2dx引擎。
coco2dx游戏有个setTimeScale函数,这个函数用来控制运行时间。timeScale的值越大运行速度越快,timeScale值越小运行速度越慢。但是一般的情况下开发者不会去调用setTimeScale。所以我们基本没机会通过HOOK来改变setTimeScale的值。但是我们可以通过引擎的Director来实现。 Director 来有个定时器Scheduler,在每帧更新的时候都会调用Update(float delay)。而update函数里面则会调用timeScale的值,来乘以delay得到运行最终的时间。所以改变delay的值也可以达到加速减速的效果。
(2)Uity3d 引擎是一个闭源软件,所以会有统一的动态库 libunity.so。所以只要看到有libunity.so动态库,就基本确定是Unity3d游戏。
Unity3d游戏照样也是有一个setTimeScale函数。所以通过Hook 来达到更改timeScale的值,即能达到加速减速效果。但是Unity3d游戏一般通过C#来开发。然后通过il2cpp或者mono运行时来执行。所以我们要通过Hook il2cpp或者mono的运行时方法来调用setTimeScale。
il2cpp的关键函数是il2cpp_method_get_class、il2cpp_class_from_name、il2cpp_class_get_method_from_name
mono的关键函数是mono_get_object_class、mono_class_from_name、mono_class_get_method_from_name
通过HOOK这些函数,就可以更改timeScale的值了。
(3)Adobo Air 白鹭等引擎。其他引擎没有特别针对的速度的控制函数。所以一般用改变系统时钟的方法来达到目的。
libc.so中有gettimeofday函数。我们通过Hook 系统的gettimeofday函数来改变时间的流逝速度,也能达到加速的目的。
以上就是基本的理论基础。
2.接下来是Hook。既然知道了怎么去更改速度。那么要怎么去实现更改呢?那就要靠Hook了。
光环使用的是libsubstrate.so框架。以下就是API说明
其实也没有太难的地方。API都说的很清楚要怎么用。
好了,为了避免篇幅过长,看起来犯困。今天先讲基本的理论知识。后面的章节继续讲,代码实现,和实例演示。
手游加速器原理分析和代码实现相关推荐
- 狂妄之人怎么用计算机弹,天谕手游狂妄之人乐谱代码分享
天谕手游狂妄之人乐谱代码是什么?狂妄之人是游戏"传说之下"(undertale)主题曲中的一个,当玩家控制的人物走了屠杀线遇到sans的时候会触发的背景音乐.接下来小编为大家带来了 ...
- 计算机音乐谱牵丝戏,《天谕手游》牵丝戏乐谱代码分享-天谕云之光在哪
<天谕手游>牵丝戏乐谱代码分享 天谕手游牵丝戏乐谱?在游戏内很多玩家都想知道,牵丝戏乐谱的代码是什么,毕竟有了代码演奏十分的方便.接下来就让小编给大家带来<天谕手游>牵丝戏乐谱 ...
- 权御天下计算机音乐数字乐谱,天谕手游权御天下乐谱代码是什么-天谕手游权御天下乐谱代码分享_快吧手游...
天谕手游权御天下乐谱代码是什么?天谕中我们可以使用外部代码复制到游戏中,然后制作出自己的音乐乐谱.很多小伙伴都想把这一首歌写进自己的天谕乐谱.下面就一起来看看吧! 天谕手游权御天下乐谱代码分享 A轨 ...
- 计算机音乐谱红昭愿,天谕手游红昭愿乐谱代码是什么-天谕手游红昭愿乐谱代码分享_快吧手游...
天谕手游红昭愿乐谱代码是什么?天谕中我们可以使用外部代码复制到游戏中,然后制作出自己的音乐乐谱.很多小伙伴都想把这一首歌写进自己的天谕乐谱.下面就一起来看看吧! 天谕手游红昭愿乐谱代码分享 t115v ...
- 计算机音乐谱棠梨煎雪,天谕手游棠梨煎雪乐谱代码分享
天谕手游棠梨煎雪乐谱代码是什么?<棠梨煎雪>是一首由银临演唱的原创古风歌曲,收录于专辑<腐草为萤>中.接下来小编为大家带来了天谕手游棠梨煎雪乐谱代码分享,希望可以帮助到大家. ...
- 【SemiDrive源码分析】【MailBox核间通信】51 - DCF_IPCC_Property实现原理分析 及 代码实战
[SemiDrive源码分析][MailBox核间通信]51 - DCF_IPCC_Property实现原理分析 及 代码实战 一.RTOS 侧 Property Service 初始化流程 1.1 ...
- 计算机音乐谱红昭愿,天谕手游红昭愿乐谱代码分享
天谕手游红昭愿乐谱代码是什么?<红昭愿>是来自音阙诗听音乐社的一首歌曲,由荒唐客填词,殇小谨谱曲,朱鸽编曲,由音阙诗听歌手王梓钰演唱,2020年9月24日,发行了由李玉刚演唱的<红昭 ...
- TFRecord简介,原理分析,代码实现?
TFRecord简介,原理分析,代码实现? 在利用深度学习算法搭建完成网络之后,我们要对网络进行训练,要训练网络就要有训练数据,通常我们会直接对硬盘上存放数据进行操作,来fetch到网络中.这样直接从 ...
- [网游加速器原理、技术与实现]
网游加速器原理.技术与实现 https://blog.csdn.net/kidwei/article/details/8559842
- 腾讯WEB加速器 原理分析手记
[标 题]:腾讯WEB加速器原理分析手记 [作 者]:欧阳修子(linuxs) [时 间]:2007-06-27 [链 接]:[url]http://www.sg-zc.cn/vip/article. ...
最新文章
- java 16进制与图片互转
- 【seaborn】(1) 数据可视化,绘图风格、布局
- mysql group by 天_MySQL group by语句如何优化
- hashmap 遍历_这21个刁钻的HashMap面试题,我把阿里面试官吊打了
- 一位跟我一样疑惑的同学~
- 腾讯视频下载官方_腾讯视频评论在哪
- SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别
- 【jupyter】notebook屏蔽warning信息输出
- 前端在线学习网站W3School
- 命令级的python静态资源服务。
- android:#FFFFFFFF 颜色码解析
- python设置excel的格式_python 操作Excel 设置格式
- AHK生成随机但不重复的数字
- Android WebView白屏解决方案
- 计算机控制系统直流电机闭环调速实验,直流电机闭环调速控制系统
- 深度解读互联网+供应链金融八大模式
- 【淘宝商家应用接口】拼多多平台流量解析,如何充分利用平台分配的流量?
- oracle minus intersect,minus,oracle中INTERSECTMINUS用法
- 1038 Recover the Smallest Number (30 分)-字符串分段排序
- java源程序编译型_Java语言的源程序不是编译型的,而是编译解释型的。( )
热门文章
- 图像数字水印技术研究及matlab实现,数字水印技术研究及其matlab仿真.doc
- Android网络编程之——文件断点下载(暂停/继续/重新下载)
- 将强化学习应用到量化投资中实战篇(神经网络模块开发)
- maven常用打包命令
- 【计算机组成原理】数据通路
- nrf52840烧录配置(协议栈+APP)
- OBS Studio录制腾讯会议
- 【STM32开发环境搭建】 - st-link驱动安装和串口驱动安装
- 通过图片url 获取图片file对象
- 计算机无法屏保,Win7屏幕保护程序不能修改怎么办 win7无法设置电脑屏幕保护程序如何解决...