# Elipmoc：以太坊智能合约的高级反编译

> Elipmoc 将以太坊虚拟机字节码反编译为结构化的三地址中间表示，服务于安全分析与逆向工程。它由基于 Datalog 的 Gigahorse 反编译器演进而来，新增事务上下文敏感性、结合路径合并的路径敏感函数参数与返回值推断，以及完全上下文敏感的私有函数重建。作者在 2021 年 4 月至 9 月间首次部署于主网的 5,000 个唯一合约的均匀随机样本上，报告 99.5% 的合约操作数被完全解析（Gigahorse 为 62.8%），识别出的唯一外部调用签名比 Etherscan 的 Panoramix 多 67%，且反编译速度快 5 倍以上。

- 作者：Neville Grech; Sifis Lagouvardos; Ilias Tsatiris; Yannis Smaragdakis
- 原标题：Elipmoc: Advanced Decompilation of Ethereum Smart Contracts
- 发表载体：Proceedings of the ACM on Programming Languages (OOPSLA 2022)
- 发表状态：期刊论文
- 出版／提交日期：2022 年 4 月 29 日
- 日期依据：ACM 提交的 Crossref 元数据将 published／纸质与在线出版日期均记为 2022-04-29，文章页脚标注为 2022 年 4 月；本条目不以 OOPSLA 会议日期替代该出版日期。
- DOI：10.1145/3527321
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始论文：<https://dl.acm.org/doi/10.1145/3527321>
- PDF：<https://yanniss.github.io/elipmoc-oopsla22.pdf>
- 代码：<https://github.com/nevillegrech/gigahorse-toolchain>
- BibTeX：<https://awesomerea.org/papers/citations/paper-elipmoc.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-elipmoc/>
- 记录 JSON：<https://awesomerea.org/papers/paper-elipmoc/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-elipmoc/index.md)

## 研究范围与局限

仅面向 EVM 字节码。评测指标包括操作数解析、结构化控制流、函数与跳转目标精度、外部调用与事件覆盖率、超时及速度，对比对象为 2022 年的 Gigahorse 产物与 Panoramix；这些指标不衡量与原始 Solidity 源码的等价性或源码恢复，输出也是三地址中间表示而非可重新编译的代码。实验使用 2021 年五个月部署窗口内的一个 5,000 合约样本、每个合约 120 秒的时限以及 Souffle 2.0.2。未与 JEB、Trustlook SECaaS 和 EtherSolve 比较，EtherVM、Porosity 与 Vandal 则因较弱或已停止维护而被排除。基于 Elipmoc 的漏洞发现被描述为端到端影响，并非系统性评测。

## 与本合集的关联

补充被 DiSCo 用作基线的静态 EVM 字节码反编译器，扩展本书目对智能合约反编译的覆盖。

## 发表与复核说明

Crossref 与作者托管的最终版 PDF 在四位作者顺序、DOI、第 6 卷、OOPSLA1 期及页码 1–27 上一致；PDF 将文章编号列为 77，Crossref 记录其采用 CC BY 4.0 许可。Crossref 标题为句首大写形式，PDF 则为标题式大写。未找到 arXiv 预印本。代码链接是实现 Elipmoc 的 Gigahorse 工具链，其 README 引用本论文及 2025 年介绍后续改动的另一篇论文。在所审阅的 master 提交 1b06cef（2026-09-14）中，LICENSE 文件为 BSD 3-Clause，并包含在各文件中标注的悉尼大学材料，而 GitHub API 报告为 NOASSERTION。当前环境需要递归子模块、Souffle 2.3 或 2.4.1、Boost、Z3，以及通过 uv 提供的 Python 3.13，不同于论文使用的 Souffle 2.0.2 与 Python 3.8.2。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/3527321>
2. <https://api.crossref.org/works/10.1145/3527321>
3. <https://yanniss.github.io/elipmoc-oopsla22.pdf>
4. <https://github.com/nevillegrech/gigahorse-toolchain/blob/1b06cef82f0a29790e87f576eba6d6d793170d70/README.md>
5. <https://github.com/nevillegrech/gigahorse-toolchain/blob/1b06cef82f0a29790e87f576eba6d6d793170d70/LICENSE>

## 关于此条目

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