写这篇博客主要是分享一下虚拟定位的反做弊思路算法
也是由于我的以前曾作过虚拟定位相关的小软件,也玩了一下VA的虚拟定位,挺有意思的,而后以为应该在解决反做弊的思路下写一篇分享。微信
1.1.实现方式框架
1)安卓6.0以上 打开开发者模式→模拟位置信息应用工具
2)安卓6.0之前 打开开发者模式→容许模拟位置学习
3)调用Android原生SDK提供方法插件
伪代码以下:对象
1.2.优缺点blog
1.3.处理思路接口
1)加入腾讯地图API进行位置二次判断开发
2)打开时软件时强制要求GPS打开
(不少这类APP定位采用的NETWORK模拟会由于GPS打开产生致使来回飘移,能够记异常次数与阈值判断,或者定义飘移算法)
3)检测开发者模式/模拟定位是否打开(安卓6.0之前才能检测)
4)海拔高度比较,模拟的时候是须要注入海拔高度
2.1.实现方式
1)手机须要root
2)基于Xposed等hook框架开发
2.2.优缺点
2.3.处理思路
3.1.VirtualApp
1.实现方式
区分于root注入,root是直接修改了系统文件来添加代码注入窗口,VirtualApp经过将应用注册到虚拟空间中,在空间中创造的对象调用bindApplication()后添加代码注入窗口
相似Docker,VirtualApp是一套插件框架,容许应用以插件的方式运行在其构造的虚拟空间中,而无需实际安装应用
2.优缺点
3.处理思路
VX做者的解答:
3.2.太极Xposed
基于Xposed等Hook框架二次开发,也是虚拟运行,与上面的VirtualApp不同的是
它须要卸载原APP,从新安装在太极容器内部(运行明显卡顿)
感受上就像一个是虚拟机(太极)一个是Docker(VirtualApp)
针对太极这类软件的检测要从检测应用列表(有防检测功能)/检测包目录是否存在下手
4.1.优缺点
模拟器不能模拟手机拨打之类的,或者常见模拟器内部都会生成对应文件能够检测到。
实体的盒子,放在内部能够定位。
解决思路扩展
7.1.针对常见虚拟定位软件,直接检测软件列表中是否存在或者软件目录是否存在,必须卸载才可以使用。
(显著针对性封禁,可是治标不治本,改个包名又能用)
如:FakeLoction、太极Xposed、Xposed等等…
若是是用在摩拜/美团这类对外开放的APP直接检测会致使用户体验感很差卸载
这种检测方式适用于内部APP
7.2.检测Wifi列表,长时间没变化就是压根没动过位置…或者经过某个算法判断
7.3.根据移动轨迹/历史移动轨迹编写一个判断的算法,例如: