elfmaster/libelfmaster
GitHub: elfmaster/libelfmaster
一个用于安全解析与逆向工程的 ELF 库,专为法医级二进制重建与健壮加载而设计。
Stars: 453 | Forks: 66
# libelfmaster
## 标准构建
### 克隆它
$ git clone git@github.com:elfmaster/libelfmaster
$ cd libelfmaster/src
## 构建它
$ make
$ sudo make install
## musl 构建
libelfmaster 也可以使用 MUSL 构建。[Shiva](https://github.com/advanced-microcode-patching/shiva) 是使用
MUSL Libc 构建的,并且需要更新的 musl libelfmaster。
$ sudo apt-get install musl musl-dev musl-tools
$ make musl
$ sudo make musl-install
## 更新(截至 2018 年 11 月 17 日)
我有一个本地分支,包含许多新的修复,将在十二月底完成并提交,目前非常忙碌。
## 安全 ELF 解析库
libelfmaster 是一个用于加载和解析任意类型 ELF 对象的 C 库。
该项目的目标是创建一个 API,能够以用户友好、安全的方式运行,
并提供各种创造性和有用的方式来访问 ELF 对象。不仅如此,
这个库主要是为了设计逆向工程应用程序而创建的。该库能够加载
具有损坏节头部的二进制文件,并使用最先进的技术(例如 .symtab 函数的 PT_GNU_EH_FRAME 重建)来法医重建节头和符号表。
该库还能够无缝加载 32 位和 64 位的 ELF 对象,而无需为每种架构
编译两个独立的库。显然,缺点是无法在 32 位机器上编译。我现在作为
该项目的指导者,将其交到安全与逆向工程社区手中。我目前正在使用它来构建
https://github.com/elfmaster/elf.arcana,该项目正在推进 Linux/UNIX 二进制取证和 HIDS 的发展。
随着 Arcana 的构建,会出现更多边缘情况。
## 未来目标
1. 类似 eresi e2dbg 的用户态调试(非 ptrace)API
2. ELF 修补与注入。可重定位代码注入 + 函数劫持等。
3. 类似 Sergey Bratus 和 James Oakley 的 Katana 项目的 Dwarf VM 字节码注入
4. 持续改进对损坏二进制文件的所有边缘情况的法医重建
5. 对 FreeBSD 的显式支持
6. 对 sparc、mips、arm 等架构的显式支持。目前它隐式支持许多特性
7. 回归测试套件
8. 更好的核心文件支持,即取证重建
9. API 文档
## 当前状态
开发中。尚未经过全面的模糊测试或测试。需要具备扎实 C 技能的 ELF 黑客和逆向工程师。
已经使用 AFL 进行了多次模糊测试迭代。目前我正在修复代码并修补问题,
一个新的 alpha 版本标签将很快提交(预计在 2018 年 10 月中旬)。
感谢所有为模糊测试做出贡献的人。我将创建一个合适的区域来列出那些应该被列为贡献者的人(也许创建一个 Authors 文件)。
## 开发规则
遵循 NetBSD 编码风格,提交 PR 以供审查。
## API 文档
最好的文档是阅读 libelfmaster/examples 中的代码。
elfparse.c 是 readelf 的一个简单版本,但并未使用每个 API 函数,
因此请务必查看所有示例。这个 API 需要有人来编写文档。
标签:0day挖掘, 32位64位兼容, C语言库, DAST, ELF修补, ELF加载, ELF注入, ELF解析, HIDS, PT_GNU_EH_FRAME, XML 请求, YAML, 二进制分析, 二进制取证, 云安全监控, 云安全运维, 云资产清单, 内核安全, 取证重建, 子域名枚举工具, 安全库, 安全开发, 客户端加密, 恶意软件分析, 无调试器调试, 符号表恢复, 节头重建, 逆向工程, 静态分析