ARM处理器有两种工作状态ARM和Thumb(Jazelle此处先不考虑)。这两种工作状态和运行模式没有任何关系。比如不论是ARM还是Thumb状态的代码都可以运行在用户模式下。这两种工作状态之间最大的差异是指令集,ARM状态的指令长度是32位的,Thumb状态的指令长度是16位的(也可能为32位)。了解如何使用Thumb工作状态对于编写ARM平台的漏洞利用是至关重要的。当我们编写ARM shellcode时,需要使用16 bit的Thumb指令代替32 bit的ARM指令,从而避免在指令中出现’\0’截断。
容易引起混淆的是,不同的ARM版本,支持的Thumb指令集并不相同。在某些版本中,ARM引入了扩展的Thumb指令集(也就是Thumb-2),它支持32 bit指令以及条件执行。这在原本的Thumb指令中都是不受支持的。为了在Thumb状态下支持条件执行,“it”指令被引入。然而,可能是为了简化指令集,这个指令在后来的版本中被删除了。我认为这种设计反而增加了兼容的复杂度。不过,当然我认为没必要知道所有ARM版本的ARM/Thumb指令集变体,我建议你也不必在这上面浪费太多时间。你只需要知道目标设备的版本和该版本对Thumb指令有哪些特殊支持,然后调整你的代码就好了。ARM Infocenter可以帮助你了解各个ARM版本的具体细节
资源简介:arm汇编指令集
上传时间: 2013-12-26
上传用户:guojin_0704
资源简介:arm 汇编指令综合
上传时间: 2014-07-27
上传用户:whenfly
资源简介:ARM汇编指令集(宛城布衣) ,大家一起学习吧:)
上传时间: 2015-04-09
上传用户:二驱蚊器
资源简介:ARM汇编指令,是个很好的参考手册。
上传时间: 2013-12-11
上传用户:13517191407
资源简介:ARM 汇编指令速查 对于学习ARM汇编有很大帮助
上传时间: 2015-09-14
上传用户:gtzj
资源简介:ARM汇编指令集,ARM程序开发必备文档。详解分类介绍ARM指令。
上传时间: 2016-02-03
上传用户:baitouyu
资源简介:2410 实验1 ARM汇编指令实验 ADS环境
上传时间: 2014-01-15
上传用户:caozhizhi
资源简介:实验1 ARM汇编指令实验 实验2 C和汇编语言的混合编程实验 实验3 外部中断实验 实验4 看门狗应用实验
上传时间: 2013-12-19
上传用户:亚亚娟娟123
资源简介:ARM汇编指令说明
上传时间: 2016-04-14
上传用户:xieguodong1234
资源简介:使用Embest IDE for ARM 开发环境及ARM 软件模拟器; 通过实验掌握简单ARM 汇编指令的使用方法。
上传时间: 2016-07-26
上传用户:fandeshun