基于arm的linux下系统调用的实现

此前在做一道app安全的题目时,发现里面有svc指令,如下所示,甚为疑惑,不知道它是啥东东。

LOAD:00007B28 MOV            R12, R7

LOAD:00007B2C MOV            R7, #0x7D ;

LOAD:00007B30 SVC              0

LOAD:00007B34 MOV            R7, R12

LOAD:00007B38 CMN            R0, #0x1000

上网搜索才知道这是arm linux下的系统调用。

上述代码的含义为:系统调用sys_mprotect的系统调用号是0x7D,将系统调用号存放到寄存器R7当中,然后应用程序通过svc 0产生软中断,陷入内核空间,完成mprotect的操作。

你可能感兴趣的:(基于arm的linux下系统调用的实现)