zELF
zELF is a free, open-source Linux tool that packs ELF64 binaries to reduce their size while enabling runtime unpacking.
What zELF is
zELF is a free, open-source Linux tool that packs ELF64 binaries to reduce their size while enabling runtime unpacking. It supports x86_64 and AArch64 (arm64) executables, including static and dynamic/PIE binaries; 32-bit ELF is unsupported. Its 22 compression codecs include LZ4, LZMA, ZSTD, and LZHAM. BCJ and KanziEXE filters, trained decision-tree selection, and modes that test multiple codec and filter combinations help find a smaller output. The -best mode tries three predicted codecs, while -crazy tries all eligible codecs and chooses the smallest result. zELF validates headers and segments and can create or unpack .zlf archives, including self-extracting outputs. Its modular design allows developers to integrate additional codecs. The v0.91 release includes dynamic and static Linux builds for amd64 and aarch64, with distribution packages and portable archives. Dynamic builds use system libraries; static builds are self-contained. The packer needs matching target stubs for the architecture being packed. The project is released under GPLv3, subject to bundled-component licenses, and is intended for legitimate optimization, embedded systems, demos, education, and ELF experimentation.
Good
- Supports x86_64 and AArch64 ELF64 binaries.
- Includes 22 compression codecs.
- Can create and unpack self-extracting .zlf archives.
- Offers dynamic and self-contained static builds.
Watch out
- Does not support 32-bit ELF.
- Requires matching target stubs for the architecture.
- Some codecs can require substantial memory.
- GPLv3 applies, subject to bundled-component licenses.
Who it suits
zELF suits Linux developers and users working with supported ELF64 architectures who want to reduce binary size. The project also describes uses in embedded systems, demos, education, and ELF experimentation.
Verdict
zELF offers multiple codecs and output-search modes for Linux ELF64 packing, with archives and static or dynamic builds. Check architecture support, matching stubs, and memory needs before using it.
The facts
Each one read from zELF's own pages, with the date it was checked.
What it does
- Archive features
- It can create and unpack .zlf archives, including self-extracting archive outputs.checked 11 Oct 2026
- Archives
- It can create and unpack .zlf archives, including self-extracting archive outputs.checked 11 Oct 2026
- Binary formats
- It supports static and dynamic/PIE ELF64 binaries and does not support 32-bit ELF.checked 11 Oct 2026
- Binary support
- It handles static and dynamic/PIE binaries, with header and segment validation.checked 11 Oct 2026
- Build and distribution
- The README documents building the packer and producing .deb or .tar.gz packages; the packer must have matching target stubs available for the architecture being packed.checked 11 Oct 2026
- Build options
- The release describes dynamic builds as linked against system libraries and static builds as self-contained without external dependencies.checked 11 Oct 2026
- Compression
- It includes 22 compression codecs, including LZ4, LZMA, ZSTD, and LZHAM.checked 11 Oct 2026
- Downloads
- The v0.91 release provides dynamic and static Linux builds for amd64 and aarch64, including Debian, Fedora/RHEL/openSUSE, and Alpine packages plus portable archives.checked 11 Oct 2026
- Executable filters
- It provides BCJ and KanziEXE filters, with automatic selection via trained decision trees.checked 11 Oct 2026
- Extensibility
- The maker describes zELF as modular and documents how developers can integrate additional compression codecs.checked 11 Oct 2026
- Filters and selection
- It offers BCJ and KanziEXE filters, automatic selection using trained decision trees, and modes that try multiple codec and filter combinations.checked 11 Oct 2026
- Intended users
- The maker describes the project as intended for legitimate binary optimization, embedded systems, demos, education, and experimentation with ELF internals and executable packing.checked 11 Oct 2026
- License
- The project is released under GPLv3, subject to licenses of bundled components.checked 11 Oct 2026
- License and community
- The repository identifies GPLv3 as its main license and invites users to open issues, submit pull requests, or discuss ideas.checked 11 Oct 2026
- Memory limit
- Some codecs can require substantial memory; the README says LZHAM uses a 512 MB dictionary and aborts if available memory or RLIMIT_AS is insufficient.checked 11 Oct 2026
- Optimization modes
- Its -best mode tries three predicted codecs and its -crazy mode tries all eligible codecs to select the smallest output.checked 11 Oct 2026
- Password option
- The password option stores an obfuscated FNV-1a hash in the stub.checked 11 Oct 2026
- Purpose
- zELF packs Linux ELF64 binaries to reduce their size and provide efficient runtime unpacking.checked 11 Oct 2026
- Security
- The maker says zELF is not designed for code obfuscation, concealment, or antivirus evasion, and its source code is openly available.checked 11 Oct 2026
- Security limitation
- The maker says zELF is not designed for code obfuscation, concealment, antivirus evasion, or malicious code distribution.checked 11 Oct 2026
- Support and contributions
- The maker invites users to open issues, submit pull requests, or discuss ideas on the project.checked 11 Oct 2026
- Supported targets
- It supports Linux ELF64 x86_64 and AArch64 (arm64) binaries; ELF 32-bit is unsupported.checked 11 Oct 2026
Alternatives to zELF
- 1
Obsidian
Free planOpen sourceAndroidiOSExtensionLinux8.4From $48 a year - 2
Enigma Protector
WebAPILinuxSelf-hosted7.4 - 3

Virbox Protector
AndroidiOSLinuxmacOS7.1CN¥2,499 one-time - 4
VMProtect
LinuxmacOSWindows6.6 - 5
Crinkler
Free planWindows6.3Free plan - 6

Themida
Windows6.3From €79 a year
