<div class="csl-bib-body">
<div class="csl-entry">Wenzl, M., Merzdovnik, G., Ullrich, J. M. M., & Weippl, E. (2019). From Hack to Elaborate Technique—A Survey on Binary Rewriting. <i>ACM Computing Surveys</i>, <i>52</i>(3), 1–37. https://doi.org/10.1145/3316415</div>
</div>
-
dc.identifier.issn
0360-0300
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/144075
-
dc.description.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.
en
dc.language.iso
en
-
dc.publisher
ASSOC COMPUTING MACHINERY
-
dc.relation.ispartof
ACM Computing Surveys
-
dc.subject
Theoretical Computer Science
en
dc.subject
General Computer Science
en
dc.title
From Hack to Elaborate Technique—A Survey on Binary Rewriting
en
dc.type
Artikel
de
dc.type
Article
en
dc.description.startpage
1
-
dc.description.endpage
37
-
dc.type.category
Original Research Article
-
tuw.container.volume
52
-
tuw.container.issue
3
-
tuw.journal.peerreviewed
true
-
tuw.peerreviewed
true
-
tuw.researchTopic.id
I4a
-
tuw.researchTopic.name
Information Systems Engineering
-
tuw.researchTopic.value
100
-
dcterms.isPartOf.title
ACM Computing Surveys
-
tuw.publication.orgunit
E194-01 - Forschungsbereich Software Engineering
-
tuw.publisher.doi
10.1145/3316415
-
dc.identifier.articleid
49
-
dc.identifier.eissn
1557-7341
-
dc.description.numberOfPages
37
-
tuw.author.orcid
0000-0001-8248-7868
-
wb.sci
true
-
wb.sciencebranch
Informatik
-
wb.sciencebranch.oefos
1020
-
wb.facultyfocus
Information Systems Engineering (ISE)
de
wb.facultyfocus
Information Systems Engineering (ISE)
en
wb.facultyfocus.faculty
E180
-
item.fulltext
no Fulltext
-
item.openairecristype
http://purl.org/coar/resource_type/c_2df8fbb1
-
item.languageiso639-1
en
-
item.cerifentitytype
Publications
-
item.openairetype
research article
-
item.grantfulltext
none
-
crisitem.author.dept
E192 - Institut für Logic and Computation
-
crisitem.author.dept
E192 - Institut für Logic and Computation
-
crisitem.author.dept
E194-01 - Forschungsbereich Information und Software Engineering
-
crisitem.author.parentorg
E180 - Fakultät für Informatik
-
crisitem.author.parentorg
E180 - Fakultät für Informatik
-
crisitem.author.parentorg
E194 - Institut für Information Systems Engineering