请教大佬,mov x16 0x148 svc 0x80是什么?

没遇到过 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

对应定义是:

#define    SYS___pthread_kill 328

-》所以很明显,指的是故意调用:

pthread_kill

去干掉你的进程

-》看起来很像是,iOS逆向中反调试中常用的手段:检测到你的越狱环境,不让你逆向和调试

进一步说:

-》如果想要,反反调试
-》可以:把相关指令nop掉