Proj CMI Paper Reading: SoK: Demystifying Binary Lifters Through the Lens of Downstream Applications

Abstract

背景:Binary lifters将可执行文件转换为编译器框架的中间表示 (IR)。恢复的 IR 代码通常被认为是“分析友好的”,将低级代码分析与完善的编译器基础设施连接起来。随着多年的发展,二元升降器在各种安全、系统和软件(逆向)工程应用中变得越来越流行。最近的研究还报告了非常有希望的结果,表明二进制提升器可以生成具有正确功能的 LLVM IR 代码,即使对于复杂的情况也是如此。
本文:从orthogonal和higly demanding的角度对binary lifters做了深入研究,揭示了提升的 LLVM IR 代码在安全分析场景中支持关键下游应用程序的能力。
数据集:由各种编译器和优化以及不同架构生成的总共 252,063 个可执行文件
研究对象:四种流行的静态和动态 LLVM IR lifters
方法:

  1. 通过编译 C/C++ 程序或提升相应的可执行文件来生成两段 LLVM IR 代码,将这两段 LLVM IR 代码提供给三个关键下游应用程序(指针分析、可辨别性分析和反编译),并确定是否会生成不一致的分析结果。
  2. 比较了支持lifters的方法与仅二进制工具在三个安全任务(即清理、二进制差异和 C 反编译)中的性能
  3. 使用提升的 IR 代码提高指针分析准确性的实用方法-使用和增强debin

结果:

  1. 提供了非常适合可辨别性分析和反编译的 IR 代码,并表明这种二进制提升器可以应用于常见的基于相似性或代码理解的安全分析(例如,binary diffing)
  2. 似乎不适合严格的静态分析(例如指针分析)
posted @ 2022-07-28 20:51  雪溯  阅读(57)  评论(0编辑  收藏  举报