简介
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地址
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 屏蔽越狱检测