A shellcode runner write in Rust use windows-rs.
Install rustup, use nightly toochain.
rustup default nightly
Use msfvenom generate shellcode for test.
msfvenom -p windows/x64/exec CMD=calc.exe --platform win -f raw -o calc64.raw
Build:
cargo build
Usage:
rs_shellcode
USAGE:
rs_shellcode.exe [FLAGS] [OPTIONS] -f <file>
FLAGS:
-b set breakpoint in debugger
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-f <file> shellcode path
-o <offset> shellcode offset
Run:
./target/debug/rs_shellcode.exe -f <SHELLCODE_PATH>
When your shellcode not start at offset 0, you can specify the offset use -o
:
./target/debug/rs_shellcode.exe -f <SHELLCODE_PATH> -o 0x30
Run with breakpoint flag (-b
):
./target/debug/rs_shellcode.exe -f <SHELLCODE_PATH> -b
use this flag, you can break just before your shellcode in the debugger, which will make your life easier.