簡介
361軟件套裝,包括361一鍵新機(MultiAccount)以及360虛擬定位(FakeLocation)兩個獨立的英文界面App,下面分別來介紹:
MultiAccount Master:最強大的傻瓜式改串軟件,提供一鍵新機、全息備份、精准還原等功能。首創以App為中心的操作方式;無需任何參數配置;支持應用多開;自動更換IP;支持網絡代理配置訪問;模擬2G/3G/4G/Wifi;各種App組合隨意搭配;支持分辨率調節。
Fake Location Pro:針對任意位置進行定點、定區域、定路線的精准營銷(拓展微信、QQ,微博粉絲,發放推廣信息)。提供經典虛擬定位、隨機掃街、路徑掃街、模擬導航四種虛擬定位模式。支持微信、微博、QQ、考勤機。微信營銷神器、模擬掃街神器、防查崗神器、模擬考勤打卡神器。
361偽裝了哪些參數
IDFA
IDFV
用戶名
系統版本
設備型號,固件版本
User-Agent
移動網絡運營商信息
地理位置
uname / sysctl等參數
WIFI SSID BSSID
IMEI
序列號
MAC地址
PS:不得不說360的位置模擬確實做的比其他改機軟件強多了,顯得非常專業,設計了各種業務場景,只是價格偏高。另外361的改機參數也不比AWZ/ALS少
361的Cydia源
apt.from2.vip 360 2.6.2
apt.from2.vip 361 2.0.2
www.x360y361.cn 360 2.6.2
www.x360y361.cn 361 2.0.2
分析要點
這里只做學習討論改機原理及361自身反逆向機制。361安裝后,有如下文件:
- /Applications/RST.app 主程序,用於生成改機參數
- /Applications/location360Pro.app 主程序,用於生成位置參數
- /Library/MobileSubstrate/DynamicLibraries/rstweak.{dylib,plist} 該tweak通過hook一些可以獲取系統屬性和app屬性的C函數和ObjC函數實現的修改app參數
- /Library/MobileSubstrate/DynamicLibraries/GPSTravellerTweakVIP.{dylib,plist} 該tweak通過hook一些系統服務中的函數實現位置修改
第一階段
361/360系列工具和AWZ/ALS系列工具在分析時有如下區別:
- 代碼混淆
AWZ/ALS使用Hikari工具鏈做了各種保護,361/360則自己內聯了很多無用代碼。后者更容易分析,只需要在IDA中使用Keypatch把指令全Nop掉就可以分析。然而AWZ/ALS對dylib沒有做任何保護,很容易根據它的原理自己實現一套軟件,而361/361對要Hook的函數名都做了加密。 - 反調試
AWZ/ALS使用了多種方式檢測調試,361/360則無 - 網絡通信
AWZ/ALS的特點是,盡可能不調用系統函數,比如在生成json串的時候是自己拼湊的,最終body再一次加密,同時使用底層socket函數做授權驗證;361/360的保護相對較弱,只是對json的各個字段進行一次加密,最終使用Objective-C函數進行網絡通信,很容易用fiddler定位。然而361/360也不是一無是處的,他的授權驗證同時存在於RST.app和rstweak.dylib中,而AWZ/ALS我們只需要搞定ALS.app就算破解了。 - 后台服務
AWZ/ALS使用后台服務(DHPDaemon)來通過notify通信隱藏一些操作,同時daemon也有授權驗證,361/360則無
由於361/360系列工具調用Objective-C函數進行網絡請求,因此切入點就是Objective-C的幾個http網絡通信函數。通過跟蹤,可以解密得到如下字段,寫tweak進行修改,即可成功破解App:
"xzd=d186b90f336a56b7f8d8a6c56b5983f7&lalala=1&la=2019-11-29 16:55:16"
lalala 是否激活
la 過期時間
enabled 是否激活
endDate 過期時間
s 過期時間
dy 過期時間
dr 過期時間
最后別忘了,兩個dylib中也存在類似的授權驗證,否則改機是沒有效果的。至於怎樣驗證修改了哪些參數,可以參考我寫的另一篇文章ALS分析。
第二階段
通過跟蹤可知,361修改了以下函數(比AWZ/ALS更全一些):
sysctl 修改設備名,設備型號,iOS版本等
sysctlbyname 修改設備名,設備型號,iOS版本等
uname 修改設備名,設備型號,iOS版本等
SCNetworkReachabilityGetFlags 修改網絡類型,WIFI/2G/3G/4G
CNCopyCurrentNetworkInfo 修改WIFI名和BSSID
IORegistryEntrySearchCFProperty 修改設備串號,IMEI,序列號,mac地址,芯片ID等等
IORegistryEntryCreateCFProperty 修改設備串號,IMEI,序列號,mac地址,芯片ID等等
_CTServerConnectionCopyMobileIdentity 修改IMEI
UIDevice 修改設備型號,iOS版本,設備名,IDFV
ASIdentifierManager 修改IDFA
CTCarrier 修改運營商信息,包括運營商名,MCC,MNC,ICC
NSProcessInfo 修改啟動時間
MSCopyAnswer 修改設備名,設備型號,設備標識,序列號,Wifi地址,DieId,等許多內部參數
AADeviceInfo 修改udid,apnsToken,UserAgent,序列號,wifi的mac地址,iOS版本,設備名
getifaddrs 修改wifi的內網ip和蜂窩網內網ip
CLLocationManager 修改位置參數,包括經緯度,海拔,速度等
MKUserLocation 修改位置參數,包括經緯度,海拔,速度等
BSLaunchdUtilities 屏蔽微信檢測
NMSSHSession 屏蔽越獄檢測(ssh)
DeviceInfo 屏蔽越獄檢測
NSFileManager 屏蔽越獄檢測
NSString 屏蔽越獄檢測
NSData 屏蔽越獄檢測