Hyperion is an advanced runtime PE (Portable Executable) crypter that encrypts and obfuscates Windows executables at runtime. Originally developed for educational and legitimate security research purposes, Hyperion is commonly used in authorized penetration testing to evaluate antivirus detection capabilities, test endpoint protection systems, and conduct malware analysis research.
The tool modifies the executable structure, applies polymorphic encryption, and injects custom stub code to decrypt and execute the original payload at runtime. Hyperion is included in Kali Linux for authorized security professionals conducting approved security assessments.
# Kali Linux (pre-installed)
hyperion --version
which hyperion
# Manual installation from source
git clone https://github.com/nullsecuritynet/tools
cd tools/hyperion
gcc -o hyperion hyperion.cpp
# Or download precompiled binary
wget https://github.com/nullsecuritynet/tools/releases/download/hyperion-binary.zip
unzip hyperion-binary.zip
chmod +x hyperion
# CRITICAL: Hyperion usage requires:
# 1. Written authorization from system owner
# 2. Defined scope in security assessment
# 3. Legal agreement documenting research purpose
# 4. Proper incident response procedures
# Verify authorization documentation:
cat assessment_authorization.txt
cat scope_of_work.pdf
hyperion [options] <input_PE_file> <output_encrypted_PE>
| Command | Description |
|---|
hyperion input.exe output.exe | Encrypt executable with defaults |
hyperion --help | Display help information |
hyperion --version | Show version number |
hyperion -v input.exe output.exe | Verbose output during encryption |
# Encrypt Windows executable
hyperion legitimate_tool.exe encrypted_tool.exe
# Encrypt with verbose output
hyperion -v legitimate_tool.exe encrypted_tool.exe
# Encrypt portable executable
hyperion payload.exe obfuscated_payload.exe
# Verify output file
file encrypted_tool.exe
| Option | Description | Example |
|---|
-v | Verbose output | hyperion -v input.exe output.exe |
-i | Specify input file | hyperion -i input.exe output.exe |
-o | Specify output file | hyperion input.exe -o output.exe |
-p | Preserve entropy | hyperion -p input.exe output.exe |
| Option | Description | Example |
|---|
-m | Mutation level | hyperion -m 3 input.exe output.exe |
-s | Stub encryption | hyperion -s input.exe output.exe |
-e | Entry point shifting | hyperion -e input.exe output.exe |
| Option | Description | Example |
|---|
-c | Custom configuration | hyperion -c config.txt input.exe output.exe |
--iterations | Encryption iterations | hyperion --iterations 5 input.exe output.exe |
--key-size | Encryption key size | hyperion --key-size 256 input.exe output.exe |
# Maximum obfuscation for evasion research
hyperion -v -m 3 -e legitimate_tool.exe heavily_obfuscated.exe
# Verify output properties
file heavily_obfuscated.exe
strings heavily_obfuscated.exe | head -20
# Create list of executables to encrypt
cat > targets.txt << EOF
tool1.exe
tool2.exe
tool3.exe
EOF
# Encrypt multiple files
for exe in $(cat targets.txt); do
filename="${exe%.exe}"
hyperion -v "$exe" "${filename}_encrypted.exe"
echo "Encrypted: $exe"
done
# Create configuration file
cat > hyperion.conf << EOF
[encryption]
method=aes-256
iterations=5
mutation=true
entry_point_shift=true
[obfuscation]
stub_encryption=true
polymorphic=true
junk_code=true
[output]
preserve_manifest=false
strip_exports=false
EOF
# Apply configuration
hyperion -c hyperion.conf legitimate_tool.exe configured_output.exe
# Pre-encryption baseline testing
echo "Testing original executable..."
curl -X POST --data-binary @original_tool.exe \
https://www.virustotal.com/api/upload.php
# Post-encryption detection comparison
echo "Testing encrypted executable..."
curl -X POST --data-binary @encrypted_tool.exe \
https://www.virustotal.com/api/upload.php
# Document detection rate change
# Note: Legitimate testing in authorized environments only
# Analyze stub code behavior
objdump -d encrypted_tool.exe | head -50
# Check imported functions
objdump -p encrypted_tool.exe | grep -A 20 "Import Address"
# Inspect entropy
exiftool encrypted_tool.exe | grep -i entropy
# Encrypt same executable multiple times
for i in {1..5}; do
hyperion -v original.exe encrypted_$i.exe
md5sum encrypted_$i.exe
done
# Each encryption produces unique output (polymorphic)
# This demonstrates runtime decryption capability
# Create test script
cat > evasion_test.sh << EOF
#!/bin/bash
# Authorized endpoint protection evaluation
TARGET_SYSTEM="test-vm.local"
ASSESSMENT_ID="AP-2026-05-001"
# Encrypt legitimate security tool
hyperion ./nessus_agent.exe ./test_agent_encrypted.exe
# Deploy to test endpoint
scp test_agent_encrypted.exe admin@$TARGET_SYSTEM:/tmp/
# Monitor detection
ssh admin@$TARGET_SYSTEM "tail -f /var/log/security/av.log"
EOF
chmod +x evasion_test.sh
# Prepare clean analysis environment
# VM isolated from network
# Monitoring tools configured (Procmon, Wireshark, etc.)
# Create encrypted test specimen
hyperion legitimate_sample.exe sandbox_test.exe
# Detonation in controlled environment
# ./sandbox_test.exe (in isolated VM)
# Analyze behavior and detection
tail -f /var/log/malware_analysis.log
# Create research assessment document
cat > hyperion_evasion_research.md << EOF
# Hyperion PE Crypter Research - Test Results
## Assessment Details
- Date: 2026-05-02
- Scope: Authorized AV evasion testing
- Tool: hyperion v4.0
- Target: Windows Defender evaluation
## Methodology
1. Original executable baseline (5 samples)
2. Hyperion encryption with varying parameters
3. Detection rate measurement
4. Stub code analysis
5. Behavior monitoring
## Results
[Document findings from authorized testing]
## Conclusion
[Analysis and remediation recommendations]
EOF
# Mandatory checks before usage:
# 1. Verify written authorization
if [ ! -f "authorization_letter.pdf" ]; then
echo "ERROR: No authorization documentation"
exit 1
fi
# 2. Check assessment scope
if ! grep -q "hyperion\|pe crypter\|evasion" scope_of_work.txt; then
echo "ERROR: Hyperion usage not in approved scope"
exit 1
fi
# 3. Verify system isolation
echo "Verifying test environment isolation..."
# Ensure air-gapped or properly segmented network
# 4. Document all activities
echo "Assessment: $(date)" >> research_log.txt
echo "Tool: hyperion $(hyperion --version)" >> research_log.txt
# If vulnerabilities discovered:
# 1. Document findings thoroughly
# 2. Do NOT distribute encrypted samples
# 3. Do NOT test against systems without permission
# 4. Report findings to vendor through responsible disclosure
cat > disclosure_report.txt << EOF
RESPONSIBLE DISCLOSURE REPORT
Test Date: 2026-05-02
Assessment: [Your Assessment ID]
Findings:
- Detection mechanism: [Details]
- Affected products: [List]
- Remediation: [Recommendations]
Distribution: Authorized parties only
Embargo: [Timeline for public disclosure]
EOF
# Authorized AV testing in isolated lab
# Step 1: Prepare test environment
mkdir -p /opt/testing/av_evasion
cd /opt/testing/av_evasion
# Step 2: Verify authorization
cat authorization_letter.pdf | grep "hyperion\|encryption"
# Step 3: Encrypt test executable
hyperion -v /opt/tools/legitimate_scanner.exe ./test_encrypted.exe
# Step 4: Deploy to isolated test VM
scp test_encrypted.exe testvm:/tmp/
# Step 5: Monitor detection results
# (In isolated VM) Execute and monitor with procmon
# Prepare research samples
SAMPLE_DIR="/data/research_samples"
OUTPUT_DIR="/data/encrypted_samples"
mkdir -p $OUTPUT_DIR
# Encrypt all samples with same parameters
for sample in $SAMPLE_DIR/*.exe; do
basename=$(basename "$sample")
hyperion -v "$sample" "$OUTPUT_DIR/${basename%.exe}_encrypted.exe"
echo "Processed: $basename"
done
# Archive for storage
tar -czf encrypted_samples_$(date +%Y%m%d).tar.gz $OUTPUT_DIR/
# Create detailed analysis report
cat > hyperion_analysis_report.txt << EOF
HYPERION PE CRYPTER ANALYSIS REPORT
Assessment Date: 2026-05-02
Assessment ID: SEC-2026-05-015
OVERVIEW:
Tested Hyperion v4.0 for encryption effectiveness
METHODOLOGY:
1. Baseline executable: legitimate_tool.exe (MD5: abc123...)
2. Encryption method: Default parameters
3. Output: encrypted_tool.exe
4. Detection testing: VirusTotal (authorized only)
FINDINGS:
- File size increase: [X] bytes
- Entropy change: [X]%
- Detectable signatures: [List]
- AV detection rate: [X]%
RECOMMENDATIONS:
- [Based on findings]
- [Remediation actions]
EOF
| Issue | Solution |
|---|
| Compilation error | Check compiler version: gcc --version |
| Input file not found | Verify path and permissions: ls -la input.exe |
| Invalid PE format | Ensure file is valid Windows executable |
| Output file issues | Check disk space: df -h |
| Stub execution fails | Test in clean VM environment |
- UPX: Executable packer/compressor
- Themida: Commercial code protection tool
- VirtualProtect: Windows API encryption research
- PEiD: PE file information tool
- procmon: Process monitoring (analysis)
- x64dbg: Debugger for malware analysis
- IDA Pro: Professional disassembly/debugging
- Windows PE format specifications
- Runtime encryption techniques
- Antivirus evasion research papers
- Malware analysis methodologies
- Security testing frameworks
- Offensive Security courses
- SANS Security Training
- Academic security research conferences
- Responsible disclosure platforms
IMPORTANT: Hyperion and similar crypters exist in a legal gray area:
- Legitimate uses: Authorized penetration testing, security research, endpoint protection evaluation
- Illegal uses: Distributing malware, unauthorized system access, bypassing security controls
- Liability: Users are responsible for all activities; using Hyperion without authorization is illegal in most jurisdictions
- Documentation: Maintain detailed records of all authorized assessments
Before using Hyperion: