寫這篇博客主要是分享一下虛擬定位的反做弊思路算法
也是由於我的以前曾作過虛擬定位相關的小軟件,也玩了一下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.根據移動軌跡/歷史移動軌跡編寫一個判斷的算法,例如: