paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Bridging the Gap between Real-World and Formal Binary Lifting through Filtered-Simulation

通过 Filtered-Simulation 弥合真实世界与形式化二进制提升之间的差距
OOPSLA 9(OOPSLA1)2025匹配度 3/10 · 论文属于形式化验证与二进制提升,涉及程序语义和静态分析背景,但与用户核心关注的 LLM/Agent 与静态分析、形式化验证的交叉,以及浮点程序分析、贝叶斯程序分析均无直接关联。引用 2 inbox
Jihee Park, Insu Yun, Sukyoung Ryu
crossref: 2026-09-10

AI 速览

一句话:提出 filtered-simulation 刻画真实二进制提升中启发式假设的正确性,并形式化三种核心变换。

真实世界的二进制提升工具常依赖启发式假设,难以用严格的形式化方法保证正确性,而已有形式验证的提升器又对输入二进制限制过强。本文提出对真实二进制提升正确性的新解释:将提升过程分解为一系列变换,每个变换引入新的抽象特征,并用 filtered-simulation(双模拟的变体)定义变换前后程序间的正确性。作者形式化了控制流图重建、抽象栈重建和函数输入/输出识别三种核心变换,并实现面向 x86-64 Linux 二进制的 fible。实验表明,fible 能正确提升用 GCC 编译的 Coreutils 和 CGC 数据集。

问题
形式验证的二进制提升器对二进制要求过严,而真实提升器依赖启发式假设,导致其提升代码的正确性难以用形式方法保证。
方法
提出 filtered-simulation(双模拟变体)来定义提升变换的正确性,将真实二进制提升分解为引入新抽象特征的一系列变换,并形式化控制流图重建、抽象栈重建和函数输入/输出识别。
评估
实现 x86-64 Linux 二进制提升工具 fible,并在 GCC 编译的 Coreutils 和 CGC 数据集上验证其能正确提升。
原文摘要(Abstract)

Binary lifting is a key component in binary analysis tools. In order to guarantee the correctness of binary lifting, researchers have proposed various formally verified lifters. However, such formally verified lifters have too strict requirements on binary, which do not sufficiently reflect real-world lifters. In addition, real-world lifters use heuristic-based assumptions to lift binary code, which makes it difficult to guarantee the correctness of the lifted code using formal methods. In this paper, we propose a new interpretation of the correctness of real-world binary lifting. We formalize the process of binary lifting with heuristic-based assumptions used in real-world lifters by dividing it into a series of transformations, where each transformation represents a lift with new abstraction features. We define the correctness of each transformation as filtered-simulation , which is a variant of bi-simulation, between programs before and after transformation. We present three essential transformations in binary lifting and formalize them: (1) control flow graph reconstruction, (2) abstract stack reconstruction, and (3) function input/output identification. We implement our approach for x86-64 Linux binaries, named fible , and demonstrate that it can correctly lift Coreutils and CGC datasets compiled with GCC.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot3178,
  title = {Bridging the Gap between Real-World and Formal Binary Lifting through Filtered-Simulation},
  author = {Jihee Park and Insu Yun and Sukyoung Ryu},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA1},
  year = {2025},
  doi = {10.1145/3720524}
}