2022
DOI: 10.1007/s10009-021-00644-w
|View full text |Cite
|
Sign up to set email alerts
|

SaBRe: load-time selective binary rewriting

Abstract: Binary rewriting consists in disassembling a program to modify its instructions. However, existing solutions suffer from shortcomings in terms of soundness and performance. We present SaBRe, a load-time system for selective binary rewriting. SaBRe rewrites specific constructs—particularly system calls and functions—when the program is loaded into memory, and intercepts them using plugins through a simple API. We also discuss the theoretical underpinnings of disassembling and rewriting. We developed two backend… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2022
2022
2023
2023

Publication Types

Select...
6

Relationship

0
6

Authors

Journals

citations
Cited by 10 publications
(5 citation statements)
references
References 46 publications
0
5
0
Order By: Relevance
“…Using the in-memory filesystem tmpfs under UNIX is a well-known optimisation in the context of fuzzing. 1,2,3 SnapFuzz uses an in-memory filesystem both for efficiency and for removing the need for clean-up scripts involving filesystem state. However, we are not using tmpfs, but a custom in-memory filesystem that uses the memfd_create system call for files and the Libsqlfs library for directories (see §4.2 for details).…”
Section: Efficient State Resetmentioning
confidence: 99%
See 1 more Smart Citation
“…Using the in-memory filesystem tmpfs under UNIX is a well-known optimisation in the context of fuzzing. 1,2,3 SnapFuzz uses an in-memory filesystem both for efficiency and for removing the need for clean-up scripts involving filesystem state. However, we are not using tmpfs, but a custom in-memory filesystem that uses the memfd_create system call for files and the Libsqlfs library for directories (see §4.2 for details).…”
Section: Efficient State Resetmentioning
confidence: 99%
“…As the normal execution of the loader progresses, SnapFuzz intercepts its mmap system calls used to load libraries into memory, and scans these libraries in order to recursively rewrite their system calls and redirect them to the SnapFuzz plugin. The SnapFuzz rewriter is based on the open-source load-time binary rewriter SaBRe [1].…”
Section: Binary Rewritingmentioning
confidence: 99%
“…To deal with attacks that target the in-process monitor, we could implement the in-process monitor in a safe language like Rust, or use PKU to isolate the in-process monitor from the untrusted code [64,80]. Alternatively, we could also extend Cerberus to support alternative system call interposition techniques that leverage binary rewriting [5,8,37], virtualization [10,44], or syscall user dispatch [4].…”
Section: Signal Context Attacks a Concurrent Work With Oursmentioning
confidence: 99%
“…Binary memory dependence analysis, which determines whether two machine instructions in an executable can access the same memory location, is critical for many security-sensitive tasks, including detecting vulnerabilities [18,37,86], analyzing malware [39,95], hardening binaries [4,29,45,92], and forensics [19,35,58,93]. The key challenge behind memory dependence analysis is that machine instructions often leverage indirect addressing or indirect controlflow transfer (i.e., involving dynamically computed targets) to access the memory.…”
Section: Introductionmentioning
confidence: 99%