03. ROP
DEP:数据执行保护,不能再没有执行权限的页面上执行代码。链接选项可设置软件层面的DEP,对应PE头中IMAGE_OPTIONAL_HEADER的IMAGE_DLLCHARACTERISTICS_NX_COMPAT
ROP突破DEP:
工具介绍:
安装ImmunityDebugger.exe,把mona.py放在PyCommands目录中。
打开ImmunityDebugger.exe,输入指令!mona
例如jmp指令是查找jmp reg的,输入!mona help jmp可查询帮助信息。
!mona jmp -r esp -m*
findwild 可以查找符合某种类型的指令组合
找漏洞时一般关注输入函数,例如scanf,strcpy,输出函数或有长度限制的函数基本不存在漏洞。
ROP,Retrun-oriented Programmming(面向返回的编程),技术原理: 将一个个小部件在栈上进行有序的排列,每个小部件末尾的ret指令会使这些小部件依次得到执行