一行代码帮你检测Android多开软件

声明:本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布

目录

  • 简介
  • 借鉴方案&测试结果
  • 端口法检测思路
  • 实现方案
  • 测试结果
  • Demo地址

简介

最近有业务上的要求,要求app在本地进行诸如软件多开、hook框架、模拟器等安全检测,防止作弊行为。

防作弊一直是老生常谈的问题,而软件多开检测往往是防作弊中的重要一环,在查找资料的过程中发现多开软件公司对防多开手段进行了针对性的升级,即使非常新的资料也无法做到通杀。

所以站在前人的肩膀上,继续研究。

借鉴方案

借鉴方案来自以下两个帖子

《Android多开/分身检测》blog.darkness463.top/2018/05/04/…/

《Android虚拟机多开检测》www.jianshu.com/p/216d65d99…

文中的方案简单总结起来是4点 1.私有文件路径检测; 2.应用列表检测; 3.maps检测; 4.ps检测;

代码此处不贴了,这四种方案测试结果如下

测试机器/多开软件* 多开分身6.9 平行空间4.0.8389 双开助手3.8.4 分身大师2.5.1 VirtualXP0.11.2 Virtual App *
红米3S/Android6.0/原生eng XXXO OXOO OXOO XOOO XXXO XXXO
华为P9/Android7.0/EUI 5.0 root XXXX OXOX OXOX XOOX XXXX XXXO
小米MIX2/Android8.0/MIUI稳定版9.5 XXXX OXOX OXOX XOOX XXXX XXXO
一加5T/Android8.1/氢OS 5.1 稳定版 XXXX OXOX OXOX XOOX XXXX XXXO

*测试方案顺序1234,测试结果X代表未能检测O成功检测多开; *virtual app测试版本是git开源版,商用版已经修复uid的问题;

可以看到的是,检测效果不是很理想,没有哪一种方法可以做到通杀市面排名靠前的这些多开软件,甚至在高版本机器上,多开软件完美避开了检测。

端口监听法思路

为了避免歧义,我们接下来所说的app都是指的同一款软件,并定义普通运行的app叫做本体,运行在多开软件上的app叫克隆体。并提出以下两个概念

狭义多开:只要app是通过多开软件打开的,则认为多开,即使同一时间内只运行了一个app

广义多开:无论app是否运行在多开软件上,只要app在运行期间,有其余的『自己』在运行,则认为多开 (有点《第六日》的意思,克隆人以为自己是真人,发现跟自己一模一样的人,都认为对方是克隆人)

我们前面所借鉴的四种方案,都是去针对狭

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值