Using Reduced Execution Flow Graph to Identify Library Functions in Binary Code

被引:19
作者
Qiu, Jing [1 ]
Su, Xiaohong [1 ]
Ma, Peijun [1 ]
机构
[1] Harbin Inst Technol, Sch Comp Sci & Technol, Harbin 150001, Peoples R China
基金
中国国家自然科学基金;
关键词
Reverse engineering; static analysis; inline function; library function identification; subgraph isomorphism and graph mining;
D O I
10.1109/TSE.2015.2470241
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Discontinuity and polymorphism of a library function create two challenges for library function identification, which is a key technique in reverse engineering. A new hybrid representation of dependence graph and control flow graph called Execution Flow Graph (EFG) is introduced to describe the semantics of binary code. Library function identification turns to be a subgraph isomorphism testing problem since the EFG of a library function instance is isomorphic to the sub-EFG of this library function. Subgraph isomorphism detection is time-consuming. Thus, we introduce a new representation called Reduced Execution Flow Graph (REFG) based on EFG to speed up the isomorphism testing. We have proved that EFGs are subgraph isomorphic as long as their corresponding REFGs are subgraph isomorphic. The high efficiency of the REFG approach in subgraph isomorphism detection comes from fewer nodes and edges in REFGs and new lossless filters for excluding the unmatched subgraphs before detection. Experimental results show that precisions of both the EFG and REFG approaches are higher than the state-of-the-art tool and the REFG approach sharply decreases the processing time of the EFG approach with consistent precision and recall.
引用
收藏
页码:187 / 202
页数:16
相关论文
共 26 条
[1]  
Aho AlfredV., 2007, Compilers: principles, techniques, tools, V1009
[2]   SIGMA: A Semantic Integrated Graph Matching Approach for identifying reused functions in binary code [J].
Alrabaee, Saed ;
Shirani, Paria ;
Wang, Lingyu ;
Debbabi, Mourad .
DIGITAL INVESTIGATION, 2015, 12 :S61-S71
[3]  
[Anonymous], 1979, COMPUTERS INTRACTABI
[4]  
[Anonymous], 1978, Structure of Computers and Computations
[5]  
[Anonymous], 2014, IDA PRODISASSEMBLER
[6]  
Blankstein A., 2009, PARALLEL SUBGRAPH IS
[7]  
Bruschi D, 2006, LECT NOTES COMPUT SC, V4064, P129
[8]  
Cordella L. P., 1999, Proceedings 10th International Conference on Image Analysis and Processing, P1172, DOI 10.1109/ICIAP.1999.797762
[9]  
David Y, 2014, ACM SIGPLAN NOTICES, V49, P349, DOI [10.1145/2594291.2594343, 10.1145/2666356.2594343]
[10]  
Emmerik M. V., 1994, FITTR199402 QUEENSL