Skip to main content

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

  1. Aggressive Inliner: Recursively applies alwaysinline and inlines function calls.
  2. 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.
  3. Inline Globals: Global variables need to be inlined wherever they are used (in practice, stack all globals into the main function).

Project details


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)

Uploaded Source

Built Distribution

pysquishy-0.1.1-cp310-cp310-manylinux_2_33_x86_64.whl (9.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.33+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page