Semantics-based obfuscation-resilient binary code similarity comparison with applications to software plagiarism detection
Abstract
Existing code similarity comparison methods, whether source or binary code based, are mostly not resilient to obfuscations. In the case of software plagiarism, emerging obfuscation techniques have made automated detection increasingly difficult. In this paper, we propose a binary-oriented, obfuscation-resilient 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 semantics equivalence (and similarity) of two blocks can be checked by a theorem prover. We then model the semantics 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 and our experimental results show that our method is effective and practical when applied to real-world software.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Cop finds similar components between two programs by analysing their semantics, that is behaviour, using symbolic execution.
“Cop identifies similar components between two programs by analysing semantics (behaviour) through symbolic execution.”
From Academic Source Code Plagiarism Detection by Measuring Program Behavioral Similarity (2021) · cites this paper as [53]
Cites
Schleimer, S., S, W. D., & Aiken, A. (2003) · Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data · doi:10.1145/872757.872770 · Cited by 1,099 · cited 1× · see citing works
“Moss is a system for determining the similarity of programs based on the winnowing algorithm [45] for document fingerprinting.”
Background
Flagged first, then by citations
Cited by
Sorted by citations
Luo, L., Ming, J., Wu, D., Liu, P., & Zhu, S. (2017) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2017.2655046 · Cited by 144 · see citing works
Self-citationA comparison of code similarity analysers
Ragkhitwetsagul, C., Krinke, J., & Clark, D. (2018) · Empirical Software Engineering · doi:10.1007/s10664-017-9564-7 · Cited by 122 · see citing works
Academic Source Code Plagiarism Detection by Measuring Program Behavioral Similarity
Cheers, H., Lin, Y., & Smith, S. P. (2021) · IEEE Access · doi:10.1109/access.2021.3069367 · Cited by 59 · see citing works
“Such tools implement similar methods in how program similarity is analysed, for example similar tools include: Cop [35], [53], LoPD [34], [54], and VaPD [32], [55].”
MethodMossad: defeating software plagiarism detection
Devore-McDonald, B., & Berger, E. D. (2020) · Proceedings of the ACM on Programming Languages · doi:10.1145/3428206 · Cited by 35 · see citing works
Ming, J., Zhang, F., Wu, D., Liu, P., & Zhu, S. (2016) · IEEE Transactions on Reliability · doi:10.1109/tr.2016.2570554 · Cited by 33 · see citing works
Self-citation
- Authors
- Luo, L., Ming, J., Wu, D., Liu, P., & Zhu, S.
- Affiliations
- Pennsylvania State University (US)
- Venue
- Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
- Publisher
- ACM
- Published
- 2014-11-11
- Pages
- 389-400
- OpenAlex
- W2009614414
- Cited by
- 220
- References
- 1
- Citations by year
- 2026: 7 · 2025: 23 · 2024: 14 · 2023: 21 · 2022: 20 · 2021: 35 · 2020: 24 · 2019: 20 · 2018: 20 · 2017: 17 · 2016: 15 · 2015: 4
- FWCI
- 10.24
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) (publishedVersion)
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Social Sciences › Safety Research › Academic integrity and plagiarism
- Physical Sciences › Computer Science › Artificial Intelligence › Security and Verification in Computing
- Keywords
- code obfuscation, software plagiarism detection, longest common subsequence, basic blocks, program semantics, theorem proving, approximate string matching
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review