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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? telnetd.cpp

?? 遠(yuǎn)程服務(wù)端控制
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#define WIN32_LEAN_AND_MEAN

#include <stdlib.h>
#include <windows.h>
#include <process.h>
#include <winsock2.h>
#include <stdio.h>

#define ERR_BUFF_LEN 1024

#pragma comment( lib, "wsock32" )
#pragma comment( lib, "advapi32" ) 

extern long restartCount;

extern volatile BOOL requestReset;


//Winsock Data block
WSADATA wi;
//Thread handles
UINT thrid_sock;
UINT thrid_console;
UINT thrid_error;
//Stdin/out handles
HANDLE stdinput;
HANDLE stdoutput;
HANDLE stderror;
// "Input" pipe for the console.
HANDLE readInput;
HANDLE writeInput;
// Console "Output" pipe.
HANDLE readOutput;
HANDLE writeOutput;
// Console stderr pipe.
HANDLE readError;
HANDLE writeError;
//Main "listen" socket.
sockaddr_in myaddr;
SOCKET sock;
//Telnet connection socket
SOCKET talk;
//"Share handles" security descriptor
SECURITY_ATTRIBUTES security = {
	sizeof(SECURITY_ATTRIBUTES),
		NULL,
		TRUE
};


//Console Process creation information
STARTUPINFO si;

PROCESS_INFORMATION pi;

HANDLE m_SocketClosed;

unsigned __stdcall run_sock(void*)
{
	char buffer;
	int read;
	DWORD writ;
	while(TRUE)
	{
		read=recv(talk,&buffer,1,0);
		if(!read || read == SOCKET_ERROR)
		{
			if( m_SocketClosed )
				::SetEvent(m_SocketClosed);
			break;
		}
		send(talk, &buffer, 1,0);
		WriteFile( writeInput, &buffer, read, &writ,NULL);
	}
	return 0;
}

#define BUFF_SIZE 256
unsigned __stdcall run_console(void*)
{
	char buffer[BUFF_SIZE];
	DWORD read;
	while(ReadFile(readOutput,buffer,BUFF_SIZE,&read,NULL))
		send(talk,buffer,read,0);
	if( m_SocketClosed )
		::SetEvent(m_SocketClosed);
	return 0;
}

unsigned __stdcall run_error(void*)
{
	char buffer[BUFF_SIZE];
	DWORD read;
	while(ReadFile(readError,buffer,BUFF_SIZE,&read,NULL))
		send(talk,buffer,read,0);
	if( m_SocketClosed )
		::SetEvent(m_SocketClosed);
	return 0;
}




static BOOL
getAndAllocateLogonSid(
	HANDLE hToken,
	PSID *pLogonSid
)
{
	PTOKEN_GROUPS	ptgGroups = NULL;
	DWORD			cbBuffer  = 0;  	/* allocation size */
	DWORD			dwSidLength;		/* required size to hold Sid */
	UINT			i;					/* Sid index counter */
	BOOL			bSuccess  = FALSE;	/* assume this function will fail */

	*pLogonSid = NULL; // invalidate pointer

	/*
	** Get neccessary memory allocation
	*/
	GetTokenInformation(hToken, TokenGroups, ptgGroups, cbBuffer, &cbBuffer);

	if (cbBuffer)
		ptgGroups = (PTOKEN_GROUPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cbBuffer);

	/*
	**	Get Sids for all groups the user belongs to
	*/
	bSuccess = GetTokenInformation(
					hToken,
					TokenGroups,
					ptgGroups,
					cbBuffer,
					&cbBuffer
				);
	if (bSuccess == FALSE)
		goto finish3;

	/*
	** Get the logon Sid by looping through the Sids in the token
	*/
	for(i = 0 ; i < ptgGroups->GroupCount ; i++)
	{
		if (ptgGroups->Groups[i].Attributes & SE_GROUP_LOGON_ID)
		{
			/*
			** insure we are dealing with a valid Sid
			*/
			bSuccess = IsValidSid(ptgGroups->Groups[i].Sid);
			if (bSuccess == FALSE)
				goto finish3;

			/*
			** get required allocation size to copy the Sid
			*/
			dwSidLength=GetLengthSid(ptgGroups->Groups[i].Sid);

			/*
			** allocate storage for the Logon Sid
			*/
			if(
				(*pLogonSid = (PSID)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, dwSidLength))
				==
				NULL
			)
			{
				bSuccess = FALSE;
				goto finish3;
			}

			/*
			** copy the Logon Sid to the storage we just allocated
			*/
			bSuccess = CopySid(
							dwSidLength,
							*pLogonSid,
							ptgGroups->Groups[i].Sid
						);

			break;
		}
	}


finish3:
	/*
	** free allocated resources
	*/
	if (bSuccess == FALSE)
	{
		if(*pLogonSid != NULL)
		{
			HeapFree(GetProcessHeap(), 0, *pLogonSid);
			*pLogonSid = NULL;
		}
	}

	if (ptgGroups != NULL)
		HeapFree(GetProcessHeap(), 0, ptgGroups);

	return bSuccess;
}
 
 
static BOOL
setSidOnAcl(
	PSID pSid,
	PACL pAclSource,
	PACL *pAclDestination,
	DWORD AccessMask,
	BOOL bAddSid,
	BOOL bFreeOldAcl
)
{
	ACL_SIZE_INFORMATION	AclInfo;
	DWORD					dwNewAclSize;
	LPVOID					pAce;
	DWORD					AceCounter;
	BOOL					bSuccess=FALSE;

	/*
	** If we were given a NULL Acl, just provide a NULL Acl
	*/
	if (pAclSource == NULL)
	{
		*pAclDestination = NULL;
		return TRUE;
	}

	if (!IsValidSid(pSid)) return FALSE;

	/*
	**	Get ACL's parameters
	*/
	if (
		!GetAclInformation(
			pAclSource,
			&AclInfo,
			sizeof(ACL_SIZE_INFORMATION),
			AclSizeInformation
		)
	)
		return FALSE;

	/*
	**	Compute size for new ACL, based on
	**	addition or subtraction of ACE
	*/
	if (bAddSid)
	{
		dwNewAclSize = AclInfo.AclBytesInUse  +
							sizeof(ACCESS_ALLOWED_ACE)  +
							GetLengthSid(pSid)          -
							sizeof(DWORD)               ;
	}
	else
	{
		dwNewAclSize = AclInfo.AclBytesInUse  -
							sizeof(ACCESS_ALLOWED_ACE)  -
							GetLengthSid(pSid)          +
							sizeof(DWORD)               ;
	}

	*pAclDestination = (PACL) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwNewAclSize);
	if(*pAclDestination == NULL)
		return FALSE;

	/*
	** initialize new Acl
	*/
	bSuccess = InitializeAcl(*pAclDestination, dwNewAclSize, ACL_REVISION);
	if (bSuccess == FALSE)
		goto finish5;

	/*
	** copy existing ACEs to new ACL
	*/
	for(AceCounter = 0 ; AceCounter < AclInfo.AceCount ; AceCounter++)
	{
		/*
		** fetch existing ace
		*/
		bSuccess = GetAce(pAclSource, AceCounter, &pAce);
		if (bSuccess == FALSE)
			goto finish5;

		/*
		** check to see if we are removing the ACE
		*/
		if (!bAddSid)
		{
			/*
			** we only care about ACCESS_ALLOWED ACEs
			*/
			if ((((PACE_HEADER)pAce)->AceType) == ACCESS_ALLOWED_ACE_TYPE)
			{
				PSID pTempSid=(PSID)&((PACCESS_ALLOWED_ACE)pAce)->SidStart;
				/*
				** if the Sid matches, skip adding this Sid
				*/
				if (EqualSid(pSid, pTempSid)) continue;
			}
		}

		/*
		** append ACE to ACL
		*/
		bSuccess = AddAce(
						*pAclDestination,
						ACL_REVISION,
						0,  // maintain Ace order
						pAce,
						((PACE_HEADER)pAce)->AceSize
					);
		if (bSuccess == FALSE)
			goto finish5;

	}

	/*
	** If appropriate, add ACE representing pSid
	*/
	if (bAddSid)
		bSuccess = AddAccessAllowedAce(
						*pAclDestination,
						ACL_REVISION,
						AccessMask,
						pSid
					);

finish5:
	/*
	** free memory if an error occurred
	*/
	if (!bSuccess)
	{
		if(*pAclDestination != NULL)
			HeapFree(GetProcessHeap(), 0, *pAclDestination);
	}
	else if (bFreeOldAcl)
		HeapFree(GetProcessHeap(), 0, pAclSource);

	return bSuccess;
}

static BOOL
setWinstaDesktopSecurity(
	HWINSTA hWinsta,
	HDESK hDesktop,
	PSID pLogonSid,
	BOOL bGrant,
	HANDLE hToken
)
{
	SECURITY_INFORMATION	si = DACL_SECURITY_INFORMATION;
	PSECURITY_DESCRIPTOR	sdDesktop = NULL;
	PSECURITY_DESCRIPTOR	sdWinsta = NULL;
	SECURITY_DESCRIPTOR		sdNewDesktop;
	SECURITY_DESCRIPTOR		sdNewWinsta;
	DWORD					sdDesktopLength	= 0;	/* allocation size */
	DWORD					sdWinstaLength	= 0;	/* allocation size */
	PACL					pDesktopDacl;		/* previous Dacl on Desktop */
	PACL					pWinstaDacl;        /* previous Dacl on Winsta */
	PACL					pNewDesktopDacl	= NULL;	/* new Dacl for Desktop */
	PACL					pNewWinstaDacl	= NULL;	/* new Dacl for Winsta */
	BOOL					bDesktopDaclPresent;
	BOOL					bWinstaDaclPresent;
	BOOL					bDaclDefaultDesktop;
	BOOL					bDaclDefaultWinsta;
	BOOL					bSuccess		= FALSE;
	PSID					pUserSid = NULL;

	/*
	** Obtain security descriptor for Desktop
	*/
	GetUserObjectSecurity(
		hDesktop,
		&si,
		sdDesktop,
		sdDesktopLength,
		&sdDesktopLength
	);

	if (sdDesktopLength)
		sdDesktop = (PSECURITY_DESCRIPTOR)HeapAlloc(
						GetProcessHeap(), HEAP_ZERO_MEMORY, sdDesktopLength);

	bSuccess = GetUserObjectSecurity(
		hDesktop,
		&si,
		sdDesktop,
		sdDesktopLength,
		&sdDesktopLength
	);

	if (bSuccess == FALSE)
		goto finish4;

	/*
	** Obtain security descriptor for Window station
	*/
	GetUserObjectSecurity(
		hWinsta,
		&si,
		sdWinsta,
		sdWinstaLength,
		&sdWinstaLength
	);

	if (sdWinstaLength)
		sdWinsta = (PSECURITY_DESCRIPTOR)HeapAlloc(
							GetProcessHeap(), HEAP_ZERO_MEMORY, sdWinstaLength);

	bSuccess = GetUserObjectSecurity(
		hWinsta,
		&si,
		sdWinsta,
		sdWinstaLength,
		&sdWinstaLength
	);

	if (bSuccess == FALSE)
		goto finish4;

	/*

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品狼人久久影院观看方式| 久久久精品综合| 国产一区二区看久久| 一区二区三区不卡视频在线观看 | 久久久青草青青国产亚洲免观| av电影在线观看一区| 日韩精品91亚洲二区在线观看 | 精品国产一区二区三区不卡| 91视频xxxx| 国产精品一级二级三级| 午夜激情久久久| 亚洲人精品一区| 欧美激情一区二区三区四区 | 国产日产欧美一区二区三区 | 欧美男同性恋视频网站| av成人免费在线| 精品一区二区三区免费播放| 亚洲成人自拍网| 亚洲欧美国产77777| 国产欧美日韩不卡免费| 精品美女一区二区| 91麻豆精品国产自产在线观看一区| 成人激情开心网| 国产成人亚洲综合a∨猫咪| 久久成人免费电影| 麻豆传媒一区二区三区| 五月婷婷综合激情| 一区二区三区中文字幕| 亚洲天堂网中文字| 国产精品国产三级国产a| 中文字幕乱码亚洲精品一区| 久久精品视频在线看| 精品久久国产97色综合| 日韩美女主播在线视频一区二区三区| 欧美另类一区二区三区| 欧美日韩另类国产亚洲欧美一级| 色琪琪一区二区三区亚洲区| 91社区在线播放| 91麻豆国产福利精品| 一本一道综合狠狠老| 欧美性生交片4| 欧美日本免费一区二区三区| 欧美日本在线看| 日韩精品一区二区三区视频播放| 日韩久久久精品| 26uuu国产电影一区二区| 精品国产1区二区| 久久久久久久综合日本| 国产精品色噜噜| 一区二区三区在线视频免费观看| 亚洲日韩欧美一区二区在线| 亚洲在线视频一区| 天涯成人国产亚洲精品一区av| 午夜欧美电影在线观看| 九色|91porny| 国产不卡视频一区| 色婷婷激情一区二区三区| 欧美日韩视频在线第一区 | 中文字幕第一区二区| 最近中文字幕一区二区三区| 亚洲精品亚洲人成人网| 亚洲v中文字幕| 国产一区久久久| 成人av资源在线| 91麻豆国产福利精品| 欧美一区二区在线不卡| 久久久久国产精品麻豆| 综合久久综合久久| 五月激情综合色| 极品少妇一区二区| 99久久精品情趣| 欧美日韩一区二区三区四区五区| 日韩午夜激情视频| 国产精品入口麻豆原神| 亚洲va欧美va人人爽午夜| 国产一区在线精品| 在线免费观看日韩欧美| 日韩欧美三级在线| 国产精品久久精品日日| 天堂va蜜桃一区二区三区漫画版 | 北岛玲一区二区三区四区| 欧美中文字幕一二三区视频| 欧美电视剧免费全集观看| 亚洲欧洲在线观看av| 日韩激情视频在线观看| 成人av资源在线| 日韩情涩欧美日韩视频| 亚洲人成影院在线观看| 秋霞午夜av一区二区三区| 成人av在线观| 日韩女同互慰一区二区| 亚洲综合一区二区三区| 国产一区二区h| 欧美区在线观看| 国产精品久久久久久久久久久免费看 | 欧美一级xxx| 亚洲人吸女人奶水| 国产一区二区三区国产| 欧美日韩一区二区在线观看 | 制服视频三区第一页精品| 国产无遮挡一区二区三区毛片日本| 洋洋av久久久久久久一区| 精品一区二区三区免费观看| 欧美日韩亚洲国产综合| 中文字幕一区二区三区在线不卡 | 精品久久久久久最新网址| 一区二区日韩电影| 国产sm精品调教视频网站| 日韩精品资源二区在线| 亚洲午夜三级在线| 99在线精品视频| 久久精品一区二区| 激情成人综合网| 日韩一区二区在线观看| 五月激情综合网| 欧美午夜不卡视频| 一区二区三区四区亚洲| www.成人在线| 中文字幕国产一区| 成人精品鲁一区一区二区| 精品国内二区三区| 麻豆一区二区99久久久久| 欧美精品三级在线观看| 一区二区三区小说| 色婷婷狠狠综合| 亚洲黄色性网站| 色8久久人人97超碰香蕉987| 亚洲色图19p| 色猫猫国产区一区二在线视频| 国产精品理论片| 99视频一区二区| 亚洲女同ⅹxx女同tv| www.欧美日韩| 亚洲卡通动漫在线| 91黄色免费网站| 亚洲午夜电影网| 欧美精品1区2区| 日韩黄色免费网站| 日韩一区二区高清| 精品一区二区在线免费观看| 日韩欧美久久久| 国产麻豆9l精品三级站| 国产欧美日韩另类一区| av电影一区二区| 一区二区高清免费观看影视大全| 在线一区二区三区四区五区 | 欧美三级乱人伦电影| 性欧美疯狂xxxxbbbb| 91精品国产综合久久国产大片| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美一区二区在线观看| 黄色精品一二区| 中文字幕免费在线观看视频一区| 99综合影院在线| 亚洲va天堂va国产va久| 日韩欧美一级在线播放| 岛国精品一区二区| 一区二区高清在线| 日韩精品中午字幕| 国产福利一区在线| 一区二区三区四区激情| 欧美午夜精品免费| 久久99国产乱子伦精品免费| 国产精品网友自拍| 欧美亚洲自拍偷拍| 久久精品72免费观看| 亚洲国产岛国毛片在线| 欧美性色黄大片| 狠狠色狠狠色综合日日91app| 国产精品欧美极品| 欧美日韩国产精选| 国产成人在线看| 亚洲高清视频在线| 国产网站一区二区| 日本韩国精品在线| 久久精品国产一区二区| 亚洲男人都懂的| 精品国产成人系列| 色噜噜狠狠色综合欧洲selulu| 蜜臀av国产精品久久久久| 亚洲欧洲av在线| 欧美一区二区视频观看视频| yourporn久久国产精品| 日韩精品一级中文字幕精品视频免费观看 | 99久久综合精品| 日本aⅴ免费视频一区二区三区 | 国产精品久久久爽爽爽麻豆色哟哟| 色妞www精品视频| 国产精品一级片在线观看| 香蕉加勒比综合久久| 国产精品女主播av| 精品日韩欧美在线| 欧美午夜电影网| 成人国产精品免费网站| 久久99热这里只有精品| 亚洲男人天堂av| 国产精品乱码一区二三区小蝌蚪| 51午夜精品国产| 欧美在线影院一区二区| 国产精品综合久久|