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, 二进制分析, 二进制取证, 云安全监控, 云安全运维, 云资产清单, 内核安全, 取证重建, 子域名枚举工具, 安全库, 安全开发, 客户端加密, 恶意软件分析, 无调试器调试, 符号表恢复, 节头重建, 逆向工程, 静态分析