Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3453483.3454035acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article
Open access

Unleashing the hidden power of compiler optimization on binary code difference: an empirical study

Published: 18 June 2021 Publication History

Abstract

Hunting binary code difference without source code (i.e., binary diffing) has compelling applications in software security. Due to the high variability of binary code, existing solutions have been driven towards measuring semantic similarities from syntactically different code. Since compiler optimization is the most common source contributing to binary code differences in syntax, testing the resilience against the changes caused by different compiler optimization settings has become a standard evaluation step for most binary diffing approaches. For example, 47 top-venue papers in the last 12 years compared different program versions compiled by default optimization levels (e.g., -Ox in GCC and LLVM). Although many of them claim they are immune to compiler transformations, it is yet unclear about their resistance to non-default optimization settings. Especially, we have observed that adversaries explored non-default compiler settings to amplify malware differences.
This paper takes the first step to systematically studying the effectiveness of compiler optimization on binary code differences. We tailor search-based iterative compilation for the auto-tuning of binary code differences. We develop BinTuner to search near-optimal optimization sequences that can maximize the amount of binary code differences. We run BinTuner with GCC 10.2 and LLVM 11.0 on SPEC benchmarks (CPU2006 & CPU2017), Coreutils, and OpenSSL. Our experiments show that at the cost of 279 to 1,881 compilation iterations, BinTuner can find custom optimization sequences that are substantially better than the general -Ox settings. BinTuner's outputs seriously undermine prominent binary diffing tools' comparisons. In addition, the detection rate of the IoT malware variants tuned by BinTuner falls by more than 50%. Our findings paint a cautionary tale for security analysts that attackers have a new way to mutate malware code cost-effectively, and the research community needs to step back to reassess optimization-resistance evaluations.

References

[1]
Gogul Balakrishnan and Thomas Reps. WYSINWYX: What You See is Not What You eXecute. ACM Transactions on Programming Languages and Systems (TOPLAS), 32(6), August 2010.
[2]
Yan Shoshitaishvili, Ruoyu Wang, Christopher Salls, Nick Stephens, Mario Polino, Andrew Dutcher, John Grosen, Siji Feng, Christophe Hauser, Christopher Kruegel, and Giovanni Vigna. SoK: (State of) The Art of War: Offensive Techniques in Binary Analysis. In Proceedings of the 37th IEEE Symposium on Security and Privacy (S&P’16), 2016.
[3]
Xiaozhu Meng and Barton P. Miller. Binary Code is Not Easy. In Proceedings of the 25th International Symposium on Software Testing and Analysis (ISSTA’16), 2016.
[4]
Jian Gao, Xin Yang, Ying Fu, Yu Jiang, and Jiaguang Sun. VulSeeker: A Semantic Learning Based Vulnerability Seeker for Cross-platform Binary. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE’18), 2018.
[5]
Yaniv David, Nimrod Partush, and Eran Yahav. FirmUp: Precise Static Detection of Common Vulnerabilities in Firmware. In Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’18), 2018.
[6]
Yikun Hu, Yuanyuan Zhang, Juanru Li, and Dawu Gu. Binary Code Clone Detection Across Architectures and Compiling Configurations. In Proceedings of the 25th International Conference on Program Comprehension (ICPC’17), 2017.
[7]
Mahinthan Chandramohan, Yinxing Xue, Zhengzi Xu, Yang Liu, Chia Yuan Cho, and Tan Hee Beng Kuan. BinGo: Cross-Architecture Cross-OS Binary Search. In Proceedings of the 2016 ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE’16), 2016.
[8]
Sebastian Eschweiler, Khaled Yakdan, and Elmar Gerhards-Padilla. discovRE: Efficient Cross-Architecture Identification of Bugs in Binary Code. In Proceedings of the 23nd Annual Network and Distributed System Security Symposium (NDSS’16), 2016.
[9]
Jannik Pewny, Felix Schuster, Lukas Bernhard, Thorsten Holz, and Christian Rossow. Leveraging Semantic Signatures for Bug Search in Binary Programs. In Proceedings of the 30th Annual Computer Security Applications Conference (ACSAC’14), 2014.
[10]
Jannik Pewny, Behrad Garmany, Robert Gawlik, Christian Rossow, and Thorsten Holz. Cross-Architecture Bug Search in Binary Executables. In Proceedings of the 36th IEEE Symposium on Security and Privacy (S&P’15), 2015.
[11]
David Brumley, Pongsin Poosankam, Dawn Song, and Jiang Zheng. Automatic Patch-Based Exploit Generation is Possible: Techniques and Implications. In Proceedings of the 29th IEEE Symposium on Security and Privacy (S&P’08), 2008.
[12]
Zhengzi Xu, Bihuan Chen, Mahinthan Chandramohan, Yang Liu, and Fu Song. SPAIN: Security Patch Analysis for Binaries Towards Understanding the Pain and Pills. In Proceedings of the 39th International Conference on Software Engineering (ICSE’17), 2017.
[13]
Lei Zhao, Yuncong Zhu, Jiang Ming, Yichen Zhang, Haotian Zhang, and Heng Yin. PatchScope: Memory Object Centric Patch Diffing. In Proceedings of the 27th ACM Conference on Computer and Communications Securit (CCS’20), 2020.
[14]
Jiang Ming, Dongpeng Xu, Yufei Jiang, and Dinghao Wu. BinSim: Trace-based Semantic Binary Diffing via System Call Sliced Segment Equivalence Checking. In Proceedings of the 26th USENIX Conference on Security Symposium (USENIX Security’17), 2017.
[15]
Martial Bourquin, Andy King, and Edward Robbins. BinSlayer: Accurate Comparison of Binary Executables. In Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop (PPREW’13), 2013.
[16]
Jiyong Jang, David Brumley, and Shobha Venkataraman. BitShred: Feature Hashing Malware for Scalable Triage and Semantic Analysis. In Proceedings of the 18th ACM Conference on Computer and Communications Security (CCS’11), 2011.
[17]
Paolo Milani Comparetti, Guido Salvaneschi, Engin Kirda, Clemens Kolbitsch, Christopher Kruegel, and Stefano Zanero. Identifying Dormant Functionality in Malware Programs. In Proceedings of the 31st IEEE Symposium on Security and Privacy (S&P’10), 2010.
[18]
Matt Fredrikson, Somesh Jha, Mihai Christodorescu, Reiner Sailer, and Xifeng Yan. Synthesizing Near-Optimal Malware Specifications from Suspicious Behaviors. In Proceedings of the 31st IEEE Symposium on Security and Privacy (S&P’10), 2010.
[19]
Xin Hu, Tzi-cker Chiueh, and Kang G. Shin. Large-scale Malware Indexing Using Function-call Graphs. In Proceedings of the 16th ACM Conference on Computer and Communications Security (CCS’09), 2009.
[20]
Ulrich Bayer, Paolo Milani Comparetti, Clemens Hlauschek, Christopher Kruegel, and Engin Kirda. Scalable, behavior-based malware clustering. In Proceedings of the 16th Annual Network and Distributed System Security Symposium (NDSS’09), 2009.
[21]
Steven H. H. Ding, Benjamin C. M. Fung, and Philippe Charland. Asm2Vec: Boosting Static Representation Robustness for Binary Clone Search against Code Obfuscation and Compiler Optimization. In Proceedings of the 40th IEEE Symposium on Security and Privacy (S&P’19), 2019.
[22]
Zhenzhou Tian, Qinghua Zheng, Ting Liu, Ming Fan, Eryue Zhuang, and Zijiang Yang. Software Plagiarism Detection with Birthmarks Based on Dynamic Key Instruction Sequences. IEEE Transactions on Software Engineering, 41(12), 2015.
[23]
Lannan Luo, Jiang Ming, Dinghao Wu, Peng Liu, and Sencun Zhu. Semantics-based Obfuscation-resilient Binary Code Similarity Comparison with Applications to Software Plagiarism Detection. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE’14), 2014.
[24]
Dong-Kyu Chae, Jiwoon Ha, Sang-Wook Kim, BooJoong Kang, and Eul Gyu Im. Software Plagiarism Detection: A Graph-based Approach. In Proceedings of the 22nd ACM International Conference on Information & Knowledge Management (CIKM’13), 2013.
[25]
Xinran Wang, Yoon-Chan Jhi, Sencun Zhu, and Peng Liu. Behavior Based Software Theft Detection. In Proceedings of the 16th ACM Conference on Computer and Communications Security (CCS’09), 2009.
[26]
Andreas Sæbjørnsen, Jeremiah Willcock, Thomas Panas, Daniel Quinlan, and Zhendong Su. Detecting Code Clones in Binary Executables. In Proceedings of the 18th International Symposium on Software Testing and Analysis (ISSTA’09), 2009.
[27]
Xin Hu, Sandeep Bhatkar, Kent Griffin, and Kang G. Shin. MutantX-S: Scalable Malware Clustering Based on Static Features. In Proceedings of the 2013 USENIX Conference on Annual Technical Conference (USENIX ATC’13), 2013.
[28]
Mila Dalla Preda, Roberto Giacobazzi, Arun Lakhotia, and Isabella Mastroeni. Abstract Symbolic Automata: Mixed Syntactic/Semantic Similarity Analysis of Executables. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’15), 2015.
[29]
Rolf Rolles. Compiler Optimizations for Reverse Engineers. https://www.msreverseengineering.com/blog/2014/6/23/compiler-optimizations-for-reverse-engineers, 2014.
[30]
Sorav Bansal and Alex Aiken. Automatic Generation of Peephole Superoptimizers. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’06), 2006.
[31]
Christophe Dubach, Timothy M. Jones, Edwin V. Bonilla, Grigori Fursin, and Michael F. P. O’Boyle. Portable Compiler Optimisation Across Embedded Programs and Microarchitectures Using Machine Learning. In Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 42), 2009.
[32]
James Pallister, Simon J. Hollis, and Jeremy Bennett. Identifying Compiler Options to Minimize Energy Consumption for Embedded Platforms. The Computer Journal, 58(1):95–109, January 2015.
[33]
Paschalis Mpeis, Pavlos Petoumenos, and Hugh Leather. Iterative Compilation on Mobile Devices. In the 6th International Workshop on Adaptive Self-tuning Computing Systems, 2016.
[34]
Xabier Ugarte-Pedrero, Davide Balzarotti, Igor Santos, and Pablo G Bringas. SoK: Deep Packer Inspection: A Longitudinal Study of the Complexity of Run-Time Packers. In Proceedings of the 36th IEEE Symposium on Security & Privacy (S&P’15), 2015.
[35]
Dongpeng Xu, Jiang Ming, Yu Fu, and Dinghao Wu. VMHunt: A Verifiable Approach to Partial-Virtualized Binary Code Simplification. In Proceedings of the 25th ACM Conference on Computer and Communications Security (CCS’18), 2018.
[36]
Emanuele Cozzi, Mariano Graziano, Yanick Fratantonio, and Davide Balzarotti. Understanding Linux Malware. In Proceedings of the 39th IEEE Symposium on Security and Privacy (S&P’18), 2018.
[37]
Jinchun Choi, Afsah Anwar, Hisham Alasmary, Jeffrey Spaulding, DaeHun Nyang, and Aziz Mohaisen. IoT Malware Ecosystem in the Wild: A Glimpse into Analysis and Exposures. In Proceedings of the 4th ACM/IEEE Symposium on Edge Computing, 2019.
[38]
Emanuele Cozzi, Pierre-Antoine Vervier, Matteo Dell’Amico, Yun Shen, Leyla Bilge, and Davide Balzarotti. The Tangled Genealogy of IoT Malware. In Proceedings of the 36th Annual Computer Security Applications Conference (ACSAC’20), 2020.
[39]
Li Wang, Dongpeng Xu, Jiang Ming, Yu Fu, and Dinghao Wu. MetaHunt: Towards Taming Malware Mutation via Studying the Evolution of Metamorphic Virus. In Proceedings of the 3rd International Workshop on Software PROtection (SPRO’19), 2019.
[40]
Manos Antonakakis, Tim April, Michael Bailey, Matt Bernhard, Elie Bursztein, Jaime Cochran, Zakir Durumeric, J. Alex Halderman, Luca Invernizzi, Michalis Kallitsis, Deepak Kumar, Chaz Lever, Zane Ma, Joshua Mason, Damian Menscher, Chad Seaman, Nick Sullivan, Kurt Thomas, and Yi Zhou. Understanding the Mirai Botnet. In Proceedings of the 26th USENIX Security Symposium (USENIX Security’17), 2017.
[41]
P.M.W. Knijnenburg, T. Kisuki, and M.F.P.O’Boyle. Iterative Compilation. In Proceedings of the 2002 International Workshop on Embedded Computer Systems, 2002.
[42]
Keith D. Cooper, Devika Subramanian, and Linda Torczon. Adaptive Optimizing Compilers for the 21st Century. The Journal of Supercomputing, 23(1), 2002.
[43]
Prasad Kulkarni, Stephen Hines, Jason Hiser, David Whalley, Jack Davidson, and Douglas Jones. Fast Searches for Effective Optimization Phase Sequences. In Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation (PLDI’04), 2004.
[44]
Yang Chen, Yuanjie Huang, Lieven Eeckhout, Grigori Fursin, Liang Peng, Olivier Temam, and Chengyong Wu. Evaluating Iterative Optimization Across 1000 Datasets. In Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’10), 2010.
[45]
Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Jonathan Ragan-Kelley, Jeffrey Bosboom, Una-May O’Reilly, and Saman Amarasinghe. OpenTuner: An Extensible Framework for Program Autotuning. In Proceedings of the 23rd International Conference on Parallel Architectures and Compilation (PACT’14), 2014.
[46]
Ming Li and Paul M.B. Vitnyi. An Introduction to Kolmogorov Complexity and Its Applications. Springer-Verlag New York, third edition, 2008.
[47]
Pascal Junod, Julien Rinaldini, Johan Wehrli, and Julie Michielin. Obfuscator-LLVM – Software Protection for the Masses. In Proceedings of the IEEE/ACM 1st International Workshop on Software Protection (SPRO’15), 2015.
[48]
Yaniv David, Nimrod Partush, and Eran Yahav. Statistical Similarity of Binaries. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’16), 2016.
[49]
Dongpeng Xu, Jiang Ming, and Dinghao Wu. Cryptographic Function Detection in Obfuscated Binaries via Bit-precise Symbolic Loop Mapping. In Proceedings of the 38th IEEE Symposium on Security and Privacy (S&P’17), 2017.
[50]
Rahul Sharma, Eric Schkufza, Berkeley Churchill, and Alex Aiken. Data-driven Equivalence Checking. In Proceedings of the 2013 ACM SIGPLAN International Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’13), 2013.
[51]
Shuai Wang and Dinghao Wu. In-memory Fuzzing for Binary Code Similarity Analysis. In Proceedings of the 32Nd IEEE/ACM International Conference on Automated Software Engineering (ASE’17), 2017.
[52]
Manuel Egele, Maverick Woo, Peter Chapman, and David Brumley. Blanket Execution: Dynamic Similarity Testing for Program Binaries and Components. In Proceedings of the 23rd USENIX Security Symposium (USENIX Security’14), 2014.
[53]
Joan Calvet, José M. Fernandez, and Jean-Yves Marion. Aligot: Cryptographic Function Identification in Obfuscated Binary Programs. In Proceedings of the 19th ACM Conference on Computer and Communications Security (CCS’12), 2012.
[54]
Yaniv David, Nimrod Partush, and Eran Yahav. Similarity of Binaries through re-Optimization. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’17), 2017.
[55]
Qian Feng, Rundong Zhou, Chengcheng Xu, Yao Cheng, Brian Testa, and Heng Yin. Scalable Graph-based Bug Search for Firmware Images. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS’16), 2016.
[56]
Fei Zuo, Xiaopeng Li, Zhexin Zhang, Patrick Young, Lannan Luo, and Qiang Zeng. Neural Machine Translation Inspired Binary Code Similarity Comparison beyond Function Pairs. In Proceedings of the 26th Network and Distributed System Security Symposium (NDSS’19), 2019.
[57]
Xiaojun Xu, Chang Liu, Qian Feng, Heng Yin, Le Song, and Dawn Song. Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (CCS’17), 2017.
[58]
Bingchang Liu, Wei Huo, Chao Zhang, Wenchao Li, Feng Li, Aihua Piao, and Wei Zou. αDiff: Cross-version Binary Code Similarity Detection with DNN. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE’18), 2018.
[59]
Halvar Flake. Structural Comparison of Executable Objects. In Proceedings of the 2004 GI International Conference on Detection of Intrusions & Malware, and Vulnerability Assessment (DIMVA’04), 2004.
[60]
Google LLC. BinDiff: Graph Comparison for Binary Files. https://www.zynamics.com/bindiff.html, 2017.
[61]
Hex-Rays. IDA Pro Dissasember. https://www.hex-rays.com/products/ida, [online].
[62]
Debin Gao, Michael K. Reiter, and Dawn Song. BinHunt: Automatically Finding Semantic Differences in Binary Programs. In Poceedings of the 10th International Conference on Information and Communications Security (ICICS’08), 2008.
[63]
Ya Liu and Hui Wang. Tracking Mirai Variants. 2018 Virus Bulletin, October 2018.
[64]
VirusTotal. VT Intelligence: Combine Google and Facebook and apply it to the field of Malware. https://www.virustotal.com/gui/intelligence-overview, [online].
[65]
Brian Krebs. Source Code for IoT Botnet Mirai Released. https://krebsonsecurity.com/2016/10/source-code-for-iot-botnet-mirai-released/, October 2016.
[66]
Ashkan Rahimian, Paria Shirani, Saed Alrbaee, Lingyu Wang, and Mourad Debbabi. BinComp: A Stratified Approach to Compiler Provenance Attribution. Digital Investigation, 14(S1), August 2015.
[67]
William D. Clinger. Proper Tail Recursion and Space Efficiency. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (PLDI’98), 1998.
[68]
Franck de Goër, Sanjay Rawat, Dennis Andriesse, Herbert Bos, and Roland Groz. Now You See Me: Real-time Dynamic Function Call Detection. In Proceedings of the 34th Annual Computer Security Applications Conference (ACSAC’18), 2018.
[69]
Yaniv David and Eran Yahav. Tracelet-based Code Search in Executables. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’14), 2014.
[70]
Robert L. Bernstein. Producing Good Code for the Case Statement. Software: Practice and Experience, 15(10), 1985.
[71]
Steven H. H. Ding, Benjamin C. M. Fung, and Philippe Charland. Kam1n0: MapReduce-based Assembly Clone Search for Reverse Engineering. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD’16), 2016.
[72]
Torbjörn Granlund and Peter L. Montgomery. Division by Invariant Integers Using Multiplication. In Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation (PLDI’94), 1994.
[73]
GCC team. Auto-Vectorization in GCC. https://www.gnu.org/software/gcc/projects/tree-ssa/vectorization.html, 2018.
[74]
María Jesús Garzarán and David Padua. Tutorial: Program Optimization through Loop Vectorization. 2011 International Symposium on Code Generation and Optimization (CGO’11), 2011.
[75]
LLVM team. Auto-Vectorization in LLVM. https://llvm.org/docs/Vectorizers.html, 2018.
[76]
GCC team. 6.57 Other Built-in Functions Provided by GCC. https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#Other-Builtins, 2018.
[77]
Henry S. Warren. Hacker’s Delight. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002.
[78]
László Nagy. scan-build. https://github.com/rizsotto/scan-build, [online].
[79]
Darrell Whitley. A genetic algorithm tutorial. Statistics and Computing, 4(2):65–85, 1994.
[80]
Nadia Alshahwan, Earl T. Barr, David Clark, George Danezis, and Héctor D. Menéndez. Detecting Malware with Information Complexity. Entropy, 22(5), 2020.
[81]
Edward Raff and Charles Nicholas. An Alternative to NCD for Large Sequences, Lempel-Ziv Jaccard Distance. In Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD’17), 2017.
[82]
Rebecca Schuller Borbely. On Normalized Compression Distance and Large Malware. Journal of Computer Virology and Hacking Techniques, 12(4), November 2016.
[83]
Edward Raff and Charles Nicholas. Malware Classification and Class Imbalance via Stochastic Hashed LZJD. In Proceedings of the 10th ACM Workshop on Artificial Intelligence and Security (AISec’17), 2017.
[84]
Ming Li, Xin Chen, Xin Li, Bin Ma, and P. M.B. Vitanyi. The Similarity Metric. IEEE Transactions on Information Theory, 50(12), December 2004.
[85]
Igor Pavlov. LZMA SDK (Software Development Kit). https://www.7-zip.org/sdk.html, 2018.
[86]
Leonardo De Moura and Nikolaj Bjørner. Z3: An Efficient SMT Solver. In Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, 2008.
[87]
Reena Panda, Shuang Song, Joseph Dean, and Lizy K. John. Wait of a Decade: Did SPEC CPU 2017 Broaden the Performance Horizon? In Proceedings of the 24th IEEE International Symposium on High-Performance Computer Architecture (HPCA’18), 2018.
[88]
Fei Ding. Iot malware. https://github.com/ifding/iot-malware, 2017.
[89]
Todd Jackson, Babak Salamat, Andrei Homescu, Karthikeyan Manivannan, Gregor Wagner, Andreas Gal, Stefan Brunthaler, Christian Wimmer, and Michael Franz. Moving Target Defense: Creating Asymmetric Uncertainty for Cyber Threats, volume 54 of Advances in Information Security, chapter Compiler-Generated Software Diversity, pages 77–98. Springer, 2011.
[90]
Han Liu, Chengnian Sun, Zhendong Su, Yu Jiang, Ming Gu, and Jiaguang Sun. Stochastic Optimization of Program Obfuscation. In Proceedings of the 39th International Conference on Software Engineering (ICSE’17), 2017.
[91]
Shuai Wang, Pei Wang, and Dinghao Wu. Composite Software Diversification. In Proceedings of the 33rd IEEE International Conference on Software Maintenance and Evolution (ICSME’17), 2017.
[92]
Christian Collberg. The Tigress C Obfuscator. https://tigress.wtf/, [online].
[93]
Eric Schkufza, Rahul Sharma, and Alex Aiken. Stochastic Superoptimization. In Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’13), 2013.

Cited By

View all
  • (2024)Function-Level Compilation Provenance Identification with Multi-Faceted Neural Feature Distillation and FusionElectronics10.3390/electronics1309169213:9(1692)Online publication date: 27-Apr-2024
  • (2024)A Survey of General-purpose Polyhedral CompilersACM Transactions on Architecture and Code Optimization10.1145/3674735Online publication date: 22-Jun-2024
  • (2024)Uncovering and Mitigating the Impact of Code Obfuscation on Dataset Annotation with Antivirus EnginesProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680302(553-565)Online publication date: 11-Sep-2024
  • Show More Cited By

Index Terms

  1. Unleashing the hidden power of compiler optimization on binary code difference: an empirical study

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation
    June 2021
    1341 pages
    ISBN:9781450383912
    DOI:10.1145/3453483
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 18 June 2021

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Binary Code Difference
    2. Compiler Optimization

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    PLDI '21
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 406 of 2,067 submissions, 20%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)631
    • Downloads (Last 6 weeks)56
    Reflects downloads up to 22 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Function-Level Compilation Provenance Identification with Multi-Faceted Neural Feature Distillation and FusionElectronics10.3390/electronics1309169213:9(1692)Online publication date: 27-Apr-2024
    • (2024)A Survey of General-purpose Polyhedral CompilersACM Transactions on Architecture and Code Optimization10.1145/3674735Online publication date: 22-Jun-2024
    • (2024)Uncovering and Mitigating the Impact of Code Obfuscation on Dataset Annotation with Antivirus EnginesProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680302(553-565)Online publication date: 11-Sep-2024
    • (2024) ARCTURUS: Full Coverage Binary Similarity Analysis with Reachability-guided EmulationACM Transactions on Software Engineering and Methodology10.1145/364033733:4(1-31)Online publication date: 11-Jan-2024
    • (2024)Cross-Inlining Binary Function Similarity DetectionProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639080(1-13)Online publication date: 20-May-2024
    • (2024)HGE-BVHDExpert Systems with Applications: An International Journal10.1016/j.eswa.2023.121835238:PCOnline publication date: 27-Feb-2024
    • (2024) Wasm-MutateComputers and Security10.1016/j.cose.2024.103731139:COnline publication date: 16-May-2024
    • (2024)Modularizing Directed Greybox Fuzzing for Binaries over Multiple CPU ArchitecturesDetection of Intrusions and Malware, and Vulnerability Assessment10.1007/978-3-031-64171-8_5(84-103)Online publication date: 9-Jul-2024
    • (2023)PEM: Representing Binary Program Semantics for Similarity Analysis via a Probabilistic Execution ModelProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616301(401-412)Online publication date: 30-Nov-2023
    • (2023)Black-box Attacks Against Neural Binary Function DetectionProceedings of the 26th International Symposium on Research in Attacks, Intrusions and Defenses10.1145/3607199.3607200(1-16)Online publication date: 16-Oct-2023
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media