ROP

ROPgadget学习记录

主要是一段时间不用就忘记了,百度太麻烦了,记一下。

(不知道哪扒的)
ROPgadget支持 x86, x64, ARM, ARM64, PowerPC, SPARCMIPS架构下的ELF/PE/Mach-O文件格式。 ## 工具安装 安装pwntools自带 ## 基本用法 ``` <pre class="wp-block-code">```bash usage: ROPgadget.py [-h] [-v] [-c] [--binary <binary>] [--opcode <opcodes>] [--string <string>] [--memstr <string>] [--depth <nbyte>] [--only <key>] [--filter <key>] [--range <start-end>] [--badbytes <byte>] [--rawArch <arch>] [--rawMode <mode>] [--rawEndian <endian>] [--re <re>] [--offset <hexaddr>] [--ropchain] [--thumb] [--console] [--norop] [--nojop] [--callPreceded] [--nosys] [--multibr] [--all] [--noinstr] [--dump] ``` ``` ### <a></a>参数 ```
```bash
    -h, --help           显示帮助文档
    -v, --version        版本号
    -c, --checkUpdate    检测新版本是否可用
    --binary     指定二进制文件进行分析
    --opcode    在可执行段中查找opcode
    --string     在可读的段中查找字符串
    --memstr     查找单个byte在所有的可执行段中
    --depth       搜索引擎的深度
    --only          只显示特别的指令
    --filter        过滤特定指令
    --range   在地址之间寻找(0x...-0x...)
    --badbytes     拒绝特定指令在gadget的地址下
    --rawArch      指定文件架构
    --rawMode      指定源文件的mode
    --rawEndian  指定源文件的endianness
    --re             正则表达式
    --offset    指定gadget的地址偏移
    --ropchain           ROP chain的生成
    --thumb              在ARM架构下使用搜索引擎thumb 模式
    --console            使用交互终端对于搜索引擎
    --norop              禁止ROP搜索引擎
    --nojop              禁止JOP搜索引擎
    --callPreceded       仅显示call-preceded的gadgets
    --nosys              禁止SYS搜索引擎
    --multibr            允许多分枝gadgets
    --all                禁止删除重复的gadgets,即显示所有
    --noinstr            禁止gadget指令终端打印
    --dump               输出gadget bytes
```
```
## 用法示例
寻找控制寄存器的gadgets:
```
```bash
$ ROPgadget --binary  --only 'pop|ret' | grep 
```
```
寻找保存`int80`的地址:
```
```bash
$ ROPgadget --binary  --only 'int'
```
```
寻找保存`&#039;/bin/sh&#039;`的地址:
```
```bash
$ ROPgadget --binary  --string '/bin/sh'
```
```	

使用:

ROPgadget --binary rop  --only 'pop|ret' | grep 'eax'
查找可存储寄存器的代码

 ROPgadget --binary rop --string "/bin/sh"
查找字符串

ROPgadget --binary rop  --only 'int'
查找有int 0x80的地址

命令: ROPgadget --binary 文件名 --only "pop|ret" | grep rdi
命令: ROPgadget --binary 文件名 --only "pop|ret" | grep rsi
命令: ROPgadget --binary 文件名 --only "pop|ret"

命令: ROPgadget --binary 文件名 --sting '/bin/sh'

命令: ROPgadget --binary 文件名 --sting '/sh'

命令: ROPgadget --binary 文件名 --sting 'sh'

命令: ROPgadget --binary 文件名 --sting 'cat flag'

命令: ROPgadget --binary 文件名 --sting 'cat flag.txt'
ROPgadget --binary ./pwn --only "pop rdi ret" | grep rdi
posted @   zzwwwe  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示