https://github.com/laino/noseatbelt
Remove mitigations from (running!) software.
https://github.com/laino/noseatbelt
Last synced: 2 months ago
JSON representation
Remove mitigations from (running!) software.
- Host: GitHub
- URL: https://github.com/laino/noseatbelt
- Owner: laino
- Created: 2020-12-28T10:23:36.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-02T21:14:36.000Z (over 5 years ago)
- Last Synced: 2025-03-22T07:18:36.326Z (about 1 year ago)
- Language: C
- Homepage:
- Size: 134 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
noseatbelt
==========
Remove mitigations from (running!) software.
This library detects and removes mitigations (Spectre, CFG, ...) from a running program and also applies some optimizations.
Currently WIP.
Transformations
---------------
Currently the following transformations are applied:
- [x] indirect calls via retpolines to direct calls (Spectre mitigation removal)
- [x] returns via return thunks to direct returns (Spectre mitigation removal)
- [x] Control Flow Integrity checks removed (Windows CFG)
- [ ] Control Flow Integrity checks removed (LLVM and others)
- [x] inlining of JMP instructions (to RET or JMP)
- [x] redirecting of CALL instructions (to JMP or another CALL)
- [ ] inlining of functions
Support
-------
- [x] Linux 64bit
- [ ] Linux 32bit
- [x] Windows 64bit
- [ ] Windows 32bit
Build
-----
```
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ../ #Release is default
make
```
Usage
-----
```
# Measure how long it takes to patch the firefox binary
time LD_PRELOAD=./libnoseatbelt-auto.so firefox --version
```