Egalito:二进制重编译器,助力安全加固
项目介绍
Egalito 是一款专为实现安全加固而设计的二进制重编译器。它通过使用低级中间表示(EIR 或 Chunk),准确地反映了程序二进制的所有方面。Egalito 利用现代位置无关二进制文件中的元数据,将所有跨引用转换为 EIR 链接,从而允许代码在没有任何额外开销的情况下进行任意重排。Egalito 支持生成 ELF 或联合 ELF 格式的输出,并提供了一个自定义加载器,使其能够引导进入一个完全自托管的环境(解析和转换 libegalito.so)。
项目技术分析
Egalito 的核心技术在于其低级中间表示(EIR)和元数据的使用。通过将二进制文件中的所有跨引用转换为 EIR 链接,Egalito 能够实现代码的任意重排,而不会引入额外的开销。这种技术不仅提高了代码的灵活性,还为安全加固提供了强大的支持。此外,Egalito 的自定义加载器和 ELF 生成功能,使其能够在不同的环境中无缝运行,进一步增强了其应用的广泛性。
项目及技术应用场景
Egalito 的应用场景非常广泛,特别是在需要对二进制文件进行安全加固的领域。以下是一些典型的应用场景:
- 安全加固:通过重编译二进制文件,Egalito 可以帮助开发者实现代码的混淆和重排,从而提高程序的安全性。
- 逆向工程防御:Egalito 的重排功能可以有效防止逆向工程,保护知识产权。
- 自定义加载器:Egalito 的自定义加载器可以用于实现特定的运行环境,适用于嵌入式系统或特殊用途的软件。
- 跨平台支持:Egalito 支持 x86_64、aarch64 和 RISC-V 架构,使其在多平台环境中具有广泛的应用潜力。
项目特点
- 低级中间表示:Egalito 使用 EIR