exec2shell
May 5, 2023 ยท View on GitHub
Extracts TEXT section of a PE, ELF, or Mach-O executable to shellcode
Installation
To install to GOPATH/bin:
go install github.com/Binject/exec2shell@latest
Build from source:
git clone https://github.com/Binject/exec2shell.git
cd exec2shell
go build .
Usage
exec2shell [-h|--help] -i|--in "
Arguments:
| Short Form | Long Form | Description | Default |
|---|---|---|---|
| -h | --help | Print help information | |
| -i | --in | Input PE, ELF, or Mach-o binary | |
| -o | --out | Output file - Shellcode as Binary | shellcode.bin |
| -c | --c-outfile | Output file - Shellcode as C Array | |
| -n | --c-var | Sets variable name for C Array output. | SHELLCODE |
| -g | --go-outfile | Output file - Shellcode as Go Array | |
| -p | --go-pkg | Sets package string for Go Array output. | shellcode |
| -v | --go-var | Sets variable name for Go Array output. | shellcode |
Examples
Make shellcode from a binary:
exec2shell -i someprog.exe -o shellcode.bin
Make a C-Array style header file shellcode:
exec2shell -i someprog.exe -c shellcode.h -n SHELLCODE_VARNAME
Make a Go-Array style shellcode
exec2shell -i someprog.exe -g shellcode.go -p mypackage -v GO_VARNAME
Make All the Things at Once:
exec2shell -i someprog.exe -o shellcode.bin -c shellcode.h -g shellcode.go -p mypackage -n C_VARNAME -v GO_VARNAME