I did not find a shellcode binder for Windows 64 bit systems, so here is my version:
#include <windows.h>
unsigned char sc[] =
// your shellcode here
typedef void (*FUNCPTR)();
int main(int argc, char **argv)
{
FUNCPTR func;
int len;
DWORD oldProtect;
len = sizeof(sc);
if (0 == VirtualProtect(&sc, len, PAGE_EXECUTE_READWRITE, &oldProtect))
return 1;
func = (FUNCPTR)sc;
func();
return 0;
}
For development I used TDM-GCC-64, compiled with gcc -m64 binder.c.
This article brought me on the right path for using VirtualProtect:
http://mcdermottcybersecurity.com/articles/windows-x64-shellcode
More on VirtualProtect:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366898(v=vs.85).aspx
Leave a Reply