吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12985|回复: 113
收起左侧

[iOS 原创] 记一次iOS越狱检测绕过

  [复制链接]
Fythem 发表于 2022-7-11 10:44
开始入坑 iOS 逆向了,碰到了一个应用有越狱检测。

越狱检测

越狱检测



应用在启动的时候就检测了设备的越狱情况,如果是越狱设备,只能点击弹窗中的“退出应用”。故考虑先通过frIDA-ios-dump获取应用ipa包,然后找到检测点,进而对越狱检测进行绕过。

ps:进行frida-ios-dump失败,原因未知,dump进程一直卡住,用了绕过越狱检测的KernBypass + LibertyLite也未能成功,但是同事的设备环境就没问题,这里用的是同事dump获得的ipa

frida-iOS-dump失败

frida-iOS-dump失败


拿到ipa后直接将ipa包中的可执行程序丢入 ida,在 Function Window 窗口中过滤 “jail” 字段,可以找到在 AppDelegate 类中的 [- checkJailbreaking] 和 [- showJailbreakingAlert] 方法。
根据方法名判断,我们接下来需要绕过越狱检测的目标函数就是 [- checkJailbreaking] 了(顺带学习一下,常见的越狱检测会检测哪些内容)

百度搜罗了一下越狱检测,对应到这个应用,这个应用一共检测了三个地方:
1、Cydia.app
2、stat是否出自系统库,如果不是 /usr/lib/system/libsystem_kernel.dylib 就表示越狱
3、当前程序的运行环境,getenv("DYLD_INSERT_LIBRARIES")未越狱设备返回 Null

ida查找jail函数

ida查找jail函数


编写frida hook代码,需要注意的是越狱检测是在应用启动时进行的,如果直接attach的话,很难执行到我们修改返回值的位置。
所以这里需要先spawn进程,再attach并注入js代码,最后resume让程序继续运行

[Python] 纯文本查看 复制代码
import frida
import sys

if __name__ == '__main__':
    device = frida.get_usb_device()
    pid = device.spawn(['xxx.xxxx'])
    session = device.attach(pid)
    JSFile = open('xxxx.js')
    JsCodeFromfile = JSFile.read()
    script = session.create_script(JsCodeFromfile)
    script.load()
    device.resume(pid)
    sys.stdin.read()


[JavaScript] 纯文本查看 复制代码
if (ObjC.available){
    console.log("[i] ObjC available!")
    var class_name = 'AppDelegate'
    var method_name = '- checkJailbreaking'
    var hook = eval('ObjC.classes.' + class_name + '["' + method_name + '"]');
    Interceptor.attach(hook.implementation, {
        onEnter:function(args){
            console.log("==== onEnter ====")
        },
        onLeave:function(retval){
            console.log("==== onLeave ====")
            console.log("Return: " + retval)
            retval.replace(0x0);    //修改 checkJailbreaking 函数的返回值
        }
    });
}



最后我们成功将 checkJailbreaking 函数的返回值从 0x1 修改为 0x0,绕过了越狱检测,可以进入应用并继续后续的测试了。

绕过越狱

绕过越狱


免费评分

参与人数 30威望 +1 吾爱币 +53 热心值 +27 收起 理由
bdmzyj + 1 我很赞同!
wsgshaha + 1 + 1 谢谢@Thanks!
yc5215311217 + 1 + 1 我很赞同!
hhhxcdh + 1 用心讨论,共获提升!
sss114514 + 1 + 1 谢谢@Thanks!
junjia215 + 1 + 1 用心讨论,共获提升!
closedfantasy + 1 + 1 我很赞同!
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
离心秋 + 1 我很赞同!
说不出的自由 + 1 + 1 谢谢@Thanks!
maxbyg + 1 + 1 用心讨论,共获提升!
ZYY1 + 1 + 1 谢谢@Thanks!
SeanPJ + 1 + 1 谢谢@Thanks!
billsmiless + 2 + 1 谢谢@Thanks!
lskar + 1 我很赞同!
ydzxyz + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
pear1234 + 1 + 1 学到了
lz132 + 1 + 1 用心讨论,共获提升!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
违规昵称107 + 1 + 1 用心讨论,共获提升!
shy851212 + 1 + 1 谢谢@Thanks!
Heathchris + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
gaoyao + 1 用心讨论,共获提升!
Thefirst1 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ZZF1949 + 1 + 1 用心讨论,共获提升!
weidechan + 1 用心讨论,共获提升!
三滑稽甲苯 + 1 + 1 用心讨论,共获提升!
大旗网人 + 1 + 1 热心回复!
richyfly + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Fythem 发表于 2022-7-20 16:45
Adm1nistrator 发表于 2022-7-20 13:01
检测越狱环境一般是涉及到金融支付类的app吧,支付宝这种

有些厂家对自己的应用要求比较高,也会进行越狱环境检测,就看检测方式是否全面了
cheny12120 发表于 2022-7-11 12:07
ZhuanZhuYuIT 发表于 2022-7-11 13:03
richyfly 发表于 2022-7-11 13:08
虽然不需要,但是支持一下~
烟草a 发表于 2022-7-11 13:25
感谢分享。
torrent 发表于 2022-7-11 14:02
厉害了,大佬
kip1914 发表于 2022-7-11 14:03

膜拜大佬
gland 发表于 2022-7-11 14:27
支持一下
yzx159357123 发表于 2022-7-11 15:05
感谢分享
string2016 发表于 2022-7-11 15:18
厉害了,大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 04:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表