Obfuscation resilient binary code reuse through trace-oriented programming

  • Authors:
  • Junyuan Zeng;Yangchun Fu;Kenneth A. Miller;Zhiqiang Lin;Xiangyu Zhang;Dongyan Xu

  • Affiliations:
  • The University of Texas at Dallas, Richardson, TX, USA;The University of Texas at Dallas, Richardson, TX, USA;The University of Texas at Dallas, Richardson, TX, USA;The University of Texas at Dallas, Richardson, TX, USA;Purdue University, West Lafayette, IN, USA;Purdue University, West Lafayette, IN, USA

  • Venue:
  • Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

With the wide existence of binary code, it is desirable to reuse it in many security applications, such as malware analysis and software patching. While prior approaches have shown that binary code can be extracted and reused, they are often based on static analysis and face challenges when coping with obfuscated binaries. This paper introduces trace-oriented programming (TOP), a general framework for generating new software from existing binary code by elevating the low-level binary code to C code with templates and inlined assembly. Different from existing work, TOP gains benefits from dynamic analysis such as resilience against obfuscation and avoidance of points-to analysis. Thus, TOP can be used for malware analysis, especially for malware function analysis and identification. We have implemented a proof-of-concept of TOP and our evaluation results with a range of benign and malicious software indicate that TOP is able to reconstruct source code from binary execution traces in malware analysis and identification, and binary function transplanting.