Detecting Code Clones in Binary Executables

被引:0
|
作者
Saebjornsen, Andreas [1 ]
Willcock, Jeremiah
Panas, Thomas
Quinlan, Daniel
Su, Zhendong [1 ]
机构
[1] Univ Calif Davis, Davis, CA 95616 USA
关键词
software tools; clone detection; binary analysis; ALGORITHMS;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Large software projects contain significant code duplication, mainly due to copying and pasting code. Many techniques have been developed to identify duplicated code to enable applications such as refactoring, detecting bugs, and protecting intellectual property. Because source code is often unavailable, especially for third-party software, finding duplicated code in binaries becomes particularly important. However, existing techniques operate primarily on source code, and no effective tool exists for binaries. In this paper, we describe the first practical clone detection algorithm for binary executables. Our algorithm extends an existing tree similarity framework based on clustering of characteristic vectors of labeled trees with novel techniques to normalize assembly instructions and to accurately and compactly model their structural information. We have implemented our technique and evaluated it on Windows XP system binaries totaling over 50 million assembly instructions. Results show that it is both scalable and precise: it analyzed Windows XP system binaries in a few hours and produced few false positives. We believe our technique is a practical, enabling technology for many applications dealing with binary code.
引用
收藏
页码:117 / 127
页数:11
相关论文
共 50 条
  • [1] Detecting and Analyzing Code Clones in HDL
    Uemura, Kyohei
    Mori, Akira
    Fujiwara, Kenji
    Choi, Eunjong
    Iida, Hajimu
    2017 IEEE 11TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES (IWSC), 2017, : 1 - 7
  • [2] BinClone: Detecting Code Clones in Malware
    Farhadi, Mohammad Reza
    Fung, Benjamin C. M.
    Charland, Philippe
    2014 EIGHTH INTERNATIONAL CONFERENCE ON SOFTWARE SECURITY AND RELIABILITY, 2014, : 78 - 87
  • [3] BinSign: Fingerprinting Binary Functions to Support Automated Analysis of Code Executables
    Nouh, Lina
    Rahimian, Ashkan
    Mouheb, Djedjiga
    Debbabi, Mourad
    Hanna, Aiman
    ICT SYSTEMS SECURITY AND PRIVACY PROTECTION, SEC 2017, 2017, 502 : 341 - 355
  • [4] Detecting Integer Overflow in Windows Binary Executables based on Symbolic Execution
    Zhang, Bin
    Feng, Chao
    Wu, Bo
    Tang, Chaojing
    2016 17TH IEEE/ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING AND PARALLEL/DISTRIBUTED COMPUTING (SNPD), 2016, : 385 - 390
  • [5] Clone-Slicer: Detecting Domain Specific Binary Code Clones through Program Slicing
    Xue, Hongfa
    Venkataramani, Guru
    Lan, Tian
    FEAST'18: PROCEEDINGS OF THE 2018 WORKSHOP ON FORMING AN ECOSYSTEM AROUND SOFTWARE TRANSFORMATION, 2018, : 27 - 33
  • [6] A BINARY CODE FOR DETECTING SUPERPOSITION
    HANAKI, SI
    ELECTRONICS & COMMUNICATIONS IN JAPAN, 1968, 51 (07): : 179 - &
  • [7] Code Clone Graph Metrics for Detecting Diffused Code Clones
    Fukushima, Yoshihiko
    Kula, Raula
    Kawaguchi, Shinji
    Fushida, Kyohei
    Nagura, Masataka
    Iida, Hajimu
    APSEC 09: SIXTEENTH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2009, : 373 - 380
  • [8] Detecting Code Clones with Gaps by Function Applications
    Matsushita, Tsubasa
    Sasano, Isao
    PROCEEDINGS OF THE 2017 ACM SIGPLAN WORKSHOP ON PARTIAL EVALUATION AND PROGRAM MANIPULATION (PEPM'17), 2017, : 12 - 22
  • [9] srcClone: Detecting Code Clones via Decompositional Slicing
    Alomari, Hakam W.
    Stephan, Matthew
    2020 IEEE/ACM 28TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC, 2020, : 274 - 284
  • [10] Selecting a Set of Appropriate Metrics for Detecting Code Clones
    Bansal, Geetika
    Tekchandani, Rajkumar
    2014 SEVENTH INTERNATIONAL CONFERENCE ON CONTEMPORARY COMPUTING (IC3), 2014, : 484 - 488