361改机改串一键新机原理分析

简介

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                                  屏蔽越狱检测

猜你喜欢

转载自www.cnblogs.com/lichao890427/p/12029389.html