在ARM汇编代码中,我可以看到类似这样的内容(尤其是在shellcode中)
svc 0x0090003f
svc 0x001ff3bf
swi 0x0900ff0b
我知道'svc(或swi)'是'supervisor call',例如Intel的'int 0x80'或'SYSENTER'。但是,如何解释“ svc”数字?我在哪里可以得到它的信息清单?拇指“ svc”指令呢?
手臂说明手册似乎并没有解释这些...
有人能帮我吗?先感谢您。
6.2.8。SVC处理程序
发生异常时,异常处理程序可能必须确定处理器是处于ARM还是Thumb状态。
尤其是SVC处理程序,可能必须读取处理器状态。这是通过检查SPSR T位完成的。该位设置为Thumb状态,清除为ARM状态。
ARM和Thumb指令集都具有SVC指令。从Thumb状态调用SVC时,必须考虑以下因素:
指令地址位于lr-2,而不是lr-4。
该指令本身是16位的,因此需要半字加载,请参见图6.3。
在ARM状态下,SVC号保持为8位,而不是24位。
在http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0203j/Cacdfeci.html上了解更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句