-
-
[原创]记录1: 绕过iOS某音最新版反调试
-
发表于:
2020-8-22 16:11
73173
-
菜鸟一枚,周末闲来无事,想着对某音进行逆向分析研究练练手;当我兴致冲冲的用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)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-8-22 16:12
被xiaoyiny编辑
,原因: