此前在做一道app安全的題目時(shí)碳想,發(fā)現(xiàn)里面有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
上網(wǎng)搜索才知道這是arm linux下的系統(tǒng)調(diào)用。
上述代碼的含義為:系統(tǒng)調(diào)用sys_mprotect的系統(tǒng)調(diào)用號(hào)是0x7D逻翁,將系統(tǒng)調(diào)用號(hào)存放到寄存器R7當(dāng)中饥努,然后應(yīng)用程序通過svc 0產(chǎn)生軟中斷,陷入內(nèi)核空間卢未,完成mprotect的操作肪凛。