我已经读过’正常’ARM指令是固定长度的 – 32位.并且没有ARM指令可以跳转到另一条指令的中间 – 这对于x86指令很容易.
(对于x86,谷歌的NaCl尝试通过对齐32字节边界上的指令来“修复”这个问题.)
这是否使ARM程序更安全或更耐某些攻击?
如果是这样,这是否扩展到Thumb和Java指令?
最佳答案
它可以更安全的地方是将操作码扫描到沙箱进程.如果要禁止或拦截某些指令,则在固定长度指令集上执行此操作会更容易.在x86架构上,指令集取决于上下文,并且指令具有可变长度,因此如果从正确的偏移量解析它,那么看起来无害的指令实际上可以嵌入另一条指令.您可以有效地“跳入指令中间”并仍然有一个有效的指令.
ARM更容易解析,而拇指模式不会改变这一点.因此,ARM指令集本身并不是特别安全,但是更容易解析,并且正确的解析对于像沙盒这样的NaCl是必要的
原文地址:https://www.jb51.cc/java/437636.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。