46、无返回的面向返回编程根kit技术解析

无返回的面向返回编程根kit技术解析

在计算机安全领域,面向返回编程(ROP)是一种强大的攻击技术。本文将深入探讨无返回的面向返回编程根kit的相关技术,包括函数调用、图灵完备性、根kit的设计与实现等方面。

1. 函数调用与图灵完备性

1.1 函数调用

在x86指令集架构中,寄存器eax、ecx和edx由调用者保存,而寄存器ebx、ebp、esi和edi由被调用者保存。为了确保函数返回后,小工具(gadget)仍在控制范围内,我们选择了Gadget - 12:

call dword ptr [ebp - 18]
jmp dword ptr [edi]

1.2 图灵完备性

无返回的小工具与Hovav的小工具一样强大。我们构建了用于加载/存储、算术/逻辑、控制流、有限循环和函数调用的小工具集。这个小工具集是最小的,因为我们可以用它构建任何程序。证明ROP语言是图灵完备的(即能够在图灵机上计算每个图灵可计算函数)是一个开放问题。一种方便有效的方法是使用ROP来模拟另一个图灵完备的系统。

基于小工具集,我们发现无返回的面向返回编程的能力等同于Brainfuck语言,而Brainfuck语言是图灵完备的。Brainfuck语言是一种无goto的编程语言,它有一个隐式的字节指针,可以在30000字节的数组中自由移动。Brainfuck只定义了与指针相关的八条指令(指针递增/递减;指针处的字节递增/递减;读取/写入指针处的字节;开始循环和结束循环)。

我们可以使用小工具集实现Brainfuck的八条指

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值