首页
社区
课程
招聘
[原创]主流安卓APP反作弊及反反作弊的一些思路和经验汇总
发表于: 2020-11-4 00:06 21273

[原创]主流安卓APP反作弊及反反作弊的一些思路和经验汇总

2020-11-4 00:06
21273

主要检测hook框架,模拟点击工具,magisk,supersu等root工具

主要检测hook框架的安卓框架层包

一般通过是否存在bin、sbin目录里的su文件,kingroot权限管理apk

default.prop文件的ro.secure=1、ro.debuggable=1状态,/proc/self/status文件的TracerPid值

一般通过android.os.Build的各类参数值来判断,如Build.fingerprint

一般批量操作或者抹机操作的时候这些值更改难度和成本比较大,所以这些指标能伪造会大大降低被风控

开发时有Log.i Log.e等运行日志,大部分APP用这个来调试或者检测APP的运行情况,并且release版本一般有个boolean值来开关,如果能hook掉这个开关就容易检测APP。

大部分APP的日志会搜集Exception,如果栈里有hook框架的包路径就会把自己给杀死,让hook难以长久执行,怕APP变成一个微型服务器抓包工具。

一般阿里系的会用umeng来做统计工具,一般这些sdk都有自己的唯一编号,有些app引用这个编号来做一个指标去判断app的安装唯一性,有的会通过统计数据来判断批量作弊行为,因为这些sdk会搜集一些设备指纹并且技术和破解还原难度比较大的。

异常上报sdk一般记录运行时所有的异常情况,并且会记录设备指纹,通过这些也能检测到作弊的一些设备。

如数美易盾或者一些大的app都会内嵌搜集设备指纹的模块,通过设备指纹来确定设备的唯一性,如imei、android_id、mac、其他设备信息结合起来就能变成一个唯一的标志。

大量的搜集后跟其他搜集的信息结合并且不断地完善代理ip和黑ip、mac库,就能不断地能识别作弊源头。

地理位置和ip是否对应、基站信息是否对应、或者设备型号跟下载渠道对应、一般小米手机的软件大部分应该小米商城下载的,比如微信授权登录,QQ授权登录等、如果模拟授权登录需要破解其他给权的APP的一些协议。

一般APP会把get或者post的参数通过某种算法去签名,并且这个签名难还原。比如抖音的x-gorgon,有的把post或者get参数直接加密,一般通过aes、rsa、des等

目前比较流行protobuf协议替代json,还有一些私有TCP/Socket协议,这些协议不可直接读,需要一个解析工具或者分析还原。私有网络证书需要证书密钥配合代理抓包工具才能抓包分析,这种其实难度在于找到证书密钥和判断是否用了私有证书,一般聊天APP的IM协议常用。还有反代理抓包,比如集成OkHttp框架等的时候用Proxy.NO_Proxy来防止抓包。

其实dex代码混淆还原或者分析难度比较容易,并且各种反编译软件来分析难度不是那么大,主要难度在于rxjava等异步框架,接口实现类查找上。native层的话主要难度是还原基于ollvm的各种混淆的代码,其他还原或者理解难度其实并不大,并且大部分APP把一些加解密和签名等算法用native方式实现并用ollvm混淆,其他的native层的都是一些媒体或者网络等库。webview一般用在验证码上,并且用js的java层接口一起使用,把滑动或者图片顺序识别之类的路径日志通过贾母方式网络提交的,javascript代码一般混淆的比较厉害,不过AST反混淆等方法或者下载后nginx本地搭建并chrome自行调试归纳后通过脚本也能还原,如极验、易盾等验证码插件。

加壳其实纸老虎,安卓里dex文件总能运行内存中dump出来的,除非操作系统从底层设计上更改了,所有hook或者fart等修改的ROM都能搞定。360,腾讯,棒棒等等好多。安全sdk也可以纸老虎这么说,不过安全sdk一般跟机器学习,大数据匹配等相关,越来越有难度去应付,不过一般在社交电商类的反虚拟登录时用,这些SDK搜集指纹设备,并保存到自己的服务器,会识别代理IP,打码平台的卡号,风险设备,不过把加解密算法还原后可以伪造设备和其他数据,能绕过。还有一些大APP有自己开发的安全相关的模块,这些其实跟安全sdk类似,主要还是设备信息伪造和加解密算法破解后都能绕过。数美、易盾等。

总结的一些经验,有些没写,有些漏了,后期一个个细说。

  • java:dex2jar,jadx,jeb,android-killer等等很多
  • so文件:IDA,jeb,Gidra
  • js:其实nodejs加谷歌或者火狐就能搞定
  • 其他:unicorn,unidibug等基于qemu虚拟机的工具

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-1-16 11:14 被AyonA333编辑 ,原因:
收藏
免费 10
支持
分享
最新回复 (31)
雪    币: 8
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
还有传感器数据呢
2020-11-4 01:44
0
雪    币: 2719
活跃值: (1595)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
看了几个 app  会去检测senor   重力感应检测
2020-11-4 08:38
0
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
法律才是根本
2020-11-4 08:42
1
雪    币: 163
活跃值: (1623)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
MRRighter 还有传感器数据呢
这种传感器数据,从客户端收集去如何用呢,毕竟同一型号的机型,传感器数据都是一样的
2020-11-4 10:06
0
雪    币: 891
活跃值: (591)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6

安全SDK传感器都会采集。如果是游戏为了对付自动模拟作弊的话我想会实时采集上传传感器数据,后台对这些数据进行计算来判断是否是模拟。

最后于 2020-11-4 10:17 被什编辑 ,原因:
2020-11-4 10:14
0
雪    币: 25
活跃值: (3125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学编程 这种传感器数据,从客户端收集去如何用呢,毕竟同一型号的机型,传感器数据都是一样的
通过重力感应数据判断在走路还是挤地铁还是开车后评估网贷额度,通过传感器信息判断真实设备还是改装过的、虚拟机或者抹机改不了这些,微弱重力感应变化语音识别 。。。。
2020-11-4 11:35
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
传感器校验出厂校验能判断设备唯一性。然后还有某些app会上传插入sim卡情况下一键登录的手机号。还有流量统计、端口统计、app列表、oaid、分区大小、androidO以后app路径、父进程id、app安装和更新时间。。。还有好多哎。。。还有灰产操作聚集性分析,满足一些大数据识别出的聚集性特征,无论是否检测出机器的违规行为都算违规。
2020-11-4 11:49
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
楼主 可以交流下啊。。
2020-11-4 11:53
0
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
AyonA333 通过重力感应数据判断在走路还是挤地铁还是开车后评估网贷额度,通过传感器信息判断真实设备还是改装过的、虚拟机或者抹机改不了这些,微弱重力感应变化语音识别 。。。。
你这误判很严重,我宅在家里躺床上不是被判定恶意用户,而且,传感器权限正在被纳入隐私控制,以后肯定没有权限直接得到
2020-11-4 12:21
1
雪    币: 25
活跃值: (3125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mb_mnqvyswo 传感器校验出厂校验能判断设备唯一性。然后还有某些app会上传插入sim卡情况下一键登录的手机号。还有流量统计、端口统计、app列表、oaid、分区大小、androidO以后app路径、父进程id、ap ...
现在大部分有规模性的APP能获取到的设备信息都会搜集,然后设备特征库越来越完善,作弊行为识别率和识别周期越来越短。
2020-11-4 12:56
0
雪    币: 25
活跃值: (3125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
传感器只是一项,判定恶意用户肯定会多方面的因素去判别的。传感器信息法律不让,但是技术上很容易搜集的。有些app会把这些敏感信息加密传输的。
2020-11-4 13:00
0
雪    币: 6369
活跃值: (1688)
能力值: ( LV4,RANK:156 )
在线值:
发帖
回帖
粉丝
13
AyonA333 传感器只是一项,判定恶意用户肯定会多方面的因素去判别的。传感器信息法律不让,但是技术上很容易搜集的。有些app会把这些敏感信息加密传输的。
此言不虚,懂得都懂
2020-11-4 13:42
0
雪    币: 249
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学习学习
2020-11-4 13:46
0
雪    币: 1144
活跃值: (1274)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
mb_mnqvyswo 传感器校验出厂校验能判断设备唯一性。然后还有某些app会上传插入sim卡情况下一键登录的手机号。还有流量统计、端口统计、app列表、oaid、分区大小、androidO以后app路径、父进程id、ap ...
我们做过大量实验,传感器校验出厂校验能判断设备唯一性在Android上不可行。
2020-11-4 16:24
1
雪    币: 1
活跃值: (743)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
2020-11-4 18:52
0
雪    币: 1454
活跃值: (267)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
2020-11-5 09:50
0
雪    币: 614
活跃值: (883)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
2020-11-5 12:59
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
seandong 我们做过大量实验,传感器校验出厂校验能判断设备唯一性在Android上不可行。
我没试验过,我只是看到过数字联盟有篇专利是讲这个的。
2020-11-5 14:05
0
雪    币: 163
活跃值: (1623)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
20
mb_mnqvyswo 我没试验过,我只是看到过数字联盟有篇专利是讲这个的。
专利地址在哪里哈
2020-11-5 14:36
0
雪    币: 1144
活跃值: (1274)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
mb_mnqvyswo 我没试验过,我只是看到过数字联盟有篇专利是讲这个的。
人家外国团队的paper ,它拿来写专利也是醉了。这么不要脸的行为
2020-11-6 09:30
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
是的 ,IOS把这个行为当成漏洞修复了,android没有反应,而数字联盟直接写专利了。。。
2020-11-6 17:38
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
mb_foyotena 你这误判很严重,我宅在家里躺床上不是被判定恶意用户,而且,传感器权限正在被纳入隐私控制,以后肯定没有权限直接得到

打开指南针。看看水平仪。你人能做到像支架那样 死板板的,你手指头不动的??死人?,就算放在桌子上。用手指点击屏幕那也是有震动的。可以感应到的。至于权限,不给就不让玩

最后于 2020-11-9 10:45 被caolinkai编辑 ,原因:
2020-11-9 10:43
0
雪    币: 1319
活跃值: (1960)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
没用的,安卓这种玩意,一个VM模拟器 + postmessage 模拟点击那可是相当安全。更有一些是物理作弊。
2020-11-9 11:14
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
做这种东西就要高看别人几眼,,,把别人想得比自己聪明
2020-11-13 09:21
0
游客
登录 | 注册 方可回帖
返回
//