首页
社区
课程
招聘
[原创]记录1: 绕过iOS某音最新版反调试
发表于: 2020-8-22 16:11 73174

[原创]记录1: 绕过iOS某音最新版反调试

2020-8-22 16:11
73174


菜鸟一枚,周末闲来无事,想着对某音进行逆向分析研究练练手;当我兴致冲冲的用MonkeyDev启动应用程序后,调试器与应用程序断开了,导致调试工作无法进行。

**

iPhone8 iOS13.3越狱

MacOs 10.14.4

某音砸壳后的ipa包,版本12.4.0

MonkeyDev环境

IDA

**


当应用程序启动后,调试器与应用程序继续断开,没有作用


继续运行MonkeyDev工程,启动应用程序后,调试器与应用程序继续断开,断点并没有断住


这就说明,在执行-[AppDelegate application:didFinishLaunchingWithOptions:]方法前,反调试的逻辑就已经执行了。那就继续猜测反调试逻辑是不是在main函数中


二进制文件的入口一般就是start,可从start中寻找到main函数的位置和逻辑;IDA解析二进制文件完成后,一般会自动定位到start。如下图所示,在IDA中的找到了start


F5一下,看到了start的伪码,如下图所示:


在伪码中发现了mac_syscall这个方法,切换回到汇编码


上图中伪码和汇编已经很明显的告诉我们了,从汇编的00000001043BE8EC位置到00000001043BE900,它就是反调试逻辑。
1A转换成十进制就是26,1F转换成就是31,26就是函数编号,通过Apple提供的System Call Table 可以查出ptrace的编号为26,通过“SVC 0x80”指令发起系统调用。
所以某音是通过调用ptrace函数可以阻止调试器依附:ptrace(31, 0, 0, 0)


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2020-8-22 16:12 被xiaoyiny编辑 ,原因:
收藏
免费 9
支持
分享
最新回复 (7)
雪    币: 5482
活跃值: (3272)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
不错
2020-8-23 14:11
0
雪    币: 227
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
现在砸壳ipa还能在哪下呀~
2020-8-24 11:30
0
雪    币: 2686
活跃值: (1010)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
大佬
2020-8-24 18:11
0
雪    币: 13
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

不错

最后于 2020-8-24 22:50 被chaogelai编辑 ,原因:
2020-8-24 20:02
0
雪    币: 258
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
学到了
2020-10-22 13:42
0
雪    币: 16
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
谢谢楼主分享
2020-10-23 16:51
0
雪    币: 27
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不错不错学到了
2020-11-7 03:18
0
游客
登录 | 注册 方可回帖
返回
//