廣西新聞網(wǎng) > 首頁欄目 > 首頁要聞 > 正文 |
虚拟位置定位王破解版下载(虚拟精灵定位破解版)万万没想到 |
2025-10-04 16:57 來源:廣西云-廣西日?qǐng)?bào) 記者 羅莎 楊思悅 通訊員 劉鵬飛 編輯:馮芯然 |
通過蘋果 MFi 認(rèn)證廠商會(huì)獲得 MFI Accessory Interface Specification 文檔,其中描述了 USB 與外設(shè)之
Author: GeneBlueBlog: https://geneblue.github.io/什么是虛擬定位簡(jiǎn)而言之,利用軟硬件更改手機(jī)系統(tǒng)的定位數(shù)據(jù),從而讓目標(biāo) app 獲取錯(cuò)誤的定位信息虛擬定位常用場(chǎng)景 上下班打卡代購朋友圈裝逼打車軟件司機(jī)端搶單社交類軟件,附近人,把妹,釣凱子凡是和位置相關(guān)的應(yīng)用,均有一定的應(yīng)用場(chǎng)景,盡情發(fā)揮群眾的智慧虛擬定位原理經(jīng)過調(diào)研 iOS 虛擬定位大概有三類技術(shù)路線:動(dòng)態(tài)庫注入 iOS 越獄后,安裝使用具備虛擬定位功能的越獄插件在上帝模式下,越獄插件可以肆意劫持系統(tǒng)函數(shù)或者在非越獄環(huán)境下,砸殼目標(biāo) app ipa 文件,重打包注入動(dòng)態(tài)庫這兩種方式本質(zhì)是一致的,都是為了 app 進(jìn)程運(yùn)行時(shí),注入運(yùn)行動(dòng)態(tài)庫。 劫持 CoreLocation 中以下常用的獲取定位信息的函數(shù),即可篡改正常的定位數(shù)據(jù):CLLocationManager->delegate() CLLocationManager->initialize () CLLocationManager->setDelegate() CLLocationManager->startMonitoringSignificantLocationChanges() CLLocationManager- >startUpdatingHeading() CLLocationManager->startUpdatingLocation() CLLocationManager->stopMonitoringSignificantLocationChanges () CLLocationManager->stopUpdatingHeading() CLLocationManager->stopUpdatingLocation() 電腦端軟件做過 iOS 開發(fā)的同學(xué),可以觀察一下 xcode 上有一個(gè) Simulate location 的調(diào)試功能,這是方便 app 開發(fā)過程中測(cè)試定位代碼。 我們可以使用這個(gè)功能來模擬定位不過使用這種方式需要打開電腦,開啟 xcode,然后再編寫 GPX 文件,對(duì)于普通用戶,這個(gè)門檻太高了國(guó)內(nèi)的一些 iOS 助手類軟件,將 Simulate location。 功能逆向出來,集成到自己的軟件上,比如下面這個(gè) iTools 軟件: 閃電口外設(shè)典型產(chǎn)品如位移精靈,不但具備虛擬定位能力,還具備充電寶功能,多種用途,很方便啊,有木有。 那這個(gè)東西是啥原理呢?解釋起來很簡(jiǎn)單,這也是蘋果提供的功能,不是啥黑科技通過蘋果 MFi(Made For iOS) 認(rèn)證廠商會(huì)獲得 MFI Accessory Interface Specification。 文檔,其中描述了 USB 與外設(shè)之間的通訊協(xié)議 iAP2,該協(xié)議具備許多豐富的功能: 可以看到其中就有 location 定位功能,按照協(xié)議格式,發(fā)送對(duì)應(yīng)位置數(shù)據(jù),就可以更改定位信息電腦端 xcode 是不是也是使用 iAP2 協(xié)議呢?xcode 實(shí)現(xiàn)文檔沒有公開過,所以這個(gè)是未知的檢測(cè)方法 知道了,這三種虛擬定位方式,我們只要找到正常定位與虛擬定位之間的差異就可以做到檢測(cè)了動(dòng)態(tài)庫注入有幾個(gè)明顯特征:越獄環(huán)境,安裝越獄插件,其動(dòng)態(tài)庫會(huì)被注入到目標(biāo)進(jìn)程非越獄環(huán)境下,砸殼目標(biāo)ipa,注入動(dòng)態(tài)庫劫持(HOOK)定位函數(shù) 越獄環(huán)境可以檢查設(shè)備是否越獄,非越獄可以檢查 app 是否被重打包如此,檢查定位函數(shù)是否被劫持比較關(guān)鍵函數(shù) HOOK 涉及 OC 語言的動(dòng)態(tài)特性,主要利用了 method_exchangeImplementations()。 將函數(shù)實(shí)現(xiàn)替換掉被 HOOK 的函數(shù),其 IMP 實(shí)現(xiàn)會(huì)被劫持到注入的動(dòng)態(tài)庫中,所以我們檢查函數(shù) IMP 實(shí)現(xiàn)是否是原始 module 即可判斷是否被 HOOK 了- (NSString *) getMethodIMPInfo:(。 NSString *) className, sel:(NSString *)sel { NSString *ret; Dl_info info; IMP imp = class_getMethodImplementation(objc_getClass([className UTF8String]), sel_registerName([sel UTF8String])); if ( dladdr(imp, &info)) { ret = [NSString stringWithFormat:@"%@-%@-fname:%s-sname:%s-fbase:%p-saddr:%p" , className, sel, info.dli_fname, info.dli_sname, info.dli_fbase, info.dli_saddr]; } return ret; } NSString *ret = getMethodIMPInfo(@"CLLocationManager", @"delegate"); 電腦端軟件使用電腦端軟件虛擬定位時(shí),app 獲取定位信息與正常獲取定位信息有差異。 正常獲取定位的時(shí)代理方法會(huì)被執(zhí)行 3 次:2020-09-25 14:37:25.587317+0800iOSApp[990:275020] 緯度為:22.996662, 經(jīng)度為:113.328448 2020 -09-25 14:38:00.158517+0800iOSApp[990:275020] 高度為:23.031912 2020-09-25 14:38:04.869490+0800iOSApp[990:275020] 水平精確度:65.000000, 垂直精確度:10.000000 2020-09-25 14:38:22.238887+0800iOSApp[990:275020] 緯度為:22.996662, 經(jīng)度為:113 .328448 2020-09-25 14:38:23.784470+0800iOSApp[990:275020] 高度為:23.031912 2020-09-25 14:38:25.844754+0800 iOSApp[990:275020] 水平精確度:65.000000, 垂直精確度:10.000000 2020-09-25 14:38:26.841710+0800iOSApp[990:275020] 緯度為:22.996667, 經(jīng)度為:113.328447 2020-09-25 14:38:26.842180+0800iOSApp[990:275020] 高度為:23.047693 2020-09-25 14:38:26.842767+0800iOSApp[990:275020] 水平精確度:65.000000, 垂直精確度:10.000000使用xcode虛擬定位的 location 代理方法僅執(zhí)行一次: 2020-09-25 07:41:57.466217+0100iOSApp[1005:276293] 緯度為:51.509980, 經(jīng)度為:-0.133700 2020-09-25 07:41:57.466404+0100 iOSApp[1005:276293] 高度為:0.000000 2020-09-25 07:41:57.466511+0100iOSApp[1005:276293] 水平精確度:5.000000, 垂直精確度: -1.000000多次實(shí)驗(yàn)后,發(fā)現(xiàn)以下特征:正常獲取定位信息時(shí), locationManager 代理方法會(huì)被回調(diào) 3 次,而虛擬定位,代理方法僅會(huì)被回調(diào) 1 次;正常定位可以獲取海拔高度,水平精確度,垂直精確度,虛擬定位時(shí),無法獲取海拔高度,水平精確度,垂直精確度也是固定的錯(cuò)誤值。 以上兩點(diǎn)可以作為檢查依據(jù)閃電口外設(shè)沒有購買位移精靈,沒有做測(cè)試,不過在 gayhub 上發(fā)現(xiàn)一份檢查 iap2 外設(shè)定位的代碼 iap2-location-checker其主要思路也是檢查定位數(shù)據(jù)的精度。 還有一種思路是檢查外設(shè)類型,獲取外設(shè)的硬件信息,如 mac,manufacturer,brand 之類的信息,不過在高版本 iOS 中,需要額外申請(qǐng)權(quán)限,這里就沒有實(shí)踐了參考蘋果虛擬定位技術(shù)原理和檢測(cè)iOS上虛擬定位檢測(cè)的探究 免越獄虛擬定位外掛的調(diào)試小記與檢測(cè)方案Author: GeneBlueBlog: https://geneblue.github.io/
報(bào)紙版面截圖。 |
掃一掃在手機(jī)打開當(dāng)前頁
|
>>更多精彩圖集推薦 |
|