首页
社区
课程
招聘
[求助]安卓端 手游变速器,类似光环助手的实现方式是怎样的?
发表于: 2018-8-23 17:26 32568

[求助]安卓端 手游变速器,类似光环助手的实现方式是怎样的?

2018-8-23 17:26
32568

最近公司运营看到一款软件  叫  光环助手,上面有很多游戏app,各个渠道的,他们平台先去各大平台下载游戏对应的apk包,然后反编译的方式注入他们自己的代码

在samli的com.gh.xxx下,然后在游戏的初始化activity里调用他们Plugin中的init方法


由于混下了代码,大概看下了,监听了网络改变通知,初始化后做了下载操作,下载到data/data/包名/file/gh目录下


 

其中主要的就是2个so和一个apk,大致原理也差不多知道,hook到游戏调用的时间心跳方法(公司ios小哥已实现,hook gettimeofday方法,将返回值乘以倍数,注入ipa,即可,u3d需要另外操作)

安卓端cocos2d游戏应该也是类似ios  hook  gettimeofday,这边用Cydia Substrate框架写了个jni


根据游戏打成对应的armeabi下的so(这中间还有个坑,NDK升级太高了,ABI设置为armeabi时还无法编译,提示要写armeabi-v7a,降到16才能打armeabi的so)

然后丢到游戏反编译的项目lib对应文件夹下,准备偷懒使用System.loadLibrary(“native-lib.cy”);静态给注入,然后打包,报错了

08-23 09:53:33.952: E/art(4043): dlopen("/data/app/com.xxx/lib/arm/libnative-lib.cy.so", RTLD_LAZY) failed: dlopen failed: "/data/app/com.xxx/lib/arm/libnative-lib.cy.so" has unexpected e_machine: 40

搜了下是这个so还引用了其他第三方so,这些第三方的so也需要静态注入

然后也给加上了,其中一个so报错了libsubstrate-dvm.so也是和刚native-lib报的一样的错

08-23 09:57:37.393: E/art(4250): dlopen("/data/app/com.xxx/lib/arm/libsubstrate-dvm.so", RTLD_LAZY) failed: dlopen failed: "/data/app/com.xxx/lib/arm/libsubstrate-dvm.so" has unexpected e_machine: 40

下了IDA工具,查看了这个第三方的so调用了


除了第一个调用的so是第三方的(已静态引入),其他的so应该是linux系统自带的,第一个也导入了,但是还是提示报错(个人怀疑是libstdc++.so的问题,但是查了下是linux自带的so啊...)

这三个so,只引入substrate和native-lib.cy又会报和只引入native-lib.cy一个一样的错

三个so静态引入代码 如下,在app的mainactivity的oncreate方法里引入


 

到此无法测试是否实现了修改成功,并且看网上说 Cydia Substrate框架好像是需要root才能使用,而且只支持4.4以下系统,这就很尴尬了,光环助手是都可以用,不论是root还是非root,是4.4还是5.0

各位大牛看有不有好的解决方案或者demo给小弟测试下

最后附上光环助手修改的游戏改速截图


 

PS:好像 gettimeofday是安卓端用来检测反编译的东西,还不知道这个方向是否正确,网上看了一些技术帖子,有针对u3d的游戏加速是hook  u3d引擎的settime方法,好迷茫,这个游戏cocos2d,不知道该怎样做,而且这个光环助手的加速不需要root,也不分5.0以上还是一下系统

续:今天来继续分了下光环助手游戏启动后下载的东西

首先上图

下载了一个zip,2个so文件和一个apk,先看zip,里面是些悬浮窗上用到的图片


 

再来看两个so文件
libdyqlb_v1d3_0108.so,根据游戏命名的so

 

 

这三个函数是对游戏包内的光环sdk的java类的jni实现函数,其中maxSpeed应该是用来传递悬浮窗上传递的speed值,这个so没有hook代码

再来看libgh_safety.so

 

 

找到了正主,从MSxxx前缀看的出来,这个so使用Cydia Substrate框架进行了底层函数的hook,具体是hook了什么函数还我还不会看...但是大体方向没错,等会得先去研究下IDA的使用和看法

最后来看下plugin_v1d3_v5.apk,反编译后

 

只有这么点东西

清单文件没啥,发现并没有添加Cydia Substrate官网上说的

<uses-permission android:/>权限

 

再看smali

 

里面也只有一个包名,内容倒是不少,又混淆了,只能慢慢看...

求大牛解救,怎么弄这个需求


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 234
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
最后找到在哪了吗?
2021-4-21 14:24
0
游客
登录 | 注册 方可回帖
返回
//