search rop gadgets

提供几种rop gadgets搜索的方法, 主要来源于网上的blog, 主要是总结一下

Immunity Debugger Mona

因为以前一直使用的是OD, 没有使用Immunity Debugger, 因此没有实际尝试, 推荐一篇Blog.
https://huirong.github.io/2015/12/18/mona/
搜索DLL中的ROP链

1
!mona rop -m msvcrt.dll

MSFrop metasploit的一个小工具

这个在Kali上就有, 可以对DLL进行搜索, 使用也很方便, 可以参考:
https://www.offensive-security.com/metasploit-unleashed/Msfrop/

ROPgadget

基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ROPgadget --binary c --only "pop|pop|ret"
Gadgets information
============================================================
0x000000000040071c : pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret
0x000000000040071e : pop r13 ; pop r14 ; pop r15 ; ret
0x0000000000400720 : pop r14 ; pop r15 ; ret
0x0000000000400722 : pop r15 ; ret
0x000000000040071b : pop rbp ; pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret
0x000000000040071f : pop rbp ; pop r14 ; pop r15 ; ret
0x00000000004005b0 : pop rbp ; ret
0x0000000000400723 : pop rdi ; ret
0x0000000000400721 : pop rsi ; pop r15 ; ret
0x000000000040071d : pop rsp ; pop r13 ; pop r14 ; pop r15 ; ret
0x00000000004004d1 : ret

Unique gadgets found: 11

安装&详细使用参考
https://github.com/JonathanSalwan/ROPgadget

OD中的搜索

因为一直用的OD调试, 所以用这个比较方便, 给出几个使用图就比较清楚了.

点击e查看加载的DLL
选中其中一个需要搜索的DLL
右键-查找-所有命令序列
输入查找的语句语法
点击查找
查看具体的语句

语法很简洁

1
2
3
4
R8, R16, R32 for any 8, 16, 32 bit register respectively.
CONST for any constant
JCC for any conditional jump
ANY n for any 0..n commands

参考 http://auntitled.blogspot.com/2010/12/use-ollydbg-to-find-rop-gadgets.html

Xp heap Fuzz methods & tools
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×