安卓虛擬定位實現與反作弊思路

安卓虛擬定位實現與反作弊思路

前言

寫這篇博客主要是分享一下虛擬定位的反作弊思路

也是因為個人之前曾做過虛擬定位相關的小軟件,也玩了一下VA的虛擬定位,挺有意思的,然後覺得應該在解決反作弊的思路下寫一篇分享。

一.安卓開發者模式模擬定位

1.1.實現方式

1)安卓6.0以上 打開開發者模式→模擬位置信息應用

2)安卓6.0以前 打開開發者模式→允許模擬位置

3)調用Android原生SDK提供方法

偽代碼如下:

安卓虛擬定位實現與反作弊思路

安卓虛擬定位實現與反作弊思路

1.2.優缺點

  • 使用方便,調用原生SDK即可
  • 不易被檢測(針對百度地圖、高德地圖及使用其APK的軟件均可使用)
  • 對使用騰訊地圖API(如微信、摩拜APP)的軟件不起效果,但是美團裡的騎車沒用騰訊的就能生效。
  • P:原生代碼中定位模擬有兩種
  • GPS模擬
  • GPS模擬在打開GPS的情況下有一定概率會飄移
  • NETWORK模擬
  • NETWORK模擬在打開GPS或通網的情況下有一定概率會飄移

1.3.處理思路

1)加入騰訊地圖API進行位置二次判斷

2)打開時軟件時強制要求GPS打開

(很多這類APP定位採用的NETWORK模擬會因為GPS打開產生導致來回飄移,可以記異常次數與閾值判斷,或者定義飄移算法)

3)檢測開發者模式/模擬定位是否打開(安卓6.0以前才能檢測)

安卓虛擬定位實現與反作弊思路

4)海拔高度比較,模擬的時候是需要注入海拔高度

安卓虛擬定位實現與反作弊思路

二.root

2.1.實現方式

1)手機需要root

2)基於Xposed等hook框架開發

2.2.優缺點

  • root後基本無法判斷是否有有針對軟件的修改
  • hook框架能用來做很多東西如JustTrustMe(關閉證書強校驗)、修改步數、搶紅包之類的
  • 很多手機禁止root或者root困難(如華為、vivo等手機都已經禁止)
  • 道高一尺魔高一丈,有Magisk這類的框架免root獲取root權限
  • 另外root權限過高,容易被第三方利用中毒或系統崩潰等

2.3.處理思路

  • 檢測root,禁止root機使用
  • 檢測Xposed等Hook框架模塊
  • 檢測Magisk這類免root獲取root權限的框架
安卓虛擬定位實現與反作弊思路

三. 運行在虛擬容器內

3.1.VirtualApp

1.實現方式

區分於root注入,root是直接修改了系統文件來添加代碼注入窗口,VirtualApp通過將應用註冊到虛擬空間中,在空間中創造的對象調用bindApplication()後添加代碼注入窗口

類似Docker,VirtualApp是一套插件框架,允許應用以插件的方式運行在其構造的虛擬空間中,而無需實際安裝應用

2.優缺點

  • 免root下實現root的功能
  • 使用上較root方便,有大量開源產品可以借鑑
  • 相對root的做法可檢測(虛擬空間真實存在)

3.處理思路

VX作者的解答:

安卓虛擬定位實現與反作弊思路

3.2.太極Xposed

基於Xposed等Hook框架二次開發,也是虛擬運行,與上面的VirtualApp不一樣的是

它需要卸載原APP,重新安裝在太極容器內部(運行明顯卡頓)

感覺上就像一個是虛擬機(太極)一個是Docker(VirtualApp)

針對太極這類軟件的檢測要從檢測應用列表(有防檢測功能)/檢測包目錄是否存在下手

安卓虛擬定位實現與反作弊思路

四.直接修改APP源碼二次打包

4.1.優缺點

  • 可自由修改源碼添加功能
  • 目前大部分軟件都有反修改的功能,進一步破解很難
  • 代碼混淆工具,軟件的源碼難以理解

五.運行在安卓模擬器內

模擬器不能模擬手機撥打之類的,或者常見模擬器內部都會生成對應文件可以檢測到。

六.黑盒子

實體的盒子,放在內部可以定位。

安卓虛擬定位實現與反作弊思路

七.模擬接口請求

解決思路擴展

7.1.針對常見虛擬定位軟件,直接檢測軟件列表中是否存在或者軟件目錄是否存在,必須卸載才可使用。

(顯著針對性封禁,但是治標不治本,改個包名又能用)

如:FakeLoction、太極Xposed、Xposed等等…

如果是用在摩拜/美團這類對外開放的APP直接檢測會導致用戶體驗感不好卸載

這種檢測方式適用於內部APP

7.2.檢測Wifi列表,長時間沒變化就是壓根沒動過位置…或者通過某個算法判斷

7.3.根據移動軌跡/歷史移動軌跡編寫一個判斷的算法,例如:

  • 某個點在歷史定位中重複次數非常多,有可能就是作為了定位點。
  • 某個範圍內,定位經緯度連續相同沒有絲毫偏差,理論上手機晃動甚至不動也會有經緯度偏差。

面試幾家之後發現都沒有問,所以略過

今年年初我花一個月的時間收錄整理了一套知識體系,如果有想法深入的系統化的去學習的,可以私信我【安卓】,我會把我收錄整理的資料都送給大家,幫助大家更快的進階。

重要的事說三遍,轉發+轉發+轉發,讓更多需要的朋友們都可以看到並且領到!

安卓虛擬定位實現與反作弊思路


分享到:


相關文章: