kirancodes.me
To Proof Maintenance & Beyond!

PEM: Representing Binary Program Semantics for Similarity Analysis via a Probabilistic Execution Model

Xiangzhe Xu, Zhou Xuan, Shiwei Feng, Siyuan Cheng, Yapeng Ye, Qingkai Shi, Guanhong Tao, Le Yu, Zhuo Zhang, Xiangyu Zhang

Abstract

Binary similarity analysis determines if two binary executables are from the same source program. Existing techniques leverage static and dynamic program features and may utilize advanced Deep Learning techniques. Although they have demonstrated great potential, the community believes that a more effective representation of program semantics can further improve similarity analysis. In this paper, we propose a new method to represent binary program semantics. It is based on a novel probabilistic execution engine that can effectively sample the input space and the program path space of subject binaries. More importantly, it ensures that the collected samples are comparable across binaries, addressing the substantial variations of input specifications. Our evaluation on 9 real-world projects with 35k functions, and comparison with 6 state-of-the-art techniques show that PEM can achieve a precision of 96% with common settings, outperforming the baselines by 10-20%.

BibTeX
@inproceedings{Xu-al:FSE23,
  author    = {Xiangzhe Xu and
               Zhou Xuan and
               Shiwei Feng and
               Siyuan Cheng and
               Yapeng Ye and
               Qingkai Shi and
               Guanhong Tao and
               Le Yu and
               Zhuo Zhang and
               Xiangyu Zhang},
  title     = {{PEM:} Representing Binary Program Semantics for Similarity Analysis via a Probabilistic Execution Model},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {401--412},
  publisher = {{ACM}},
  year      = {2023},
}

Related papers