2012
DOI: 10.1587/transinf.e95.d.565
|View full text |Cite
|
Sign up to set email alerts
|

Analyzing Stack Flows to Compare Java Programs

Abstract: SUMMARYThis paper presents a method for comparing and detecting clones of Java programs by analyzing program stack flows. A stack flow denotes an operational behavior of a program by describing individual instructions and stack movements for performing specific operations. We analyze stack flows by simulating the operand stack movements during execution of a Java program. Two programs for detection of clones of Java programs are compared by matching similar pairs of stack flows in the programs. Experiments wer… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2014
2014
2020
2020

Publication Types

Select...
4
2

Relationship

0
6

Authors

Journals

citations
Cited by 6 publications
(5 citation statements)
references
References 18 publications
(28 reference statements)
0
5
0
Order By: Relevance
“…For R2, most dynamic analysis binary based approaches, (e.g., DYKIS [30], TOB [28], TreSB [27], and LoPD [21]) would fail because they detect whole program plagiarism and only generate a similarity score. The approaches based on static analysis (e.g., SKB [22], SWKB [33], SFB [17] and WSPB [18]) can satisfy R2, because static analysis make it possible to be applied at different granularities, such as basic blocks, functions, which can be detected locally.…”
Section: Recent State Of the Art And Practicementioning
confidence: 99%
See 1 more Smart Citation
“…For R2, most dynamic analysis binary based approaches, (e.g., DYKIS [30], TOB [28], TreSB [27], and LoPD [21]) would fail because they detect whole program plagiarism and only generate a similarity score. The approaches based on static analysis (e.g., SKB [22], SWKB [33], SFB [17] and WSPB [18]) can satisfy R2, because static analysis make it possible to be applied at different granularities, such as basic blocks, functions, which can be detected locally.…”
Section: Recent State Of the Art And Practicementioning
confidence: 99%
“…AST [35] based on abstract syntax tree only partially satisfy R3, as a result of failing to handle advanced code obfuscation, for example, instruction rearrangement, statement splitting. SFB [17] and WSPB [18] also only partially satisfy R3, because they are vulnerable to control flow obfuscation. GPLAG [19] which relies the analysis on Program Dependency Graphs (PDGs) can perform better robustness against advanced semantics-preserving code obfuscation techniques and satisfies R3.…”
Section: Recent State Of the Art And Practicementioning
confidence: 99%
“…Decision maker decides plagiarism by the average value ψ of multiple similarity scores against a predefined threshold ε. We adopt a default value of ε = 0.25 as in previous studies [11], [16], [31], [32]. That is, two programs are classified as independent if ψ ≤ 0.25, as plagiarized if ψ ≥ 0.75.…”
Section: System Design and Implementationmentioning
confidence: 99%
“…Lim [34] used control flow information that reflected runtime behaviors to supplement static approaches. Recently he proposed to analyze stack flows obtained by simulating operand stack movements to detect copies [31]. Yet they are only available to Java programs.…”
Section: Static Binary Code Based Birthmarksmentioning
confidence: 99%
“…Lim proposed to use control flow information that reflects runtime behaviors to supplement static approaches [13]. More recently Lim proposed to analyze stack flows obtained by simulating the operand stack movements to detect copies [12].…”
Section: Related Workmentioning
confidence: 99%