Program Characterization Using Runtime Values and Its Application to Software Plagiarism Detection
Abstract
Illegal code reuse has become a serious threat to the software community. Identifying similar or identical code fragments becomes much more challenging in code theft cases where plagiarizers can use various automated code transformation or obfuscation techniques to hide stolen code from being detected. Previous works in this field are largely limited in that (i) most of them cannot handle advanced obfuscation techniques, and (ii) the methods based on source code analysis are not practical since the source code of suspicious programs typically cannot be obtained until strong evidences have been collected. Based on the observation that some critical runtime values of a program are hard to be replaced or eliminated by semantics-preserving transformation techniques, we introduce a novel approach to dynamic characterization of executable programs. Leveraging such invariant values, our technique is resilient to various control and data obfuscation techniques. We show how the values can be extracted and refined to expose the critical values and how we can apply this runtime property to help solve problems in software plagiarism detection. We have implemented a prototype with a dynamic taint analyzer atop a generic processor emulator. Our value-based plagiarism detection method (VaPD) uses the longest common subsequence based similarity measuring algorithms to check whether two code fragments belong to the same lineage. We evaluate our proposed method through a set of real-world auto…
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?
VaPD characterises programs using a fingerprinting method based on values.
“VaPD implements a value-based fingerprinting method to characterise programs.”
From Academic Source Code Plagiarism Detection by Measuring Program Behavioral Similarity (2021) · cites this paper as [55]
VaPD determines program similarity by analysing, at runtime, the values held in memory while a program executes.
“VaPD identifies program similarity through runtime execution analysis of the values stored in memory during program execution.”
From Academic Source Code Plagiarism Detection by Measuring Program Behavioral Similarity (2021) · cites this paper as [55]
No citation lists for this paper
No citation lists for this paper yet — checked again daily.
References 60 · Cited by 35
- Authors
- Jhi, Y.-C., Jia, X., Wang, X., Zhu, S., Liu, P., & Wu, D.
- Affiliations
- Samsung (South Korea) (KR)
- Chinese Academy of Sciences (CN)
- Pennsylvania State University (US)
- Venue
- IEEE Transactions on Software Engineering
- Published
- 2015-09-01
- Volume
- 41
- Issue
- 9
- Pages
- 925-943
- ISSN
- 0098-5589 (ISSN-L)
- 1939-3520
- OpenAlex
- W2067982285
- Cited by
- 35
- References
- 60
- Citations by year
- 2026: 1 · 2024: 2 · 2023: 1 · 2022: 5 · 2021: 4 · 2020: 8 · 2019: 2 · 2018: 5 · 2017: 4 · 2016: 3
- FWCI
- 10.75
- Type
- journal article
- Language
- en
- Open access
- closed
- Locations
- IEEE Transactions on Software Engineering (publishedVersion)
- Funders
- US National Science Foundation (NSF) (CCF-1320605, NSF CNS-1223710, NSF CNS-0905131, NSF CNS-0916469, AFOSR FA9550-07-1-0527, ARO W911NF-09-1-0525, ARO W911NF-13-1-0421)
- AFRL (FA8750-08-C-0137)
- National Natural Science Foundation of China (NSFC) (61100228)
- National High-tech R&D Program of China (2012AA013101)
- Strategic Priority Research Program of the Chinese Academy of Sciences (XDA06030601, XDA06010701)
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Artificial Intelligence › Security and Verification in Computing
- Social Sciences › Safety Research › Academic integrity and plagiarism
- Keywords
- software plagiarism detection, code obfuscation, dynamic taint analysis, program characterization, code reuse, longest common subsequence, thicket
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