paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Principled Composition of Function Variants for Dynamic Software Diversity and Program Protection

函数变体的原则化组合:面向动态软件多样性与程序保护
ASE Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering2022匹配度 2/10 · 论文属于编译器程序变换与软件多样化/安全领域,使用LLVM实现函数变体间控制与状态转移,与用户关注的静态分析、LLM/Agent交叉、浮点程序分析、贝叶斯程序分析均无直接关联。引用 0 inbox
Giacomo Priamo, Daniele Cono D'Elia, Leonardo Querzoni
crossref: 2026-09-12

AI 速览

一句话:提出LLVM编译技术,使C程序能在多个函数变体间持续转移控制与状态,实现动态软件多样化与程序保护。

人工软件多样化在软件工程与安全场景中有广泛用途,通过随机化实现细节可提高攻击者成本。本文关注一种有前景的方向:让同一程序对同一输入的两次运行产生本质上不同的指令轨迹。受托管运行时栈上替换(on-stack replacement)设计启发,作者研究如何转换C程序,使其运行时能在多个函数变体之间连续转移控制流与程序状态。论文讨论该目标的技术挑战,并提出有效的编译技术,能够在不修改现有静态多样化技术的前提下复用它们。作者在LLVM中实现该方法,并在合成基准与真实世界程序上评估。

问题
如何自动多样化软件,使同一输入的不同运行产生本质上不同的指令轨迹,从而提升攻击者分析成本与程序保护效果。
方法
借鉴托管运行时的栈上替换设计,提出编译技术将C程序转换为可在多个函数变体间连续转移控制流与程序状态的动态多样化形式,并复用现有静态多样化技术而无需修改。
评估
在LLVM中实现该方法,并在合成基准与真实世界程序上进行评估。
原文摘要(Abstract)

Artificial diversification of a software program can be a versatile tool in a wide range of software engineering and security scenarios. For example, randomizing implementation aspects can increase the costs for attackers as it prevents them from benefiting of precise knowledge of their target. A promising angle for diversification can be having two runs of a program on the same input yield inherently diverse instruction traces. Inspired by on-stack replacement designs for managed runtimes, in this paper we study how to transform a C program to realize continuous transfers of control and program state among function variants as they run. We discuss the technical challenges toward such goal and propose effective compiler techniques for it that enable the re-use of existing techniques for static diversification with no modifications. We implement our approach in LLVM and evaluate it on both synthetic and real-world subjects.

链接与引用

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

BibTeX
@inproceedings{paperbot7275,
  title = {Principled Composition of Function Variants for Dynamic Software Diversity and Program Protection},
  author = {Giacomo Priamo and Daniele Cono D'Elia and Leonardo Querzoni},
  booktitle = {ASE},
  year = {2022},
  doi = {10.1145/3551349.3559553}
}