基本 ROP 理解
作者:互联网
DEP(Linux下对应NX)、ASLR(Linux下对应PIE)
DEP - 数据执行保护的缩写,Data Execution Prevention。
他是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。
其基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。
魔高一尺道高一丈,攻击者也是想出了对应的处理手段~
目前主要的是 ROP(Return Oriented Programming):面向返回的程序设计
其主要思想是在栈缓冲区溢出的基础上,利用程序中已有的小片段 (gadgets) 来改变某些寄存器或者变量的值,从而控制程序的执行流程。
所谓 gadgets 就是以 ret 结尾的指令序列,通过这些指令序列,我们可以修改某些地址的内容,方便控制程序的执行流程。(类比之前做的实验三!)
ret
指令用栈中的数据,修改IP的内容,从而实现近转移。
ret2text :
即控制程序执行程序本身已有的的代码 (.text)。
我们控制执行程序已有的代码的时候也可以控制程序执行好几段不相邻的程序已有的代码 (也就是 gadgets),这就是我们所要说的 ROP。
1.
2.
3.
链接:https://www.anquanke.com/post/id/208935#h2-1
SOHO:是什么?
CGI函数是什么?
recv
函数用于从连接中获取用户输入。
Hex-Rays:这个软件有什么特殊的地方吗?
自己想到的:power shell和CMD有什么区别!
远程指纹识别:指纹是什么?
objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。
消费级网络设备:消费者使用的网络设备。
标签:基本,理解,控制程序,gadgets,指令,Linux,ROP,执行 来源: https://blog.csdn.net/weixin_42859280/article/details/110193914