没遇到过 0x148 很奇怪 有大佬遇到过吗?
__pthread_kill
0x148就是328 如下:
328 AUE_PTHREADKILL ALL { int __pthread_kill(int thread_port, int sig); }
svc
汇编指令用于触发软中断(software interrupt),在 ARM 架构中,通常用于调用系统调用。svc
后面跟着一个整数值,表示系统调用号。在 ARM64 架构上,这个值为 0x80。
编号写在 syscall.h里
exit() c函数的汇编
mov x16,#0x148
svc #0x80
很明显是:
通过汇编代码直接调用svc指令,实现对应底层函数调用
而对应函数,通过X16传入的编号实现
此处的编号是:0x148
= 328
对应定义是:
- syscall.h
- https://github.com/xybp888/iOS-SDKs/blob/master/iPhoneOS13.0.sdk/usr/include/sys/syscall.h
- https://github.com/radareorg/radare2/blob/master/libr/include/sflib/darwin-arm-64/ios-syscalls.txt
- Kernel Syscalls - The iPhone Wiki
- https://github.com/sh1ma/iostrace/blob/master/src/syscalls.json
- Mac 中
/usr/include/syscall.h
#define SYS___pthread_kill 328
-》所以很明显,指的是故意调用:
pthread_kill
去干掉你的进程
-》看起来很像是,iOS逆向中反调试中常用的手段:检测到你的越狱环境,不让你逆向和调试
进一步说:
-》如果想要,反反调试
-》可以:把相关指令nop掉