登录 注册
开发者工具 ctfexploitgadgetglibclibcone-gadget-rce
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 字符)
[![Downloads](https://img.shields.io/gem/dt/one_gadget)](https://rubygems.org/gems/one_gadget)


[![Gem Version](https://badge.fury.io/rb/one_gadget.svg)](https://badge.fury.io/rb/one_gadget)
[![Build Status](https://github.com/david942j/one_gadget/workflows/build/badge.svg)](https://github.com/david942j/one_gadget/actions)
[![Maintainability](https://qlty.sh/gh/david942j/projects/one_gadget/maintainability.svg)](https://qlty.sh/gh/david942j/projects/one_gadget)
[![Code Coverage](https://qlty.sh/gh/david942j/projects/one_gadget/coverage.svg)](https://qlty.sh/gh/david942j/projects/one_gadget)
[![API Docs](https://img.shields.io/badge/API-RubyDoc-blue.svg)](https://www.rubydoc.info/gems/one_gadget/)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](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 为准(涉及依赖安装与环境配置,对新手门槛较高)。