FREEDOM251

Freedom251 › Executable Packers

zELF

Free plan Linux

Visit zELF Alternatives

zELF's own site

What zELF is

zELF is an open-source Linux utility that packs ELF64 binaries to reduce file size while providing runtime unpacking. It supports x86_64 and AArch64 (arm64), including static and dynamic/PIE binaries, and validates headers and segments. ELF 32-bit files are unsupported. Its 22 compression codecs include LZ4, LZMA, ZSTD, and LZHAM. BCJ and KanziEXE filters, automatic selection based on trained decision trees, and modes that test codec and filter combinations offer different approaches to reducing output size. The `-best` mode tries three predicted codecs; `-crazy` tries all eligible codecs and selects the smallest output.

zELF can create and unpack .zlf archives, including self-extracting outputs. Its modular design lets developers integrate additional codecs. The packer needs matching target stubs for the architecture being packed. Release downloads include dynamic and static Linux builds for amd64 and aarch64, with distribution packages and portable archives; dynamic builds use system libraries, while static builds are self-contained. The project is released under GPLv3, subject to licenses of bundled components. The maker describes intended uses including legitimate binary optimization, embedded systems, demos, education, and experimentation with ELF internals. Some codecs can require substantial memory: LZHAM uses a 512 MB dictionary and aborts if available memory or RLIMIT_AS is insufficient.

Who it suits

zELF suits Linux developers who need to optimize supported ELF64 binaries or produce .zlf archives. Its codec-extensibility and documented build process may also suit users exploring ELF internals, embedded systems, demos, or education.

What it does well

  • Supports x86_64 and AArch64 static and dynamic/PIE binaries.
  • Includes 22 codecs, including LZ4, LZMA, ZSTD, and LZHAM.
  • Can create and unpack .zlf and self-extracting archives.
  • Automatic codec selection uses trained decision trees.
  • Developers can integrate additional compression codecs.

What to know first

  • ELF 32-bit binaries are unsupported.
  • The packer requires matching target stubs for the target architecture.
  • LZHAM uses a 512 MB dictionary and may abort for insufficient memory.
  • Linux is the only supported platform.

Getting started

  1. Visit the zELF GitHub repository.
  2. Download a dynamic or static build for amd64 or aarch64, or build the packer from source.
  3. Use the matching target stubs for the architecture you plan to pack.
  4. Choose codecs and filters, or use `-best` or `-crazy` to compare eligible options.

Verdict

Choose zELF if you need Linux ELF64 packing across x86_64 or AArch64 and want several codec-selection options. Look elsewhere for 32-bit ELF support; account for codec memory requirements and the need for matching target stubs.

Questions

What does zELF cost?

It is free and open source under GPLv3, subject to licenses of bundled components.

Which binary architectures does it support?

It supports Linux ELF64 x86_64 and AArch64 (arm64), including static and dynamic/PIE binaries. ELF 32-bit is unsupported.

What Linux builds are available?

The v0.91 release provides dynamic and static builds for amd64 and aarch64, including distribution packages and portable archives.

What is the difference between dynamic and static builds?

Dynamic builds link against system libraries. Static builds are self-contained without external dependencies.

Can developers add codecs?

Yes. The maker describes zELF as modular and documents integrating additional compression codecs.

Is zELF intended for obfuscation or evasion?

No. The maker says it is not designed for code obfuscation, concealment, antivirus evasion, or malicious code distribution.

Facts from zELF's own pages

Archive features
It can create and unpack .zlf archives, including self-extracting archive outputs. · github.com, 11 Oct 2026
Archives
It can create and unpack .zlf archives, including self-extracting archive outputs. · github.com, 11 Oct 2026
Binary formats
It supports static and dynamic/PIE ELF64 binaries and does not support 32-bit ELF. · github.com, 11 Oct 2026
Binary support
It handles static and dynamic/PIE binaries, with header and segment validation. · github.com, 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. · github.com, 11 Oct 2026
Build options
The release describes dynamic builds as linked against system libraries and static builds as self-contained without external dependencies. · github.com, 11 Oct 2026
Compression
It includes 22 compression codecs, including LZ4, LZMA, ZSTD, and LZHAM. · github.com, 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. · github.com, 11 Oct 2026
Executable filters
It provides BCJ and KanziEXE filters, with automatic selection via trained decision trees. · github.com, 11 Oct 2026
Extensibility
The maker describes zELF as modular and documents how developers can integrate additional compression codecs. · github.com, 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. · github.com, 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. · github.com, 11 Oct 2026
License
The project is released under GPLv3, subject to licenses of bundled components. · github.com, 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. · github.com, 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. · github.com, 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. · github.com, 11 Oct 2026
Password option
The password option stores an obfuscated FNV-1a hash in the stub. · github.com, 11 Oct 2026
Purpose
zELF packs Linux ELF64 binaries to reduce their size and provide efficient runtime unpacking. · github.com, 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. · github.com, 11 Oct 2026
Security limitation
The maker says zELF is not designed for code obfuscation, concealment, antivirus evasion, or malicious code distribution. · github.com, 11 Oct 2026
Support and contributions
The maker invites users to open issues, submit pull requests, or discuss ideas on the project. · github.com, 11 Oct 2026
Supported targets
It supports Linux ELF64 x86_64 and AArch64 (arm64) binaries; ELF 32-bit is unsupported. · github.com, 11 Oct 2026

Where zELF stands on Freedom251

Look at these too