佐罗(Zorro)改机改串一键新机原理分析

查看 139|回复 6
作者:lichao890427   
[color=]重要声明
本文仅对改机类软件做技术原理剖析,旨在提升iOS软件安全从业人员的相关能力      
本人不卖软件,找我买破解版或者想低价嫖的可以不用给我发私信了     
本人将于明年推出自己的风控监控平台,积极寻找合作伙伴中,有意者请联系

apt.zorrovip.com
简介
由于没找到佐罗官网,这里从贴吧找了一段:
1、 支持多语言
2、 手机型号:支持 5 到 iPhone XS Max,并且提供不同地区版本的机型选择,如美版、日版、国行
3、 系统版本:支持 8.0~12.2
4、 运营商:常见国家和地区运营商,新版本会不断增加,有需求的可以反馈
5、 网络类型:2G、3G、4G、WiFi
6、 反越狱检测:跳过 APP 的越狱检测
7、 网络模拟:包含网络状态和运营商相关信息
8、 定位模拟:模拟定位,根据当前 IP 所在城市进行经纬度模拟
9、 屏幕模拟:此项一般情况不建议开启。小屏幕模拟为大屏幕时,可能因 APP开发方式问题,会发生显示不全的现象,在 Plus 手机上模拟小屏幕可以得到较好的结果
10、 模拟高版本防闪退:此项一般情况不建议开启。此功能主要用于游戏,当某款游戏在低版本手机上模拟为高版本发生闪退时,可尝试选中此项看看能否得到解决。(应用类 APP 勾选此项成功率不高)
11、 硬件信息全面模拟
12、 电量、音量、信号强度仿真:电量自动仿真,会自动模拟掉电,隐藏充电状态等
13、 系统启动时间跟随:会依每一次新机随时系统启动时间
14、 APP 安装时间跟随
15、 境外 IP 辅助经纬度定位:使用收费接口根据 IP 随机设置所在城市经纬度,支持境外 IP 的解析,不勾选此项,将使用免费接口解析,只能解析中国大陆的 IP 定位。
16、HTTP API调试
文件系统
  • /Applications/zorro.app/zorro 用户UI
  • /Applications/zorro.app/setting.dat  伪装到/usr/libexec/cydiabash,为后台daemon进程
  • /usr/bin/zorrodaemon 为后台daemon进程
  • /Library/MobileSubstrate/DynamicLibraries/zorro.dylib 实际改机模块
  • /private/var/mobile/Library/Preferences/com.zorro.adv.plist 新机参数
  • /private/var/mobile/Library/Preferences/com.zorro_enc.plist 新机参数

    保护方式
  • 简单的反调试+SVC(exit)
  • 防抓包([NSURLSessionConfiguration setConnectionProxyDictionary:])
  • Hikari全功能混淆
  • 通信数据使用RSA加密json:

    一键新机过程
    /usr/bin/zorrodo cp -f /private/var/mobile/Library/Preferences/com.zorro_enc.plist /var/mobile/Media/ZORRO/20200502-20-31-24_enc.igri
    /usr/bin/zorrodo mkdir /var/mobile/Media/ZORRO/20200502-20-31-24
    /usr/bin/zorrodo /bin/cp -fp /var/mobile/Media/ZORRO/20200502-20-31-24_enc.igri /var/mobile/Media/ZORRO/20200502-20-31-24/record_enc.plist
    /usr/bin/zorrodo /usr/bin/killall -9 MobileSafari
    /usr/bin/zorrodo /usr/bin/killall -9 test223
    /usr/bin/zorrodo /usr/bin/killall -9 MobileSafari
    /usr/bin/zorrodo launchctl unload -w /System/Library/LaunchDaemons/com.apple.cfprefsd.xpc.daemon.plist
    /usr/bin/zorrodo launchctl load -w /System/Library/LaunchDaemons/com.apple.cfprefsd.xpc.daemon.plist
    /usr/bin/zorrodo mkdir /var/mobile/Media/ZORRO/20200502-20-31-24/Keychains
    /usr/bin/zorrodo /bin/cp -fp /var/Keychains/keychain-2.db /var/mobile/Media/ZORRO/20200502-20-31-24/Keychains/keychain-2.db
    /usr/bin/zorrodo /bin/cp -fp /var/Keychains/keychain-2.db-shm /var/mobile/Media/ZORRO/20200502-20-31-24/Keychains/keychain-2.db-shm
    /usr/bin/zorrodo /bin/cp -fp /var/Keychains/keychain-2.db-wal /var/mobile/Media/ZORRO/20200502-20-31-24/Keychains/keychain-2.db-wal
    /usr/bin/zorrodo cleanKeychains
    /usr/bin/zorrodo /bin/cp -RTfp /var/mobile/Library/Caches/com.apple.Pasteboard /var/mobile/Media/ZORRO/20200502-20-31-24/com.apple.Pasteboard
    sh -c rm -Rf /var/mobile/Library/Caches/com.apple.Pasteboard/*
    sh -c rm -Rf /var/mobile/Library/Caches/com.apple.Pasteboard/*
    sh -c rm -Rf /var/mobile/Library/Caches/com.apple.mobilesafari/*
    sh -c rm -Rf /var/mobile/Library/Caches/Safari/*
    sh -c rm -Rf /var/mobile/Library/WebKit/*
    sh -c rm -Rf /var/mobile/Library/Safari/*
    /usr/bin/zorrodo /bin/rm -rf /var/mobile/Library/Cookies/Cookies.binarycookies
    /usr/bin/zorrodo /bin/rm -rf /private/var/root/Library/Cookies/Cookies.binarycookies
    /usr/bin/zorrodo /bin/rm -rf /private/var/mobile/Containers/Data/Application/35797810-4509-4D40-9CA0-2D9895BD8293/CloudKit
    /usr/bin/zorrodo /bin/rm -rf /private/var/mobile/Containers/Data/Application/35797810-4509-4D40-9CA0-2D9895BD8293/Documents
    /usr/bin/zorrodo /bin/rm -rf /private/var/mobile/Containers/Data/Application/35797810-4509-4D40-9CA0-2D9895BD8293/Library
    /usr/bin/zorrodo /bin/rm -rf /private/var/mobile/Containers/Data/Application/35797810-4509-4D40-9CA0-2D9895BD8293/tmp
    /usr/bin/zorrodo mkdir /private/var/mobile/Containers/Data/Application/35797810-4509-4D40-9CA0-2D9895BD8293/Documents
    /usr/bin/zorrodo mkdir /private/var/mobile/Containers/Data/Application/35797810-4509-4D40-9CA0-2D9895BD8293/Library/Preferences
    /usr/bin/zorrodo mkdir /private/var/mobile/Containers/Data/Application/35797810-4509-4D40-9CA0-2D9895BD8293/Library/Caches
    /usr/bin/zorrodo mkdir /private/var/mobile/Containers/Data/Application/35797810-4509-4D40-9CA0-2D9895BD8293/tmp
    /usr/bin/zorrodo /bin/rm -rf /private/var/mobile/Containers/Data/Application/4C3E7DAE-EF81-43CF-BD94-E956605C6330/Documents
    /usr/bin/zorrodo /bin/rm -rf /private/var/mobile/Containers/Data/Application/4C3E7DAE-EF81-43CF-BD94-E956605C6330/Library
    /usr/bin/zorrodo /bin/rm -rf /private/var/mobile/Containers/Data/Application/4C3E7DAE-EF81-43CF-BD94-E956605C6330/tmp
    /usr/bin/zorrodo mkdir /private/var/mobile/Containers/Data/Application/4C3E7DAE-EF81-43CF-BD94-E956605C6330/Documents
    /usr/bin/zorrodo mkdir /private/var/mobile/Containers/Data/Application/4C3E7DAE-EF81-43CF-BD94-E956605C6330/Library/Preferences
    /usr/bin/zorrodo mkdir /private/var/mobile/Containers/Data/Application/4C3E7DAE-EF81-43CF-BD94-E956605C6330/Library/Caches
    /usr/bin/zorrodo mkdir /private/var/mobile/Containers/Data/Application/4C3E7DAE-EF81-43CF-BD94-E956605C6330/tmp
    /usr/bin/zorrodo cleanKeychains
    /usr/bin/zorrodo /bin/chown mobile:mobile /private/var/mobile/Library/Preferences/com.zorro_enc.plist
    /usr/bin/zorrodo /bin/mv /var/mobile/Documents/ls.igri /var/mobile/Media/ZORRO/20200502-20-35-14_enc.igri
    /usr/bin/zorrodo /bin/cp -f /var/mobile/Media/ZORRO/20200502-20-35-14_enc.igri /private/var/mobile/Library/Preferences/com.zorro_enc.plist
    修改参数:
    fork/dladdr/dyld_get_image_name/getenv/fopen/__opendir2/stat/lstat/access     屏蔽越狱检测
    NSFileManager/NSString/UIApplication/NSArray/WXOMTAHelper   屏蔽越狱检测
    UIScreen                                  修改分辨率
    sysctl                                    修改设备名,设备型号,iOS版本,启动时间,CPU核心数等
    sysctlbyname                              修改设备名,设备型号,iOS版本,启动时间,CPU核心数等
    uname                                     修改设备名,设备型号,iOS版本等
    UIDevice                                  修改设备型号,iOS版本,设备名,IDFV, 电池信息
    ASIdentifierManager                       修改IDFA
    LSApplicationWorkspace/LSApplicationProxy 修改IDFA/IDFV
    UIApplication                             修改apns
    NSProcessInfo                             修改设备名,iOS版本,环境变量,cpu核心数
    MFMessageComposeViewController            修改系统发短信配置
    AVAudioSession                            修改音量
    IORegistryEntrySearchCFProperty           设备名,设备串号,IMEI,蓝牙地址,区域码,芯片码,MAC地址等
    IORegistryEntryCreateCFProperty           设备名,设备串号,IMEI,蓝牙地址,区域码,芯片码,MAC地址等
    IORegistryEntryCreateCFProperties         设备名,设备串号,IMEI,蓝牙地址,区域码,芯片码,MAC地址等
    _CTServerConnectionCopyMobileIdentity     设备名,设备串号,IMEI,蓝牙地址,区域码,芯片码,MAC地址等
    _CTServerConnectionCopyMobileEquipmentInfo设备名,设备串号,IMEI,蓝牙地址,区域码,芯片码,MAC地址等
    MGCopyAnswer                              设备名,设备串号,IMEI,蓝牙地址,区域码,芯片码,MAC地址等
    SCNetworkReachabilityGetFlags             修改网络类型,WIFI/2G/3G/4G
    CNCopySupportedInterfaces                 修改WIFI名和BSSID
    CNCopyCurrentNetworkInfo                  修改WIFI名和BSSID
    getifaddrs                                修改内网IPv4/IPv6/MAC地址
    SCNetworkReachabilityGetFlags             修改网络信息
    NSFileManager/NSProcessInfo               修改存储容量,内存大小
    SCNetworkInterfaceGetInterfaceType/kSCNetworkInterfaceTypeIEEE80211/SCNetworkInterfaceGetBSDName
                                              修改网卡信息
    CTCarrier                                 修改运营商信息,包括运营商名,MCC,MNC,ICC,TECH,VOIP
    CTTelephonyNetworkInfo                    修改运营商信息,包括运营商名,MCC,MNC,ICC,TECH,VOIP
    CLLocation/CLLocationManager              修改定位参数
    配置文件
            AdvertisingIdentifier
            ...........
            BluetoothAddress
            .............
            Build
            31000
            Carrier
            
                    13
            
            CarrierName
            遠傳電信
            CarrierVersionString
            14
            CountryCode
            466
            CpuCount
            2
            CurrentMobileId
            
            CurrentSubscriberId
            
            DeviceBatteryLeave
            0.56000000000000005
            DeviceBatteryState
            1
            DeviceBoottime
            1499429965
            DeviceCategory
            iPhone
            DeviceFreeSize
            10781809186
            DeviceName
            iPhone
            DeviceToken
            ...............
            DeviceTotalSize
            30808743955
            Enabled
            [tr]
            EthernetBSSID
            ............
            EthernetIPv4Address
            192.168.123.43
            EthernetIPv6Address
            .....................
            EthernetMacAddress
            cf:d0:6d:dc:9e:34
            EthernetRSSID
            
            EthernetSSID
            TP-Link_35FA58
            GeoRadius
            10
            Heading
            63.170999999999999
            ICCID
            ...............
            IMSI
            ...................
            ISOCountryCode
            tw
            IdentifierForVendor
            ......................
            InternationalMobileEquipmentIdentity
            330563646423620
            InverseDeviceID
            ...................
            KernVersion
            Darwin Kernel Version 18.7.0: Mon Aug 19 22:24:08 PDT 2019; root:xnu-4903.272.1~1/RELEASE_ARM64_S8000
            LicenseAccepted
            [tr]
            MEID
            ..............
            MLBSerialNumber
            ..............
            NetType
            
                    5
            
            NetworkCode
            01
            NetworkInterfaces
            
            NetworkType
            5
            OSRelease
            18.7.0
            OSVersions
            
                    13.3.1
            
            OpenUDIDValue
            .......................
            Phones
            
                    iPhone8,4
            
            PhysicalMemory
            1919350728
            ProductHWModel
            N69AP
            ProductModel
            MP9E2
            ProductType
            iPhone8,4
            RegionCode
            TW
            RegionInfo
            TW/A
            ReplaceApplicationIdentifierList
            
                    kjc.loader
                    com.saurik.Cydia
                    com.643d.08cab7
                    zorro
            
            ReplaceIOKitProperties
            
            ReplaceMGCopyAnswer
            
            SafariBuild
            15E148
            SafariCv
            605.1.15
            SafariMv
            604.1
            ScreenBrightness
            0.5853419303894043
            ScreenType
            
                    height
                    1334
                    scale
                    2
                    width
                    750
            
            SerialNumber
            ............
            ServiceString
            遠傳電信
            SwitchAutoBackup
            [tr]
            SwitchFakeAppInstall
            [tr]
            SwitchFakeCarrierInfo
            [tr]
            SwitchFakeDeviceAdv
            [tr]
            SwitchFakeDeviceStartup
            [tr]
            SwitchFakeHigh
            
            SwitchFakeJailbreak
            [tr]
            SwitchFakeLocation
            [tr]
            SwitchFakeNetworkInfo
            [tr]
            SwitchFakeSafari
            [tr]
            SwitchFakeScreen
            
            SwitchFakeSignal
            [tr]
            SwitchFakeVPN
            [tr]
            SwitchLocationAutoAdjust
            [tr]
            SwitchLocationByIP
            [tr]
            SwitchSmartAirplane
            
            SystemBuildVersion
            17D50
            SystemName
            iPhone OS
            SystemUpdatetime
            75441
            SystemVersion
            13.3.1
            UniqueChipID
            31856195358517356
            UniqueDeviceID
            ..........
            UniqueIdentifier
            .............
            Volume
            0.875
            ZorroKey
            1500000000
            appLanguage
            zh-Hant
            applist
            
                    com.test
            
            excludeapplist
            
                    com.test
            
            iOSVer
            12.400000
            zorropath
            20170714-10-40-00
    笔者简单使用checktweak检验了一下该款工具,发现的问题有:
  • 数据不匹配:
    如sysctlbyname/sysctl/uname/NSProcess对同一参数获取的结果不同,包括如下字段:
    kern.version hw.model hw.ncpu
    kern.boottime(由于作者使用strcpy拷贝整形值,导致其值没有清高32位,导致该时间到2100以后)

    总结
    总体来说zorro修改的参数较其他软件全,且针对剪贴板有备份恢复功能,应该是公开的同类软件软件中质量最高的一款App。
    本文只做技术研究,切勿用作商业用途和非法目的。

    设备, 地址

  • wxfyang   

    来学习的,谢谢楼主
    jnez112358   


    dqss 发表于 2020-5-17 07:46
    越狱检测过不去的话只能做做小厂app

    改机就是改机,反越狱就是反越狱,是两码事,是两类插件。你能怪一个程序员厨艺不精么
    lichao890427
    OP
      


    sanmao785 发表于 2020-5-16 14:37
    说实话 这个软件很垃圾,很多app改机后都闪退

    拿药来举例,有的药可以治很多病,而有的药只治一种病,但是对这种病效果好。大部分药都是有适用范围的,不能乱吃对吧,乱吃会死人的
    lichao890427
    OP
      

    多少钱一月
    [i]
    bali113   


    bali113 发表于 2020-5-16 10:22
    来个破解版呗

    自己玩的
    1246556738   

    不错的原理分析,支持发帖
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部