- A+
rop-tool是一款能帮助你制作二进制exp的工具。
选项
使用方法:
rop-tool <cmd> [OPTIONS]
命令:
gadget 搜索小工具
patch 为二进制文件打补丁
info 打印二进制文件信息
heap 显示堆结构
disassemble 反汇编二进制文件
search 在二进制文件里搜索
help 打印帮助信息
version 打印版本
小工具(gadget)命令
用法:
rop-tool gadget [OPTIONS] [FILENAME]
选项:
–arch, -A 选择系统架构 (x86,x86-64, arm, arm64)
–all,-a 打印全部小工具
–depth, -d [d] 指定小工具搜索的深度(默认是5)
–flavor, -f [f] 选择一种风格 (att或者 intel)
–no-filter, -F 不要在小工具上运用过滤器
–help, -h 打印帮助信息
–no-color, -N 不用多彩输出
搜索命令
用法:
rop-tool search [OPTIONS] [FILENAME]
选项:
–all-string, -a [n] 搜索所有可打印的字符串,至少N个特征 (N默认值为 6)
–byte, -b [b] 搜索二进制文件里的byte
–dword, -d [d] 搜索二进制文件里的dword
–help, -h 打印帮助信息
–no-color, -N 不要多彩输出
–qword, -q [q] 搜索二进制文件里的qword
–raw, -r 忽略格式限制,以raw格式打开文件
–split-string, -s 展开 在内存里搜索一个不连续的字符串
–string, -S 展开 搜索二进制文件里的字符串(一个字节序列)
–word, -w [w] 搜索二进制文件里的word
补丁命令
用法:
rop-tool patch [OPTIONS] [FILENAME]
选项:
–address, -a [a] 选择打补丁的address
–bytes, -b [b] 一个要写的比特序列 (比如:“\xaa\xbb\xcc”)
–filename, -f [f] 指定文件名
–help, -h 打印帮助信息
–offset, -o [o] 选择补丁的偏移(从文件的起始算)
–output, -O [o] 另存为的文件名
–raw, -r raw模式打开文件
信息命令
用法:
rop-tool info [OPTIONS] [FILENAME]
选项:
–all, -a 显示所有信息
–segments, -l 显示segment
–sections, -s 显示section
–syms, -S 显示symbol
–filename, -f [f] 指定文件名
–help, -h 打印帮助信息
–no-color, -N 禁用多彩
帮助命令
用法:
rop-tool heap [OPTIONS] [COMMAND]
选项:
–calloc, -C 跟踪calloc回调
–free, -F 跟踪free回调
–realloc, -R 跟踪realloc回调
–malloc, -M 跟踪malloc回调
–dumpdata, -d dump chunk的数据
–output, -O 输出到文件
–help, -h 打印帮助信息
–tmp, -t <d> 指定可写目录来dump库(默认值:/ tmp/)
–no-color, -N 禁用多彩
堆命令的解释说明
每一行对应一个malloc chunk,在每一个堆函数(free, malloc, realloc, calloc)执行后会进行dump。
Addr:malloc chunk的真实地址
usr_addr:malloc函数返回给用户的地址
size:malloc chunk的大小
flags:
P == PREV_INUSE
M == IS_MAPED
A == NON_MAIN_ARENA
反汇编命令
用法:
rop-tool dis [OPTIONS] [FILENAME]
选项:
–help, -h 打印帮助信息
–no-color, -N 禁用多彩
–address, -a <a> 反汇编的起始地址<a>
–offset, -o <o> 反汇编的偏移<o>
–sym, -s <s> 反汇编symbol
–len, -l <l> 仅反汇编byte<l>
–arch,-A <a> 选择系统架构 (x86, x86-64,arm, arm64)
–flavor,-f <f> 选择风格 (intel,att)
特性
字符串特性、小工具搜索、补丁、信息、堆可视化、反汇编
多彩输出
Intel and AT&T风格
ELF、PE和MACH-O的二进制格式支持
高低字节序的支持
x86、x86_64、ARM和ARM64系统架构的支持
实例用法演示
基础小工具搜索:
rop-tool gadget ./program
显示AT&T语法的小工具:
rop-tool gadget ./program -f att –a
Raw模式搜索x86文件:
rop-tool gadget ./program -A x86
在二进制文件里搜索不连续的字符串:
rop-tool search ./program -s "/bin/sh"
在二进制文件里搜索全部字符串:
rop-tool search ./program –a
在偏移0×1000处打补丁”\xaa\xbb\xcc\xdd” ,然后保存为 ”patched”:
rop-tool patch ./program -o 0x1000 -b"\xaa\xbb\xcc\xdd" -O patched
堆可视化分配/bin/ls命令:
rop-tool heap /bin/ls
在地址0×08048452处反汇编0×100 byte:
rop-tool dis /bin/ls -l 0x100 -a 0x08048452
演示截屏
rop-tool gadget /bin/ls
rop-tool search /bin/ls –a
rop-tool search /bin/ls -s"/bin/sh\x00"
rop-tool search /bin/ls -w 0x90
rop-tool heap ./a.out
rop-tool dis ./bin # 多格式
读者如何贡献项目:
1.写代码(需要思路时看TODO文件)
2. 报告bug
3.优化文档
4.提交新思路
代码依赖:
Release发布:
https://t0x0sh.org/rop-tool/releases/
Git地址:
https://github.com/t00sh/rop-tool.git
作者:
[email protected]
*参考来源:Github,FB小编dawner编译,安云网转载自FreeBuf.COM