基于ARMv8架构ROP自动构造框架

2017-08-12 12:22:06赵利军
计算机应用与软件 2017年8期
关键词:指令语义

赵利军 彭 城

(徐州工程兵学院作战实验中心 江苏 徐州 221000)



基于ARMv8架构ROP自动构造框架

赵利军 彭 城

(徐州工程兵学院作战实验中心 江苏 徐州 221000)

为了在ARM公司最新发布的首款支持64位处理器的ARMv8架构上实现ROP(Return_Oriented Programmig)技术,提高ROP攻击效力,设计了ARMv8架构上的ROP 自动构造工具。首先对已有的ARM架构下gadget搜索工具进行扩展,使之支持ARMv8架构下可用指令序列的搜索,并把这些指令序列存储在gadget库中,其次采用优化策略对gadget库进行优化。然后利用语义等价性找出与shellcode语义相同的gadget链,并利用寄存器连通性解决语义断层和寄存器冲突等问题。最后完成gadget的自动串联形成具有特定行为的ROP链。通过利用ROP自动构造工具对网站”exploit.db”中大量的shellcode进行自动构造,证明了工具具有良好的攻击效力,增强了ROP攻击的实用性。

ROP 指令序列 ARMv8 寄存器连通性 语义断层 寄存器冲突

0 引 言

数据执行保护和签名等技术有效地阻止了代码注入式攻击。2005年Krahmer等提出了一种借用代码攻击方法,该方法不再需要向内存中注入恶意代码,而是利用代码段中的代码实现攻击。return-into-libc[1]技术是一种典型的借用代码攻击,通过劫持控制流,跳转到C语言函数库libc,复用libc中已有的函数。但是return-into-libc攻击只能顺序调用函数,不能实现图灵完备的行为,如分支操作、循环操作等。

为了弥补return-into-libc攻击的局限性, 2007年Shacham[2]第一次提出了X86平台上的返回导向编程技术ROP。返回导向编程攻击的方式不再局限于将漏洞程序的控制流跳转到库函数中,而是利用库函数或可执行文件的指令代码片段实现攻击,将复用的代码粒度从return-to-libc的函数级别缩小到指令序列。……

登录APP查看全文

猜你喜欢
指令语义
听我指令:大催眠术
语言与语义
ARINC661显控指令快速验证方法
测控技术(2018年5期)2018-12-09 09:04:26
LED照明产品欧盟ErP指令要求解读
电子测试(2018年18期)2018-11-14 02:30:34
杀毒软件中指令虚拟机的脆弱性分析
电信科学(2016年10期)2016-11-23 05:11:56
“上”与“下”语义的不对称性及其认知阐释
现代语文(2016年21期)2016-05-25 13:13:44
认知范畴模糊与语义模糊
一种基于滑窗的余度指令判别算法
坐标系旋转指令数控编程应用
机电信息(2014年27期)2014-02-27 15:53:56
“深+N季”组配的认知语义分析
当代修辞学(2011年6期)2011-01-29 02:49:50