# 3.3.4 返回导向编程(ROP) - [ROP 简介](#rop-简介) ## ROP 简介 返回导向编程(Return-Oriented Programming,缩写:ROP)是一种高级的内存攻击技术,该技术允许攻击者在现代操作系统的各种通用防御下执行代码,如内存不可执行和代码签名等。这类攻击往往利用操作堆栈调用时的程序漏洞,通常是缓冲区溢出。攻击者控制堆栈调用以劫持程序控制流并执行针对性的机器语言指令序列(gadgets),每一段 gadget 通常以 return 指令(`ret`)结束,并位于共享库代码中的子程序中。通过执行这些指令序列,也就控制了程序的执行。