arrow
Return

Semantics-Based Obfuscation-Resilient Binary Code Similarity Comparison with Applications to Software and Algorithm Plagiarism Detection

delete2017-12-01
delete85
delete
OA
AI
L
Lannan Luo *
J
Jiang Ming
D
Dinghao Wu
P
Peng Liu
S
Sencun Zhu
DOI:10.1109/TSE.2017.2655046delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
Existing code similarity comparison methods, whether source or binary code based, are mostly not resilient to obfuscations. Identifying similar or identical code fragments among programs is very important in some applications. For example, one application is to detect illegal code reuse. In the code theft cases, emerging obfuscation techniques have made automated detection increasingly difficult. Another application is to identify cryptographic algorithms which are widely employed by modern malware to circumvent detection, hide network communications, and protect payloads among other purposes. Due to diverse coding styles and high programming flexibility, different implementation of the same algorithm may appear very distinct, causing automatic detection to be very hard, let alone code obfuscations are sometimes applied. In this paper, we propose a binary-oriented, obfuscation-resilient binary code similarity comparison method based on a new concept, longest common subsequence of semantically equivalent basic blocks, which combines rigorous program semantics with longest common subsequence based fuzzy matching. We model the semantics of a basic block by a set of symbolic formulas representing the input-output relations of the block. This way, the semantic equivalence (and similarity) of two blocks can be checked by a theorem prover. We then model the semantic similarity of two paths using the longest common subsequence with basic blocks as elements. This novel combination has resulted in strong resiliency to code obfuscation. We have developed a prototype. The experimental results show that our method can be applied to software plagiarism and algorithm detection, and is effective and practical to analyze real-world software.
Keywords:
Software plagiarism detection
algorithm detection
binary code similarity comparison
obfuscation
symbolic execution
constraint solving
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

IEEE Transactions on Software Engineering cover
IEEE Transactions on Software Engineering
IF:
5.6
Papers:
2.8K
Citations:
1.1W

Organization

P
pennsylvania state university - university park
Scholars:
1.3W
Papers: 1.0W
Citations: 24
P
Pennsylvania State University
Scholars:
3.0W
Papers: 2.6W
Citations: 7.2W
P
pennsylvania commonwealth system of higher education (pcshe)
Scholars:
12.9W
Papers: 11.7W
Citations: 177
researcher View more organizations