Affiliation:
1. FH Technikum Wien, Vienna, Austria
2. SBA Research, Vienna, Austria
3. SBA Research, Austria and CDL-SQI, TU Wien, Austria
Abstract
Binary rewriting is changing the semantics of a program without having the source code at hand. It is used for diverse purposes, such as emulation (e.g., QEMU), optimization (e.g., DynInst), observation (e.g., Valgrind), and hardening (e.g., Control flow integrity enforcement). This survey gives detailed insight into the development and state-of-the-art in binary rewriting by reviewing 67 publications from 1966 to 2018. Starting from these publications, we provide an in-depth investigation of the challenges and respective solutions to accomplish binary rewriting. Based on our findings, we establish a thorough categorization of binary rewriting approaches with respect to their use-case, applied analysis technique, code-transformation method, and code generation techniques. We contribute a comprehensive mapping between binary rewriting tools, applied techniques, and their domain of application. Our findings emphasize that although much work has been done over the past decades, most of the effort was put into improvements aiming at rewriting general purpose applications but ignoring other challenges like altering throughput-oriented programs or software with real-time requirements, which are often used in the emerging field of the Internet of Things. To the best of our knowledge, our survey is the first comprehensive overview on the complete binary rewriting process.
Funder
Christian Doppler Forschungsgesellschaft
Austrian Research Promotion Agency
City of Vienna, MA 23
Josef Ressel Center (JRC) project TARGET
Austrian Federal Ministry for Digital and Economic Affairs
National Foundation for Research, Technology, and Development is gratefully acknowledged
Publisher
Association for Computing Machinery (ACM)
Subject
General Computer Science,Theoretical Computer Science
Cited by
45 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. EFACT: An External Function Auto-Completion Tool to strengthen static binary lifting;Journal of Systems and Software;2024-09
2. What You Trace is What You Get: Dynamic Stack-Layout Recovery for Binary Recompilation;Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2;2024-04-27
3. TaiE: Function Identification for Monolithic Firmware;Proceedings of the 32nd IEEE/ACM International Conference on Program Comprehension;2024-04-15
4. LAST: An Efficient In-place Static Binary Translator for RISC Architectures;Lecture Notes in Computer Science;2024
5. A Review of Malware Detection Applications and Research;Communications in Computer and Information Science;2024