Ar1sto/BythosEngine
GitHub: Ar1sto/BythosEngine
一款模块化、事件驱动的二进制分析与漏洞利用研究平台,为安全研究人员提供从静态分析到动态追踪再到漏洞利用方案合成的完整实验室环境。
Stars: 0 | Forks: 0
Bythos Engine
模块化二进制分析与漏洞利用研究平台
Linux 优先 · ELF 主导 · PE 双通道 · 事件驱动 · 研究级
Beta ·
简介 ·
为何选择 Bythos ·
快速开始 ·
功能 ·
CLI ·
Web ·
局限性 ·
免责声明
## Beta 1.0 — 请先阅读本文
| | |
|--|--|
| **版本** | **`1.0.0-beta.1`** · git tag **`v1.0.0-beta.1`** |
| **状态** | 公开研究 Beta 版 |
| **稳定性** | API、报告和 UI 可能随时更改,恕不另行通知 |
| **最佳体验** | Linux / Kali 环境下配合 binutils(+ 可选 Docker) |
| **Windows** | 通过进程内沙箱支持;宿主工具需要 WSL/Docker Desktop |
| **支持** | 请[提交 issue](https://github.com/Ar1sto/BythosEngine/issues),并附上操作系统、Rust 版本以及 `bythos doctor` 的输出 |
如果命令执行失败,这可能是 **Beta 版的不足**,而不是用户的错误。请向我们报告。
## 简介
**Bythos Engine** 是一个**模块化、事件驱动的平台**,用于分析原生二进制文件并构建**面向研究**的漏洞利用方案。
Bythos 并不是一个单一的“黑盒”分析器,而是一个 **Cargo workspace**,由独立的 crate 组成,它们通过共享的 **事件总线**、分层日志和知识接口进行通信。你将获得:
- **静态**分析和可选的宿主工具(`readelf`、`objdump` 等)
- **动态**的 soft-MMU 风格执行追踪
- **统一 IR (UIR)**,带有 sink 标注并始终开启反编译风格的提升
- **漏洞利用研究中心**(gadgets、内存泄漏、ASLR/canary/NX 绕过方案、PoC 骨架)
- 由单一引擎衍生的三种前端:**CLI**、交互式终端和 **Web 工作台**
**受众:**安全研究人员、逆向工程师、CTF 选手以及希望拥有单一实验室环境的学生——而不是那种即插即用的“黑客任意服务”设备。
**道德准则:**漏洞利用和 AEG 输出仅仅是**脚手架**(方案、oracle、pwntools 骨架)。请仅在你拥有或获得授权测试的系统上使用。
## 为何选择 Bythos
| 功能 | 为何重要 |
|--------------|----------------|
| **事件驱动的模块化** | 各个阶段会发布生命周期事件(`BinaryUploaded`、`ElfParsed` 等)。UI 和插件**观察**总线——没有纠缠不清的庞然大物。 |
| **Linux 优先的诚实性** | 优先使用真实的 binutils、Docker、宿主 `libc`。当工具缺失时,Bythos 会返回**模拟运行/回退**,而不是假装成功。 |
| **轻量上传,按需重型 AEG** | Web 上传保持响应灵敏(轻量 pipeline)。完整的 oracle AEG 通过 CLI/API **显式**调用,因此浏览器不会卡死。 |
| **研究级漏洞利用中心** | 技术选择(ROP / BROP / ret2libc / heap / one_gadget),gadget 数据库,内存泄漏接口,多路径安全绕过,填充了证据的 payload 槽位。 |
| **始终填充的反编译接口** | UIR 类 C 提升总是会产生文本;r2/Ghidra 是可选的增强功能。 |
| **产品配置文件** | nginx、OpenSSH、Apache、daemons、setuid——针对运维驱动的综合分析修剪路径爆炸。 |
| **Web 停靠工作台** | 在纯粹的展示型 UI 上提供自由浮动的面板(上传、活动、漏洞利用、图表、日志)。 |
## 平台
| 操作系统 | 支持级别 |
|----|----------------|
| **Linux / Kali** | **主要支持** —— 构建工具、binutils,Docker 可选 |
| **Windows** | 支持 —— MSVC Rust,进程内 runtime;在可用时通过 WSL/Docker 提供工具 |
| **macOS** | 可使用 Rust 构建;Linux 工具的深度支持各异 |
| 环境变量 | 默认值 / 可选值 | 用途 |
|----------------------|------------------|---------|
| `BYTHOS_BIND` | `127.0.0.1:8080` | HTTP 监听地址 |
| `BYTHOS_WEB_ROOT` | `web` | 静态 UI 路径 |
| `BYTHOS_RUNTIME` | `auto` · `docker` · `inprocess` | Runtime 后端 |
| `BYTHOS_DECOMP` | `uir` · `r2` · `ghidra` | 首选反编译后端 |
| `BYTHOS_GHIDRA_HOME` | — | 用于无头导出的 Ghidra 安装路径 |
| `BYTHOS_LIBC_SO` | — | 用于目录导入的显式 libc |
| `BYTHOS_NO_ANIM` | `1` | 禁用 CLI 动画 |
## 快速开始
```
# 前置条件:Rust stable (https://rustup.rs)
# Linux: sudo apt install -y build-essential pkg-config file binutils
git clone https://github.com/Ar1sto/BythosEngine.git
cd BythosEngine
git checkout v1.0.0-beta.1 # pin beta (optional)
cargo build
cargo test # smoke / unit tests — not a full product cert
# 交互式帮助
cargo run -p bythos-cli --bin bythos -- help
# 分析样本
cargo run -p bythos-cli --bin bythos -- analyze ./sample.elf
cargo run -p bythos-cli --bin bythos -- doctor
# Web workbench + API(从 repo 根目录运行以便 web/ 解析)
cargo run -p bythos-cli --bin bythos -- serve
# → http://127.0.0.1:8080/
```
**Release 构建**
```
cargo build --release
# binaries: target/release/bythos · target/release/bythos-server
```
## 安装说明
### 前置条件
| 组件 | 说明 |
|-----------|--------|
| **Rust 1.70+** (stable) | [rustup.rs](https://rustup.rs) |
| **Git** | 克隆代码 |
| **现代浏览器** | Web 工作台 |
| **binutils / file** (Linux) | 外部工具阶段 |
| **Docker** (可选) | 网络 / 崩溃 oracle 测试框架 |
**Windows (PowerShell)**
```
# 在 rustup install 之后:
$env:PATH = "$env:USERPROFILE\.cargo\bin;" + $env:PATH
rustc --version
cargo --version
```
**Kali / Debian**
```
sudo apt update
sudo apt install -y build-essential pkg-config file binutils binutils-multiarch docker.io
```
### 二进制文件
| 二进制文件 | 包 | 描述 |
|--------|---------|-------------|
| `bythos` | `bythos-cli` | 终端客户端 (analyze、exploit、serve 等) |
| `bythos-server` | `bythos-api` | HTTP API + 静态 Web UI |
```
cargo run -p bythos-cli --bin bythos --
cargo run -p bythos-api --bin bythos-server
```
## 功能
### 分析 pipeline (概述)
```
Upload / CLI
→ store binary
→ parse (ELF primary, PE tagged)
→ static (strings, entropy, disasm, findings)
→ optional host tools (file, readelf, objdump, …)
→ UIR / IR + vuln sink annotations + decomp lift
→ dynamic soft-MMU (steps, syscalls, trace)
→ defensive + offensive plugins (light AEG on bus)
→ artifacts / reports
```
完整的 **AEG** (`bythos exploit`) 额外运行 gadget 收集、内存泄漏与绕过方案规划、payload/PoC 填充、可选的 oracle 循环以及 Docker 测试框架。
### 静态分析与工具
- SHA-256、字符串、节区熵值、导入/符号
- 面向 x86_64 的反汇编启发式算法
- 宿主工具存在时予以调用:`file`、`strings`、`readelf`、`objdump`、`nm`、checksec 风格的摘要
### 动态与 runtime
- Soft-MMU / 步数预算、系统调用、分支、代码覆盖率 hooks
- Runtime 适配器:在可用时使用 Docker,否则使用进程内回退
### IR / 反编译
- 带有 sink 类别的统一中间表示(溢出、格式化字符串、UAF 风险等)
- 始终有内容的 UIR 类 C 反编译文本
- 可选的 radare2 / Ghidra ExportC 混合模式 (`tools/ghidra/`)
### 漏洞利用研究中心
| 领域 | 能力 |
|------|------------|
| **技术** | auto、ROP、BROP、ret2libc、SROP、heap、one_gadget |
| **Gadgets** | 按段的 RX 收集,附带角色信息 |
| **内存泄漏** | 格式化字符串、GOT/PLT、任意写、部分覆盖、canary、BROP、FSOP、TLS、网络 oracle |
| **绕过** | ASLR 多重泄漏、canary、NX、RELRO、ret2csu、ret2dlresolve、栈迁移 (pivot)、mprotect ROP、SROP、FSOP、seccomp/CET 说明 |
| **libc** | 目录 + `data/libc/` 下的宿主自动镜像,one_gadget 候选项 |
| **Payload / PoC** | 填充了证据的 pwntools 骨架(`OFFSET`、gadgets、libc 偏移) |
| **Oracle / Docker** | 工具缺失时提供偏移排名 + 崩溃 oracle / Dockerfile 模拟运行 |
| **验证** | 递归的结构化方案检查 |
### 前端
- **CLI** —— 可编写脚本的实验室命令
- **交互式终端** —— 未提供子命令启动时的主题行 UI
- **Web** —— 停靠布局、上传、实时活动、漏洞利用面板、图表、日志
## CLI
```
bythos
bythos analyze FILE [flags]
bythos vuln | checksec | exploit | bypass | poc | dynamic | libc FILE [flags]
bythos server | doctor | plugins | demo | help
```
| 命令 | 描述 |
|---------|-------------|
| `analyze ` | 静态 + 动态 + 引擎路径 |
| | `--static-only` · `--max-steps N` · `--save DIR` · `--no-engine` · `--json` |
| `vuln ` | 漏洞搜索 (IR + heap + sinks) |
| `checksec ` | NX / PIE / RELRO / canary 风格的摘要 |
| `exploit ` | 完整的 AEG / 漏洞利用合成 |
| | `--class nginx\|openssh\|auto` · `--tech auto\|rop\|brop\|ret2libc\|heap\|one_gadget` |
| | `--proto local\|tcp\|http` · `--canary` · `--oracle` · `--attempts N` · `--save DIR` |
| `bypass ` | ASLR / canary / NX / heap / BROP 方案 |
| `poc ` | pwntools PoC 骨架 |
| `dynamic ` | Soft-MMU / 追踪 |
| `libc` | libc 目录状态 + 宿主镜像 |
| `server` / `serve` | HTTP API + Web UI |
| `doctor` | 平台 / runtime / 工具探测 |
| `plugins` | 列出研究插件中心 |
| `demo` | 内置的微型 ELF 装置 |
| `help` | 命令概述 |
**示例**
```
cargo run -p bythos-cli --bin bythos -- checksec ./vuln.elf
cargo run -p bythos-cli --bin bythos -- vuln ./vuln.elf
cargo run -p bythos-cli --bin bythos -- exploit ./vuln.elf --class auto --oracle --save ./bythos-out
cargo run -p bythos-cli --bin bythos -- bypass ./vuln.elf --canary
cargo run -p bythos-cli --bin bythos -- poc ./vuln.elf
cargo run -p bythos-cli --bin bythos -- dynamic ./vuln.elf --max-steps 64
```
报告会输出到 `bythos-out/` 或 `--save DIR`(仅限本地——不属于 git 树的一部分)。
## Web 工作台
```
cargo run -p bythos-cli --bin bythos -- serve
```
打开 **http://127.0.0.1:8080/**
| 能力 | 说明 |
|------------|--------|
| 上传 / 批处理 | 创建一个 case 项目;**轻量** pipeline(在请求线程上不运行完整的 oracle AEG) |
| 实时活动 | 来自事件总线的阶段 + 详情 |
| 面板 | 仪表盘、动态、混合、事件、漏洞利用、checksec、插件、日志、图表 |
| 停靠 | 支持吸附区域的自由浮动 |
| 完整漏洞利用 | 显式的漏洞利用 UI/API 路径 |
静态资源:[`web/`](web/)。浏览器**仅作为展示层**——UI 中不包含分析算法,也没有 SQL。
## 架构 (概述)
```
┌──────────┐ ┌──────────┐ ┌─────────────┐
│ Web UI │ │ CLI/TUI │ │ bythos-api │
└────┬─────┘ └────┬─────┘ └──────┬──────┘
└──────────────┼────────────────┘
▼
┌────────────────────┐
│ Event bus · KB/log │
└─────────┬──────────┘
┌───────────────┼───────────────┐
▼ ▼ ▼
Static Dynamic Offensive
Tools Runtime Exploit
UIR Coverage Plugins
```
**原则**
1. 每个 crate 负责一件事情——没有庞然大物。
2. 仅通过事件 + artifacts 进行通信。
3. 宁可诚实降级,也不要虚假的成功路径。
4. ELF / Linux 的质量标准优先;PE 采用双通道。
### Workspace 映射 (部分)
| 分组 | Crates |
|-------|--------|
| 核心 | `bythos-event`, `bythos-logging`, `bythos-core`, `bythos-storage` |
| 二进制 | `bythos-parser`, `bythos-elf`, `bythos-protection`, `bythos-cfg`, `bythos-uir` |
| 分析 | `bythos-static`, `bythos-tools`, `bythos-dynamic`, `bythos-runtime`, `bythos-coverage` |
| 研究 | `bythos-offensive`, `bythos-exploit`, `bythos-defensive`, `bythos-security` |
| 前端 | `bythos-api`,bythos-cli`, `bythos-dock` |
可选辅助工具:`tools/ghidra/` (ExportC),`data/libc/README.md` (目录结构布局)。
## 已知局限性 —— 预期会遇到问题
本节是特意列出的。**Beta 意味着不完美。**
| 领域 | 你可能遇到的情况 |
|------|------------------|
| **稳定性** | 在处理异常的二进制文件时可能出现 panic 或不完整的错误提示 |
| **Web UI** | 并非每个面板都具有同样的深度;可能出现布局瑕疵 |
| **漏洞利用合成** | 偏移/gadgets 可能基于启发式;并不是“攻破任意二进制文件” |
| **上传** | 仅限轻量路径——完整的 AEG 需要 CLI/API |
| **Docker / QEMU** | 当 CLI 工具缺失时提供模拟运行报告 |
| **r2 / Ghidra** | 可选;UIR 始终会进行回退 |
| **PE / Windows 工具** | 质量次要于 Linux 上的 ELF |
| **libc 目录** | 取决于宿主机 / 镜像数据 |
| **性能** | 处理大型二进制文件 + 完整的插件目录时可能会变慢 |
| **API 接口** | 在稳定的 `1.0.0` 版本发布前可能会发生破坏性更新 |
绿色的单元测试只是**冒烟测试底线**,并不代表在真实世界 AEG 中也能取得成功的认证。
## 项目布局 (已发布)
```
BythosEngine/
README.md ← you are here (main docs)
CHANGELOG.md
CONTRIBUTING.md
LICENSE-MIT
LICENSE-APACHE
Cargo.toml / Cargo.lock
crates/ ← Rust workspace
web/ ← research workbench
docs/assets/ ← cover art
tools/ghidra/ ← optional ExportC script
data/libc/README.md ← libc catalog notes
```
构建缓存(`target/`)、实验室文件夹(`bythos-out/`、`bythos-projects/`)和本地会话(`.bythos/`)均已被 **gitignored**。
## 更新日志
发布历史:[CHANGELOG.md](CHANGELOG.md)
## 许可证
双重许可,基于:
- [LICENSE-MIT](LICENSE-MIT)
- [LICENSE-APACHE](LICENSE-APACHE)
```
MIT OR Apache-2.0
```
## 免责声明
Bythos 是一个用于二进制分析和自动化漏洞利用*方案规划*的**研究与教育**平台。
- **请勿**在未经授权的情况下将其用于针对他人的系统。
- PoC 和绕过方案可能不完整、错误或不安全——请在隔离的实验环境中进行验证。
- 作者对滥用或损坏**不承担任何责任**。
- 本 **Beta 版**不保证具备工业级的可靠性,也不保证一定能成功利用真实服务。
- 请将输出视为**假设**,而非保证。

Bythos Engine · v1.0.0-beta.1 · Public Beta
Binary Research / Exploit Research Studio · @Ar1sto (0mniscius)
标签:DNS 反向解析, ELF, Rust, 二进制分析, 云安全运维, 云资产清单, 可视化界面, 漏洞分析, 网络流量审计, 请求拦截, 路径探测, 逆向工程, 通知系统