# Egalito：与布局无关的二进制重编译

> Egalito 对去除符号的 x86-64 与 ARM64 二进制进行静态重编译，借助位置无关的可执行文件和库所携带的元数据，恢复完整的反汇编，使每一处代码与数据交叉引用都成为显式链接。其与布局无关的中间表示 EIR 贴近机器码，因此重新生成的输出可预测，同时提供更高层的视图用于分析；对于没有元数据的跳转表，则借助数据流分析推断。由于不受原始布局约束，工具可以自由移动或改写代码；作者构建了九种工具，包括由 Egalito 变换自身的持续代码随机化、retpoline 防御以及 Intel CET 的软件模拟。作者报告，在来自 172 个 Debian 软件包的 867 个可执行文件与库中，有 866 个的跳转表与编译器给出的真实结果一致；变换后的 149 个软件包中有 90 个通过全部测试；在 SPEC CPU 2006 上性能提升 1.7%。

- 作者：David Williams-King; Hidenori Kobayashi; Kent Williams-King; Graham Patterson; Frank Spano; Yu Jian Wu; Junfeng Yang; Vasileios P. Kemerlis
- 原标题：Egalito: Layout-Agnostic Binary Recompilation
- 发表载体：ASPLOS 2020
- 发表状态：会议论文
- 出版／提交日期：2020 年 3 月 9 日
- 日期依据：采用 ACM 在 Crossref 登记的印刷出版日期；在线出版日期在元数据说明中单独记录。本条目不采用 3 月 16—20 日的会议日期。
- DOI：10.1145/3373376.3378470
- 来源复核于：2026-10-19
- 收录于：2026-10-30
- 原始论文：<https://dl.acm.org/doi/10.1145/3373376.3378470>
- PDF：<https://www.cs.columbia.edu/~junfeng/papers/egalito-asplos20.pdf>
- 代码：<https://github.com/columbia/egalito>
- BibTeX：<https://awesomerea.org/papers/citations/paper-egalito.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-egalito/>
- 记录 JSON：<https://awesomerea.org/papers/paper-egalito/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-egalito/index.md)

## 研究范围与局限

Egalito 依赖位置无关代码提供足够的元数据；除非像作者对 Fuchsia 内核的实验那样提供完整重定位信息，非位置无关的输入不在该方法范围内。跳转表恢复依靠数据流分析和相邻性启发式，因此不能保证反汇编完整；Debian 研究中唯一的失败案例是深度嵌套的跳转表。作者列出的不支持情形包括混淆代码、将数据嵌入代码符号的内联汇编、C++ 异常、符号版本控制，以及 Go 或 V8 二进制。部分软件包测试失败即归因于这些特性。论文发表时 RISC-V 支持尚未完成。columbia/egalito 的主分支自 2020 年 6 月以来没有新提交，因此不代表项目仍在维护。

## 与本合集的关联

补充静态整体二进制重编译研究：在不保留原始布局的前提下，从恢复出的低层中间表示重新生成可运行程序，与合集中的反编译及提升研究互补。

## 发表与复核说明

ACM 元数据记载印刷出版于 2020-03-09，在线出版于 2020-03-13，页码为 133–147，八位作者顺序如本条目所列；Crossref 将标题拆分为“Egalito”与副标题“Layout-Agnostic Binary Recompilation”。哥伦比亚大学托管的 PDF 是带 DOI 的 15 页 ACM 排版版本。论文称 Egalito 以 GPL v3 发布于 egalito.org。columbia/egalito 提交（2020-06-01；仓库最后推送于 2023-08-01）采用 GPL-3.0 许可；其 README 说明支持 x86_64 与 aarch64、RISC-V 支持仍属实验性，并在 Debian 类系统上以 make 与 g++ 构建。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/3373376.3378470>
2. <https://api.crossref.org/works/10.1145/3373376.3378470>
3. <https://www.cs.columbia.edu/~junfeng/papers/egalito-asplos20.pdf>
4. <https://github.com/columbia/egalito/blob/c5bccb4a13dc0dea7beb5751dd4f334280b36b91/README>
5. <https://github.com/columbia/egalito/blob/c5bccb4a13dc0dea7beb5751dd4f334280b36b91/LICENSE>

## 关于此条目

已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
