⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msproxy_clientprotocol.c

📁 sock protocol ,it is useful!
💻 C
📖 第 1 页 / 共 4 页
字号:
			mem += sizeof(req->packet._1.magic40);			memcpy(mem, &req->packet._1.pad40, sizeof(req->packet._1.pad40));			mem += sizeof(req->packet._1.pad40);			memcpy(mem, &req->packet._1.magic45, sizeof(req->packet._1.magic45));			mem += sizeof(req->packet._1.magic45);			memcpy(mem, &req->packet._1.pad45, sizeof(req->packet._1.pad45));			mem += sizeof(req->packet._1.pad45);			memcpy(mem, &req->packet._1.magic50, sizeof(req->packet._1.magic50));			mem += sizeof(req->packet._1.magic50);			memcpy(mem, &req->packet._1.pad50, sizeof(req->packet._1.pad50));			mem += sizeof(req->packet._1.pad50);			strcpy(mem, req->username);			mem += strlen(req->username) + 1;			strcpy(mem, req->unknown);			mem += strlen(req->unknown) + 1;			strcpy(mem, req->executable);			mem += strlen(req->executable) + 1;			strcpy(mem, req->clienthost);			mem += strlen(req->clienthost) + 1;			break;		case MSPROXY_USERINFO:			memcpy(mem, &req->packet._2.pad1, sizeof(req->packet._2.pad1));			mem += sizeof(req->packet._2.pad1);			memcpy(mem, &req->packet._2.magic3, sizeof(req->packet._2.magic3));			mem += sizeof(req->packet._2.magic3);			memcpy(mem, &req->packet._2.pad3, sizeof(req->packet._2.pad3));			mem += sizeof(req->packet._2.pad3);			memcpy(mem, &req->packet._2.magic5, sizeof(req->packet._2.magic5));			mem += sizeof(req->packet._2.magic5);			memcpy(mem, &req->packet._2.pad5, sizeof(req->packet._2.pad5));			mem += sizeof(req->packet._2.pad5);			memcpy(mem, &req->packet._2.magic10, sizeof(req->packet._2.magic10));			mem += sizeof(req->packet._2.magic10);			memcpy(mem, &req->packet._2.pad10, sizeof(req->packet._2.pad10));			mem += sizeof(req->packet._2.pad10);			memcpy(mem, &req->packet._2.magic15, sizeof(req->packet._2.magic15));			mem += sizeof(req->packet._2.magic15);			memcpy(mem, &req->packet._2.pad15, sizeof(req->packet._2.pad15));			mem += sizeof(req->packet._2.pad15);			memcpy(mem, &req->packet._2.magic20, sizeof(req->packet._2.magic20));			mem += sizeof(req->packet._2.magic20);			memcpy(mem, &req->packet._2.magic25, sizeof(req->packet._2.magic25));			mem += sizeof(req->packet._2.magic25);			memcpy(mem, &req->packet._2.magic30, sizeof(req->packet._2.magic30));			mem += sizeof(req->packet._2.magic30);			memcpy(mem, &req->packet._2.pad20, sizeof(req->packet._2.pad20));			mem += sizeof(req->packet._2.pad20);			memcpy(mem, &req->packet._2.magic35, sizeof(req->packet._2.magic35));			mem += sizeof(req->packet._2.magic35);			memcpy(mem, &req->packet._2.pad25, sizeof(req->packet._2.pad25));			mem += sizeof(req->packet._2.pad25);			memcpy(mem, &req->packet._2.magic35, sizeof(req->packet._2.magic35));			mem += sizeof(req->packet._2.magic35);			memcpy(mem, &req->packet._2.pad25, sizeof(req->packet._2.pad25));			mem += sizeof(req->packet._2.pad25);			memcpy(mem, &req->packet._2.magic50, sizeof(req->packet._2.magic50));			mem += sizeof(req->packet._2.magic50);			memcpy(mem, &req->packet._2.pad50, sizeof(req->packet._2.pad50));			mem += sizeof(req->packet._2.pad50);			memcpy(mem, &req->packet._2.magic55, sizeof(req->packet._2.magic55));			mem += sizeof(req->packet._2.magic55);			memcpy(mem, &req->packet._2.pad55, sizeof(req->packet._2.pad55));			mem += sizeof(req->packet._2.pad55);			memcpy(mem, &req->packet._2.magic60, sizeof(req->packet._2.magic60));			mem += sizeof(req->packet._2.magic60);			strcpy(mem, req->username);			mem += strlen(req->username) + 1;			strcpy(mem, req->unknown);			mem += strlen(req->unknown) + 1;			strcpy(mem, req->executable);			mem += strlen(req->executable) + 1;			strcpy(mem, req->clienthost);			mem += strlen(req->clienthost) + 1;			break;		case MSPROXY_BIND:		case MSPROXY_SOMETHING:			memcpy(mem, &req->packet._3.pad1, sizeof(req->packet._3.pad1));			mem += sizeof(req->packet._3.pad1);			memcpy(mem, &req->packet._3.magic2, sizeof(req->packet._3.magic2));			mem += sizeof(req->packet._3.magic2);			memcpy(mem, &req->packet._3.pad10, sizeof(req->packet._3.pad10));			mem += sizeof(req->packet._3.pad10);			memcpy(mem, &req->packet._3.bindaddr, sizeof(req->packet._3.bindaddr));			mem += sizeof(req->packet._3.bindaddr);			memcpy(mem, &req->packet._3.bindport, sizeof(req->packet._3.bindport));			mem += sizeof(req->packet._3.bindport);			memcpy(mem, &req->packet._3.pad15, sizeof(req->packet._3.pad15));			mem += sizeof(req->packet._3.pad15);			memcpy(mem, &req->packet._3.magic3, sizeof(req->packet._3.magic3));			mem += sizeof(req->packet._3.magic3);			memcpy(mem, &req->packet._3.boundport,			sizeof(req->packet._3.boundport));			mem += sizeof(req->packet._3.boundport);			memcpy(mem, &req->packet._3.pad20, sizeof(req->packet._3.pad20));			mem += sizeof(req->packet._3.pad20);			memcpy(mem, &req->packet._3.NTLMSSP, sizeof(req->packet._3.NTLMSSP));			mem += sizeof(req->packet._3.NTLMSSP);			memcpy(mem, &req->packet._3.magic5, sizeof(req->packet._3.magic5));			mem += sizeof(req->packet._3.magic5);			memcpy(mem, &req->packet._3.pad25, sizeof(req->packet._3.pad25));			mem += sizeof(req->packet._3.pad25);			memcpy(mem, &req->packet._3.magic10, sizeof(req->packet._3.magic10));			mem += sizeof(req->packet._3.magic10);			memcpy(mem, &req->packet._3.magic15, sizeof(req->packet._3.magic15));			mem += sizeof(req->packet._3.magic15);			memcpy(mem, &req->packet._3.magic20, sizeof(req->packet._3.magic20));			mem += sizeof(req->packet._3.magic20);			memcpy(mem, &req->packet._3.pad30, sizeof(req->packet._3.pad30));			mem += sizeof(req->packet._3.pad30);			memcpy(mem, &req->packet._3.magic25, sizeof(req->packet._3.magic25));			mem += sizeof(req->packet._3.magic25);			memcpy(mem, &req->packet._3.magic30, sizeof(req->packet._3.magic30));			mem += sizeof(req->packet._3.magic30);			memcpy(mem, &req->packet._3.pad40, sizeof(req->packet._3.pad40));			mem += sizeof(req->packet._3.pad40);			memcpy(mem, &req->packet._3.magic50, sizeof(req->packet._3.magic50));			mem += sizeof(req->packet._3.magic50);			memcpy(mem, &req->packet._3.pad50, sizeof(req->packet._3.pad50));			mem += sizeof(req->packet._3.pad50);			memcpy(mem, &req->packet._3.magic55, sizeof(req->packet._3.magic55));			mem += sizeof(req->packet._3.magic55);			memcpy(mem, &req->packet._3.pad55, sizeof(req->packet._3.pad55));			mem += sizeof(req->packet._3.pad55);			break;		case MSPROXY_BIND2:		case MSPROXY_SOMETHING_2:			memcpy(mem, &req->packet._4.pad1, sizeof(req->packet._4.pad1));			mem += sizeof(req->packet._4.pad1);			memcpy(mem, &req->packet._4.magic1, sizeof(req->packet._4.magic1));			mem += sizeof(req->packet._4.magic1);			memcpy(mem, &req->packet._4.magic2, sizeof(req->packet._4.magic2));			mem += sizeof(req->packet._4.magic2);			memcpy(mem, &req->packet._4.pad2, sizeof(req->packet._4.pad2));			mem += sizeof(req->packet._4.pad2);			memcpy(mem, &req->packet._4.magic3, sizeof(req->packet._4.magic3));			mem += sizeof(req->packet._4.magic3);			memcpy(mem, &req->packet._4.pad3, sizeof(req->packet._4.pad3));			mem += sizeof(req->packet._4.pad3);			memcpy(mem, &req->packet._4.magic4, sizeof(req->packet._4.magic4));			mem += sizeof(req->packet._4.magic4);			memcpy(mem, &req->packet._4.boundport,			sizeof(req->packet._4.boundport));			mem += sizeof(req->packet._4.boundport);			memcpy(mem, &req->packet._4.pad4, sizeof(req->packet._4.pad4));			mem += sizeof(req->packet._4.pad4);			memcpy(mem, &req->packet._4.NTLMSSP, sizeof(req->packet._4.NTLMSSP));			mem += sizeof(req->packet._4.NTLMSSP);			memcpy(mem, &req->packet._4.magic5, sizeof(req->packet._4.magic5));			mem += sizeof(req->packet._4.magic5);			memcpy(mem, &req->packet._4.pad5, sizeof(req->packet._4.pad5));			mem += sizeof(req->packet._4.pad5);			memcpy(mem, &req->packet._4.magic10, sizeof(req->packet._4.magic10));			mem += sizeof(req->packet._4.magic10);			memcpy(mem, &req->packet._4.magic10, sizeof(req->packet._4.magic10));			mem += sizeof(req->packet._4.magic10);			memcpy(mem, &req->packet._4.magic20, sizeof(req->packet._4.magic20));			mem += sizeof(req->packet._4.magic20);			memcpy(mem, &req->packet._4.pad10, sizeof(req->packet._4.pad10));			mem += sizeof(req->packet._4.pad10);			memcpy(mem, &req->packet._4.magic30, sizeof(req->packet._4.magic30));			mem += sizeof(req->packet._4.magic30);			memcpy(mem, &req->packet._4.pad15, sizeof(req->packet._4.pad15));			mem += sizeof(req->packet._4.pad15);			memcpy(mem, &req->packet._4.magic35, sizeof(req->packet._4.magic35));			mem += sizeof(req->packet._4.magic35);			memcpy(mem, &req->packet._4.magic40, sizeof(req->packet._4.magic40));			mem += sizeof(req->packet._4.magic40);			memcpy(mem, &req->packet._4.magic45, sizeof(req->packet._4.magic45));			mem += sizeof(req->packet._4.magic45);			memcpy(mem, &req->packet._4.pad20, sizeof(req->packet._4.pad20));			mem += sizeof(req->packet._4.pad20);			memcpy(mem, &req->packet._4.magic50, sizeof(req->packet._4.magic50));			mem += sizeof(req->packet._4.magic50);			memcpy(mem, &req->packet._4.magic55, sizeof(req->packet._4.magic55));			mem += sizeof(req->packet._4.magic55);			memcpy(mem, &req->packet._4.magic60, sizeof(req->packet._4.magic60));			mem += sizeof(req->packet._4.magic60);			memcpy(mem, &req->packet._4.pad25, sizeof(req->packet._4.pad25));			mem += sizeof(req->packet._4.pad25);			memcpy(mem, &req->packet._4.magic65, sizeof(req->packet._4.magic65));			mem += sizeof(req->packet._4.magic65);			memcpy(mem, &req->packet._4.magic70, sizeof(req->packet._4.magic70));			mem += sizeof(req->packet._4.magic70);			memcpy(mem, &req->packet._4.magic75, sizeof(req->packet._4.magic75));			mem += sizeof(req->packet._4.magic75);			break;		case MSPROXY_RESOLVE:			memcpy(mem, &req->packet.resolve.hostlength,			sizeof(req->packet.resolve.hostlength));			mem += sizeof(req->packet.resolve.hostlength);			memcpy(mem, &req->packet.resolve.pad1,			sizeof(req->packet.resolve.pad1));			mem += sizeof(req->packet.resolve.pad1);			memcpy(mem, &req->packet.resolve.host,			(size_t)req->packet.resolve.hostlength);			mem += req->packet.resolve.hostlength;			break;		case MSPROXY_LISTEN:		case MSPROXY_CONNECT:			memcpy(mem, &req->packet._5.magic1, sizeof(req->packet._5.magic1));			mem += sizeof(req->packet._5.magic1);			memcpy(mem, &req->packet._5.pad1, sizeof(req->packet._5.pad1));			mem += sizeof(req->packet._5.pad1);			memcpy(mem, &req->packet._5.magic3, sizeof(req->packet._5.magic3));			mem += sizeof(req->packet._5.magic3);			memcpy(mem, &req->packet._5.pad5, sizeof(req->packet._5.pad5));			mem += sizeof(req->packet._5.pad5);			memcpy(mem, &req->packet._5.magic6, sizeof(req->packet._5.magic6));			mem += sizeof(req->packet._5.magic6);			memcpy(mem, &req->packet._5.destport, sizeof(req->packet._5.destport));			mem += sizeof(req->packet._5.destport);			memcpy(mem, &req->packet._5.destaddr, sizeof(req->packet._5.destaddr));			mem += sizeof(req->packet._5.destaddr);			memcpy(mem, &req->packet._5.pad10, sizeof(req->packet._5.pad10));			mem += sizeof(req->packet._5.pad10);			memcpy(mem, &req->packet._5.magic10, sizeof(req->packet._5.magic10));			mem += sizeof(req->packet._5.magic10);			memcpy(mem, &req->packet._5.pad15, sizeof(req->packet._5.pad15));			mem += sizeof(req->packet._5.pad15);			memcpy(mem, &req->packet._5.srcport, sizeof(req->packet._5.srcport));			mem += sizeof(req->packet._5.srcport);			memcpy(mem, &req->packet._5.pad20, sizeof(req->packet._5.pad20));			mem += sizeof(req->packet._5.pad20);			strcpy(mem, req->executable);			break;		case MSPROXY_BINDINFO_ACK:		case MSPROXY_CONNECTED:			memcpy(mem, &req->packet._6.magic1, sizeof(req->packet._6.magic1));			mem += sizeof(req->packet._6.magic1);			memcpy(mem, req->packet._6.pad5, sizeof(req->packet._6.pad5));			mem += sizeof(req->packet._6.pad5);			memcpy(mem, &req->packet._6.magic5, sizeof(req->packet._6.magic5));			mem += sizeof(req->packet._6.magic5);			memcpy(mem, &req->packet._6.magic10, sizeof(req->packet._6.magic10));			mem += sizeof(req->packet._6.magic10);			memcpy(mem, req->packet._6.pad10, sizeof(req->packet._6.pad10));			mem += sizeof(req->packet._6.pad10);			memcpy(mem, &req->packet._6.magic15, sizeof(req->packet._6.magic15));			mem += sizeof(req->packet._6.magic15);			memcpy(mem, &req->packet._6.magic16, sizeof(req->packet._6.magic16));			mem += sizeof(req->packet._6.magic16);			memcpy(mem, &req->packet._6.magic20, sizeof(req->packet._6.magic20));			mem += sizeof(req->packet._6.magic20);			memcpy(mem, &req->packet._6.clientport,			sizeof(req->packet._6.clientport));			mem += sizeof(req->packet._6.clientport);			memcpy(mem, &req->packet._6.clientaddr,			sizeof(req->packet._6.clientaddr));			mem += sizeof(req->packet._6.clientaddr);			memcpy(mem, &req->packet._6.magic30, sizeof(req->packet._6.magic30));			mem += sizeof(req->packet._6.magic30);			memcpy(mem, &req->packet._6.magic35, sizeof(req->packet._6.magic35));			mem += sizeof(req->packet._6.magic35);			memcpy(mem, &req->packet._6.serverport,			sizeof(req->packet._6.serverport));			mem += sizeof(req->packet._6.serverport);			memcpy(mem, &req->packet._6.srcport, sizeof(req->packet._6.srcport));			mem += sizeof(req->packet._6.srcport);			memcpy(mem, &req->packet._6.boundport,			sizeof(req->packet._6.boundport));			mem += sizeof(req->packet._6.boundport);			memcpy(mem, &req->packet._6.boundaddr,			sizeof(req->packet._6.boundaddr));			mem += sizeof(req->packet._6.boundaddr);			memcpy(mem, req->packet._6.pad30, sizeof(req->packet._6.pad30));			mem += sizeof(req->packet._6.pad30);			break;		case MSPROXY_SESSIONEND:			break;		default:			SERRX(req->command);	}	return mem;}voidmsproxy_sessionsend(void){	const char *function = "msproxy_sessionsend()";	int i, max;	struct socksfd_t *socksfd;	slog(LOG_DEBUG, function);	for (i = 0, max = getdtablesize(); i < max; ++i) {		if ((socksfd = socks_getaddr((unsigned int)i)) == NULL)			continue;		if (socksfd->state.version != MSPROXY_V2)			continue;		msproxy_sessionend(socksfd->control, &socksfd->state.msproxy);	}}static voidmsproxy_sessionend(s, msproxy)	int s;	struct msproxy_state_t *msproxy;{	const char *function = "msproxy_sessionend()";	struct msproxy_request_t req;	slog(LOG_DEBUG, function);	bzero(&req, sizeof(req));	*req.username		= NUL;	*req.unknown		= NUL;	*req.executable	= NUL;	*req.clienthost	= NUL;	req.clientid	= msproxy->clientid;	req.serverid	= msproxy->serverid;	req.command		= htons(MSPROXY_SESSIONEND);	send_msprequest(s, msproxy, &req);}/* ARGSUSED */static voidmsproxy_keepalive(sig)	int sig;{	const char *function = "msproxy_keepalive()";	struct msproxy_request_t req;	struct msproxy_response_t res;	struct socksfd_t *socksfd;	int i, max;	slog(LOG_DEBUG, function);	for (i = 0, max = getdtablesize(); i < max; ++i) {		if ((socksfd = socks_getaddr((unsigned int)i)) == NULL)			continue;		if (socksfd->state.version != MSPROXY_V2		||  socksfd->state.inprogress)			continue;		slog(LOG_DEBUG, "%s: sending keepalive packet", function);		bzero(&req, sizeof(req));		req.clientid	= socksfd->state.msproxy.clientid;		req.serverid	= socksfd->state.msproxy.serverid;		req.command		= htons(MSPROXY_HELLO);		if (send_msprequest(socksfd->control, &socksfd->state.msproxy, &req)		== -1)			return;		if (recv_mspresponse(socksfd->control, &socksfd->state.msproxy, &res)		== -1)			return;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -