Converting your GO bins to Shellcode and Using them in C#
How to convert binaries compiled in golang to shellcode
With release of Go1.15 a new "buildmode" flag has been released. -buildmode=pie
Lets do a simple demo of converting a go binary to shellcode and injecting it to other processes
Building Go Binary
I am going to build a simple golang program which launches calc
Now lets build the program. I am using Windows 10 amd64 machine. You may need to specify other parameters if you are cross compiling
The command will generate a static binary calc.exe.
Converting Binary to Shellcode
Here we will use TheWover's Donut to convert the calc.exe to shellcode. The command is quite simple
Using DonutTest
DonutTest is a subproject of Donut repo. DonutTest provides a test harness to test your generated Shellcode.
To use our calc.bin inside donut test we need to convert it into base64
Now paste the shellcode in DonutTest and compile. Your program should run as expected and you should see a calc pop
Credits:
Last updated