A simple Rust program that takes a binary file and encrypts it with the given key and initialization vector using AES-256. The output file can then be loaded into a dropper or similar tool and decrypted for execution.
This tool is intended exclusively for educational purposes and for using in legitimate penetration testing and red team engagements.
PS C:\Users\User\Desktop> .\shellcode_encrypter.exe -h
Usage: shellcode_encrypter.exe [OPTIONS]
Options:
-k, --key <KEY> The key to use for encryption/decryption. Must be 32 bytes to accommodate AES-256 [default: "This is a key and it's 32 bytes!"]
--iv <IV> Initialization vector used in AES-256 encryption [default: "This is 16 bytes!!"]
-i, --input-file <INPUT_FILE> The binary shellcode file to be encrypted [default: shellcode.bin]
-o, --output-file <OUTPUT_FILE> The output file to write the encrypted shellcode to [default: encrypted_shellcode.bin]
-h, --help Print help
PS C:\Users\User\Desktop> .\shellcode_encrypter.exe -i calc.bin -o enc_calc.bin --iv "This is a great new IV" --key '7&hu0OXVy#SVg8EO@4ECcFO6ACXYiuyc'
[+] Encrypted shellcode written to file enc_calc.bin