​越狱iOS必备神器Flex使用指南-屏蔽越狱检测的破解利器

越狱iOS必备神器Flex使用指南-屏蔽越狱检测的破解利器

什么是Flex?

        Flex是越狱iOS上Cydia商店里的一个插件,看似普通的插件,却有着强大的动态修改手机APP运行逻辑的功能,就像Android系统中的Xposed一样,通过制作编写、配置一个Flex的小插件,可以动态修改越狱iOS上APP运行时的执行代码逻辑。

        但Flex的插件制作要比Xposed的插件制作更为简单。

        Xposed插件的编写需要在外部对APK进行反编译破解,甚至脱壳,打开AndroidStudio等开发软件进行代码编写,生成插件apk安装在手机上,在Xposed框架中激活,重启手机后方可生效。

图片

        

        而Flex插件的编写,说是编写,其实说配置更准确。Flex支持直接对Mach-o进行反编译,得到Object-C源码头文件,让用户直接选中要hook的类和方法名,配置篡改某个方法传入的参数和固定方法的返回值,从而达到修改APP执行逻辑的目的。使其生效的话,只需打开开关,重启APP即可生效。

图片

安装Flex

添加官方源:http://getdelta.co/安装Flex3即可。

我安装的是雷锋源的Flex 3 b92版本,机器是iPhoneXr,12.4.1

图片

 

图片

Flex功能模板说明

主要看下图说明:

图片

 

图片

在个人中心的账号中,有免费账号和付费账号,免费账号的限制是每天只能下载2个云端的插件,分享一个别人的共享账号:sundasheng521@qq.com 7758521a 没有功能限制:

图片

插件制作教程

        以“中国建设银行”为例,屏蔽其越狱检测。建行在越狱的手机上会安全提示,且点击按钮之后退出APP:

图片

打开Flex,点击右上角的“+”,选中建设银行,来到界面:

图片

点击“Add Units”,来到建设的执行程序列表:

图片

这里,我们选择主程序,点击之后,会有Processing字眼,是Flex对Mach-o进行dump源码头的处理,完成之后,最右边出现“>”,我们再点击就来到了类和函数的区域:

图片

通过分析建行对越狱的检测特征:弹窗提示+点击退出。那我们就尝试搜索“退出”:exitApp:

图片

选中之后,返回到原来的页面:

图片

点击进去查看编辑:

图片

2个方法的分析是一样的,也就说只要我们将这2个方法的Return设置为pass-through跳过不执行,建设银行就会在用户点击按钮的时候,不发生退出操作:

图片

Flex对于函数的传参和返回类型

目前Flex仅仅支持对Object-C类型的类和函数进行动态修改,支持编辑的具体类型有NSString(输入一个字符串,比如提示语、界面语等)、

NSNumer(一个数字,比如金币数、钻石数等)、

NSDate(日期,比如VIP到期日期等)、

UIColor(颜色,选择颜色等)、

Bool(TRUE/FALSE,是否为VIP等)

Id(泛型,可以自定义类型)

图片

 

图片

图片

怎么快速定位要修改的函数

A.通过抓包分析,精准定位需要修改的请求参数的值:

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1174501

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1004614

B.借助前人经验,通过通用的修改方法得到自己的破解需求:

https://www.52pojie.cn/forum.php?mod=viewthread&tid=999009

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1401213

C.通过中英文对照,模糊搜索可能需要修改的地方,比如:

屏蔽越狱检测:jailbroken root cydia 等

屏蔽退出:exit quit illegal等

解锁:lock

水印:water

是否购买/vip:vip buy pay等。

相关的博文:

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1092971

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1003260

https://www.52pojie.cn/forum.php?mod=viewthread&tid=615555

D.进阶精准溯源法,通过高阶的分析,比如IDA、Hopper、FlexTool等精准分析出要修改的函数,进而进行hook:

https://www.52pojie.cn/thread-1174141-1-1.html

https://mp.weixin.qq.com/s/OVgfyY0jgRSZKfAKxCGxfg

END

往期推荐:

值得收藏 |解决99%的手机APP抓包问题 涵盖安卓/iOS客户端

打造属于自己的Android破解脱壳机,其实只需100块

爬取 58 同城房产数据,犯非法获取计算机信息系统数据罪:3 人被判

一款轻便小巧的网络验证的安装及快速购买阿里云教程| 造福小白

看我如何一步步干掉盗取通讯录+盗摄的裸聊App |渗透技术

欢迎关注微信公众号:『掌玩小子』讨论更多技术:
在这里插入图片描述

 

  • 4
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
iOS越狱开发中,常用的Hook检测包括以下几种: 1. 检测当前进程是否被其他进程注入 ``` void anti_injection() { char path[1024]; int ret = proc_pidpath(getpid(), path, sizeof(path)); if (ret <= 0) { NSLog(@"anti_injection: proc_pidpath failed"); exit(1); } if (strstr(path, "/Library/MobileSubstrate") != NULL) { NSLog(@"anti_injection: MobileSubstrate detected"); exit(1); } if (strstr(path, "/Library/Frameworks/CydiaSubstrate.framework") != NULL) { NSLog(@"anti_injection: CydiaSubstrate detected"); exit(1); } } ``` 2. 检测是否被调试 ``` void anti_debugging() { int name[4]; struct kinfo_proc info; size_t info_size = sizeof(info); name[0] = CTL_KERN; name[1] = KERN_PROC; name[2] = KERN_PROC_PID; name[3] = getpid(); if (sysctl(name, 4, &info, &info_size, NULL, 0) == -1) { NSLog(@"anti_debugging: sysctl failed"); exit(1); } if (info.kp_proc.p_flag & P_TRACED) { NSLog(@"anti_debugging: traced"); exit(1); } } ``` 3. 检测是否被hook ``` void anti_hooking() { const char *functionName = "ptrace"; void *handle = dlopen("/usr/lib/libc.dylib", RTLD_GLOBAL | RTLD_NOW); if (handle == NULL) { NSLog(@"anti_hooking: dlopen failed"); exit(1); } void *ptrace_func = dlsym(handle, functionName); if (ptrace_func == NULL) { NSLog(@"anti_hooking: dlsym failed"); exit(1); } if (ptrace_func != (void *)&ptrace) { NSLog(@"anti_hooking: hook detected"); exit(1); } } ``` 4. 检测是否被注入Cycript等调试工具 ``` void anti_cycript() { char *cycript = strstr(getenv("DYLD_INSERT_LIBRARIES"), "cycript"); if (cycript != NULL) { NSLog(@"anti_cycript: cycript detected"); exit(1); } } ``` 此外,还可以在代码中添加闪退检测断点,当程序发生闪退时就可以打断点进行调试,例如: ``` void crash_handler(int signal) { signal(SIGTRAP, NULL); NSLog(@"crash_handler: signal=%d", signal); exit(1); } void set_crash_handler() { signal(SIGTRAP, crash_handler); } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值