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符号解析, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 交互式选择, 共享库解析, 内存映射, 客户端加密, 端口探测, 符号解析, 类和方法偏移, 结构体生成, 编译生成, 自动分组, 逆向工程, 零依赖, 静态分析, 高性能解析