An open API service indexing awesome lists of open source software.

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.

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
```