CX330Blake/ZYRA
ZYRA: Your Runtime Armor. ZYRA is an Zig-written obfuscator/packer for executable binaries.
What's ZYRA? • Showcase • Installation • Usage • Workflow under the hood • Packed binary structure • To Do • Maldev Tools • Contribution • Star history
ZYRA is a Zig-based obfuscator, packer, and loader designed to protect executable files from static analysis and reverse engineering.
If you wonder the effectiveness of ZYRA, you should check this simple "hello world" binary out. In the following example, I'm gonna use Binary Ninja as the decompiler. You can get the example binaries in examples.
Before using ZYRA, we can see that it's as simple as f**k to reverse engineer.
But after ZYRA, it's much more complicated! You can see the control flow graph is so complicated to trace (but it's not perfect yet).
ZYRA is now currently support Linux only, but the Windows version will be released soon.
You can simply copy and paste the following one-liner to install ZYRA.
bash <(curl -sSL https://raw.githubusercontent.com/CX330Blake/ZYRA/main/install.sh)
WARNING
Never execute any untrusted script on your machine. Read the script first.
On the other hand, you can clone this repo and use the following command to build your own ZYRA binary.
git clone https://github.com/CX330Blake/ZYRA
cd ZYRA
# You can change the build flag on your own
zig build --release=fast
___ _ _ ____ ____
/ \_/ |__/ |__|
/__ | | \ | |
Zyra Packer v0.1.1
Copyright (C) 2025 @CX330Blake.
All rights reserved.
Zyra Packer v0.1.1 - Binary packer and obfuscator
Usage: zyra [options] <FILE>
Options:
-h, --help Show this help message
-v, --verbose Verbose output
-o, --output FILE Output file name (default: input.zyra)
-k, --key HEX Encryption key in hex (default: 0x42)
Examples:
zyra /bin/ls # Pack ls -> ls.zyra
zyra -o myapp.exe program # Pack program -> myapp.exe
zyra -k FF -v /usr/bin/cat # Pack with key 0xFF, verbose
Section | Description |
---|---|
stub binary | The "outer" binary |
"PAYLOAD_START_MARKER" | Payload begin |
payload_len (u64 LE) | - |
key (u8) | Decrypt key |
encrypted_payload (bytes) | - |
Add support for anti-debugging.
Add more advanced techniques.
Write unit tests (need help)
This project is maintained by @CX330Blake. PRs are welcome if you also want to contribute to this project.