mirror of
https://github.com/hasherezade/pe_to_shellcode
synced 2026-06-08 14:35:13 +00:00
v0.7
pe_to_shellcode
Converts PE so that it can be then injected just like a normal shellcode.
(At the same time, the output file remains to be a valid PE).
Supports both 32 and 64 bit PEs
Clone:
Use recursive clone to get the repo together with all the submodules:
git clone --recursive https://github.com/hasherezade/pe_to_shellcode.git
How to use it:
- Use pe2shc.exe to convert a PE of your choice:
pe2shc.exe <path to your PE> [output path*]
* - optional
If the PE was successfuly converted, pe2shc will let you know where the output was saved:
[+] Saved to file: <converted file>
i.e.
[+] Saved to file: test_file.shc.exe
- Use runshc.exe to run the output file and check if the conversion went fine:
runshc.exe <converted file>
- If the file runs as the original PE, it confirms that the conversion was successful!
Now you can use the converted PE just like you would use a shellcode: inject it to a target and execute from the beginning of the buffer. No additional PE loaders are required.
At the same time, you can keep using the converted file as a regular PE.
Latest builds*:
*those builds are available for testing and they may be ahead of the official release:
- pe2shc.exe - PE to shellcode converter
- runshc32.exe - a utility to run/test 32-bit shellcode (loads and deploys)
- runshc64.exe - a utility to run/test 64-bit shellcode (loads and deploys)
Description
Languages
C++
50.2%
Assembly
38.4%
CMake
10.2%
Batchfile
0.7%
C
0.5%