LLVM pass wrapper library for creating robust shellcode
Project description
squishy 🐻❄️
A collection of new (LLVM 15) passes to compile normal-looking code to a callable, jump-to-able blob.
Inspired by SheLLVM, but should address some of the outdated issues with that project. Thanks to SheLLVM for the inspiration :)
Building
squishy 🐻❄️
uses the meson modern build system. To
build, first ensure that meson
and ninja
are installed, and that you have
an installation of llvm-15
which you can get here.
Then, invoke:
meson build
cd build
meson compile
to produce the library.
Passes
- Aggressive Inliner: Recursively applies alwaysinline and inlines function calls.
- Deduplicate Calls: Repeated calls to inlined code can be directed to a block in the main function as if it were a function without making a call.
- Inline Globals: Global variables need to be inlined wherever they are used (in practice, stack all globals into the main function).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pysquishy-0.1.1.tar.gz
(14.3 kB
view hashes)
Built Distribution
Close
Hashes for pysquishy-0.1.1-cp310-cp310-manylinux_2_33_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f200da8dd1c8657ace4fce0ca117d24db8cbc72298cad1ec0d2ab0a8e26f4776 |
|
MD5 | 5fd023871536a167a47acf4e1d28fbe6 |
|
BLAKE2b-256 | 964e355f80c90029a77f45f12c476acdd685b7d2aee4ba8bac52fded8cbc33c4 |