one_gadget
2,366
Stars
151
Forks
17
Watchers
1
Open Issues
MIT
许可证
Ruby
语言
2017-02-07
创建时间
2026-11-02
最近更新
项目能做什么
在 libc.so.6 中快速查找 One-gadget RCE 利用点的安全工具。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
[](https://rubygems.org/gems/one_gadget)
[](https://badge.fury.io/rb/one_gadget)
[](https://github.com/david942j/one_gadget/actions)
[](https://qlty.sh/gh/david942j/projects/one_gadget)
[](https://qlty.sh/gh/david942j/projects/one_gadget)
[](https://www.rubydoc.info/gems/one_gadget/)
[](http://choosealicense.com/licenses/mit/)
## OneGadget
When solving CTF pwn challenges we usually want a one-gadget RCE: a single address in
libc that, jumped to, calls `execve("/bin/sh", NULL, NULL)`.
This gem finds them for you, so you don't have to dig through objdump or IDA Pro every
time :wink:
Point it at a libc -- `one_gadget /path/to/libc` -- and enjoy the magic :laughing:
## Installation
Available on RubyGems.org!
```bash
$ gem install one_gadget
```
## Supported Architectures
- [x] i386
- [x] amd64 (x86-64)
- [x] aarch64 (ARMv8)
- [x] arm (ARMv7, A32/Thumb-2)
- [x] riscv64 (RV64GC)
- [x] mips (MIPS32 o32, big- and little-endian)
## Implementation
OneGadget symbolically executes the code around each candidate address to work out what
has to hold for the gadget to work.
Gadgets are found by walking the control-flow graph backward from each `exec`/`posix_spawn`
call, following conditional branches both ways. When a gadget is only reachable if a branch is
(not) taken, that decision shows up as an extra constraint, e.g. `x2 == 0x1`.
The article introducing how I develop this tool can be found [on my blog](https://david942j.blogspot.com/2017/02/project-one-gadget-in-glibc.html).
### Checked by running them
Constraints are only worth as much as they are complete, so the gadgets this repository
ships are verified by being run. [Aletheia](aletheia/README.md) loads the libc in a live
process, arranges exactly what a gadget's constraints ask for, poisons every register and
page they *don't* mention, jumps to the offset, and requires a real `/bin/sh` to come back
and list the root directory. A gadget whose constraint list is missing something fails
there instead of passing by luck -- which is how several missing constraints were found.
```bash
bundle exec rake aletheia:verify # every libc under spec/data, level 0
bundle exec rake "aletheia:verify[1, aarch64]" # one output level, one architecture
```
Aletheia is development tooling: it lives outside `lib/` and `bin/`, so it is not part of
the published gem.
## Usage
### Command Line Interface
```bash
$ one_gadget
# Usage: one_gadget <FILE|-b BuildID> [options]
# -b, --build-id BuildID BuildID
阅读完整原文
项目深度分析 AI 生成
面向安全赛事的二进制漏洞利用(PWN)实战体系化课程/培训
| 产品构想 | 依托 one_gadget 背后的符号执行、控制流反向遍历与寄存器约束推导原理,研发高阶 PWN 实战与自动化利用开发课程,面向高校战队与初中级安全人员进行知识变现。 |
| 核心功能 | 符号执行在漏洞利用中的应用讲解、常见架构(x86/arm/riscv/mips)libc 特性剖析、one_gadget 底层约束推导与动态验证工具 Aletheia 实战解析。 |
| 目标用户 | 网络安全竞赛选手、在校计算机/网安专业学生、准备转岗安全研究员的开发者。 |
| 难度/周期 | 低 · 2-4 周 · 成本:极低(仅录课与文档编写时间成本) |
| 收费模式 | 知识付费(售卖专栏、视频课程或训练营报名费)。 |
| 竞争风险 | 受众圈层垂直狭窄,客单价偏低,盗版风险高。 |
| 依据 | AI推测 |
云端 libc 符号检索与 Gadget 分析 API / Web 工具服务
| 产品构想 | 构建在线 libc-database + one_gadget 聚合服务平台,支持通过 BuildID 或上传二进制在线提取 gadget 约束,并提供与常见利用框架(如 pwntools)一键整合的云端 API。 |
| 核心功能 | 全网海量 libc 库 BuildID 预计算索引、多架构在线约束解析、REST API/Webhook 供自动化测试流水线调用、格式化利用代码片段直接导出。 |
| 目标用户 | 安全研究员、红队渗透人员、无需本地配置复杂 Ruby/符号执行环境的轻量开发者。 |
| 难度/周期 | 中等 · 1-2 个月 · 成本:低(云主机、对象存储、域名等轻量基础设施) |
| 收费模式 | 采用 Freemium 模式,针对高频次 API 请求、独占专属库缓存及私有化部署收费。 |
| 竞争风险 | 开源版本 `gem install one_gadget` 本地运行足够轻量简单,用户将核心二进制上传云端存在网络和隐私顾虑。 |
| 依据 | 尚需验证的假设 |
企业级自动化二进制攻击面评估与漏洞利用验证插件(拓展方案)
| 产品构想 | 将 one_gadget 的反向 CFG 遍历与约束求解技术拓展到更广泛的防御视角,开发用于分析私有动态链接库(so/dll)潜在注入点与恶意控制风险的静态分析评测工具。 |
| 核心功能 | 定制共享库恶意 gadget 风险评分报告、嵌入式交叉架构支持扩展、CI/CD 阶段的危险代码片段检测与阻断插件。 |
| 目标用户 | 物联网/嵌入式设备厂商研发、安全实验室、固件供应链审计团队。 |
| 难度/周期 | 高 · 3-6 个月 · 成本:中等(研发人力、测试固件与分析环境维护) |
| 收费模式 | 软件许可销售、企业级安全咨询或安全开发生命周期(SDL)工具订阅。 |
| 竞争风险 | 纯技术工具到商用安全防护产品的跨度大,市场需要强合规与体系化背书。 |
| 依据 | AI推测 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建于 2017-02-07,近 30 天仍在推送,发布过 33 个 Release |
| 社区活跃 | Star 2,366 / Fork 151 / Issue 1(数据支持,可自行核实) |
| 许可证 | MIT |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。