HanSoBored/SL-Dumper
GitHub: HanSoBored/SL-Dumper
一个用 C 编写的轻量级工具,解析 ELF 共享库并反混淆符号以生成结构化的 C++ 类转储。
Stars: 0 | Forks: 1
# 🧬 SL-Dumper
SL-Dumper (Shared Library Dumper) 是一个用 C 编写的轻量级工具,用于扫描 ELF 二进制文件(`.so` 文件),对符号名进行反混淆,并生成结构化的类转储到 `.cpp` 文件中。它自动检测库类型(C++、Rust、Go、Swift),并使用 **原生 ELF 解析** 以获得最大速度。
## 功能
- 🔍 **原生 ELF 解析** – 基于 mmap,无外部依赖。
- ⚡ **极速解析** – 毫秒级解析数千个符号。
- 🧩 **C++ 名称反混淆** – 使用 `__cxa_demangle` 获取可读的类与方法名。
- 📁 **自动分组** – 方法按类在输出文件中分组。
- 🖥️ **交互式选择** – 从当前目录选择要转储的 `.so` 文件。
- 📦 **零运行时开销** – 生成可直接检查的干净 `.cpp` 文件。
## 要求
- Linux / 类似 Unix 的操作系统
- GCC / Clang(带 `libstdc++` 用于反混淆)
- 标准 C 库 + POSIX
## 安装
克隆仓库:
```
git clone https://github.com/HanSoBored/sl-dumper.git
cd sl-dumper
```
编译程序:
```
make
```
将编译后的二进制文件移动到全局路径:
```
sudo make install
```
## 用法
1. 进入包含 `.so` 文件的目录并运行:
sl-dumper
2. 你会看到可用的 `.so` 文件列表:
选择要转储的库:
1 libexample.so (C++)
2 libother.so (Rust)
➔ 输入编号(0 退出):
3. 输入要转储的库的编号。
4. 工具解析 ELF、反混淆符号,并将输出写入:
@dump/.cpp
示例:对于 `libexample.so`,输出为 `example@dump/example.cpp`。
## 示例输出
输入库:`libgame.so`
生成的 `game@dump/game.cpp`:
```
class Player {
update; // 0x1a30
render; // 0x1b80
getHealth; // 0x1c20
};
class Weapon {
fire; // 0x2a10
reload; // 0x2b40
};
```
每个方法均列出其 **虚拟内存偏移**(十六进制),来自动态符号表。
## 项目结构
```
.
├── sl-dumper # Compiled executable
├── libexample.so # Shared library to dump
├── libother.so # Another library
└── example@dump/ # Output folder
└── example.cpp # Dumped class definitions
```
## 许可证
本项目开源,采用 **MIT License**。
标签:Bing搜索, C++ demangle, Clang, C++符号解修饰, C语言工具, ELF解析, GCC, Go符号解析, Linux工具, make工具, native ELF, POSIX, Rust符号解析, SO文件分析, Swift符号解析, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 交互式选择, 共享库解析, 内存映射, 客户端加密, 端口探测, 符号解析, 类和方法偏移, 结构体生成, 编译生成, 自动分组, 逆向工程, 零依赖, 静态分析, 高性能解析