В MSVC это может выглядеть так:
void* shellcodeStart;
void* shellcodeEnd;
__asm {
mov shellcodeStart, offset shellcode_start
mov shellcodeEnd, offset shellcode_end
jmp shellcode_end
shellcode_start:
... // your code
shellcode_end:
}
size_t cb = shellcodeEnd - shellcodeStart;
WriteProcessMemory(hProcess, remoteAddress, shellcodeStart, cb, NULL);