From hack to elaborate technique—a survey on binary rewriting
M Wenzl, G Merzdovnik, J Ullrich… - ACM Computing Surveys …, 2019 - dl.acm.org
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 (eg, QEMU), optimization (eg …
hand. It is used for diverse purposes, such as emulation (eg, QEMU), optimization (eg …
Limits of static analysis for malware detection
Malicious code is an increasingly important problem that threatens the security of computer
systems. The traditional line of defense against malware is composed of malware detectors …
systems. The traditional line of defense against malware is composed of malware detectors …
[PDF][PDF] Superset Disassembly: Statically Rewriting x86 Binaries Without Heuristics.
Static binary rewriting is a core technology for many systems and security applications,
including profiling, optimization, and software fault isolation. While many static binary …
including profiling, optimization, and software fault isolation. While many static binary …
Datalog disassembly
A Flores-Montoya, E Schulte - 29th USENIX Security Symposium …, 2020 - usenix.org
Disassembly is fundamental to binary analysis and rewriting. We present a novel
disassembly technique that takes a stripped binary and produces reassembleable assembly …
disassembly technique that takes a stripped binary and produces reassembleable assembly …
Automatic generation of peephole superoptimizers
Peephole optimizers are typically constructed using human-written pattern matching rules,
an approach that requires expertise and time, as well as being less than systematic at …
an approach that requires expertise and time, as well as being less than systematic at …
Armlock: Hardware-based fault isolation for arm
Software fault isolation (SFI) is an effective mechanism to confine untrusted modules inside
isolated domains to protect their host applications. Since its debut, researchers have …
isolated domains to protect their host applications. Since its debut, researchers have …
BinRec: dynamic binary lifting and recompilation
Binary lifting and recompilation allow a wide range of install-time program transformations,
such as security hardening, deobfuscation, and reoptimization. Existing binary lifting tools …
such as security hardening, deobfuscation, and reoptimization. Existing binary lifting tools …
A compiler-level intermediate representation based binary analysis and rewriting system
This paper presents component techniques essential for converting executables to a high-
level intermediate representation (IR) of an existing compiler. The compiler IR is then …
level intermediate representation (IR) of an existing compiler. The compiler IR is then …
Efficient program execution indexing
Execution indexing uniquely identifies a point in an execution. Desirable execution indices
reveal correlations between points in an execution and establish correspondence between …
reveal correlations between points in an execution and establish correspondence between …
Propeller: A profile guided, relinking optimizer for warehouse-scale applications
While profile guided optimizations (PGO) and link time optimiza-tions (LTO) have been
widely adopted, post link optimizations (PLO) have languished until recently when …
widely adopted, post link optimizations (PLO) have languished until recently when …