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

📄 read.cpp

📁 在WINDOWS CE.NET 系统中读RDP连接的用户名的密码.
💻 CPP
字号:
// read.cpp : Defines the entry point for the application.
//

#include "stdafx.h"

#include "Wincrypt.h"


int WINAPI WinMain(	HINSTANCE hInstance,
					HINSTANCE hPrevInstance,
					LPTSTR    lpCmdLine,
					int       nCmdShow)
{
 	// TODO: Place code here.

	HKEY	hKeyRDP;
	TCHAR	szConnectionsKey[500] = {0};
	char	m_passwd[256];//登录密码
	DWORD   dwPassWordSize = sizeof(m_passwd);
	TCHAR	strName[32]={0};
	TCHAR	strPasswd[24]={0};


	HKEY hKeyRDPName;
	TCHAR RdpName[100];

	//lpcbname 只能定义一个。
	DWORD dwIndexRdp=0,lpcbname=100;
	long retrdp=0,retica=0,rettelnet=0;
	DWORD dwIndexIca=0;
	DWORD dwIndexWterm=0;

	int i=0;
	TCHAR szConnectionsKeyRdp[500] = {0};

	LONG  lRet;//读注册表

	int nLength = 0;

//打开特定的RDP联接项目注册表***********************
	_tcscpy (szConnectionsKeyRdp, _T("Software\\Microsoft\\WBT\\Clients\\Registration\\RDP\\Connections"));
	_tcscat (szConnectionsKeyRdp, L"\\");

	RegOpenKeyEx(HKEY_LOCAL_MACHINE, szConnectionsKeyRdp,0, KEY_ENUMERATE_SUB_KEYS, &hKeyRDPName);

	while((lRet = RegEnumKeyEx(hKeyRDPName, dwIndexRdp++, RdpName, &lpcbname,NULL,NULL,NULL,NULL)) == ERROR_SUCCESS)
	{

			_tcscpy (szConnectionsKey, _T("Software\\Microsoft\\Terminal Server Client"));
			_tcscat (szConnectionsKey, L"\\");
			_tcscat (szConnectionsKey, RdpName);

			RegOpenKeyEx(HKEY_CURRENT_USER,szConnectionsKey,0,KEY_READ,&hKeyRDP);

			RegQueryValueEx(hKeyRDP,TEXT("Password 51"),NULL,NULL,(PBYTE)&m_passwd,&dwPassWordSize);
//			RegQueryValueEx(hKeyRDP,TEXT("Password"),NULL,NULL,(PBYTE)&m_passwd,&dwPassWordSize);

			PBYTE pbPassword = (unsigned char *)m_passwd;
			DATA_BLOB blobIn, blobOut;
			blobIn.cbData = dwPassWordSize;
			blobIn.pbData = pbPassword;
			blobOut.cbData = 0;
			blobOut.pbData = NULL;

			//RDP自动登陆密码解密
			if (!CryptUnprotectData(&blobIn, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &blobOut))
			{
			}
			if (blobOut.pbData)
				_stprintf (strPasswd, _T("RDP连接名称为%s,密码为%s"), RdpName,blobOut.pbData);


			MessageBox(NULL,strPasswd,RdpName,MB_OK);

		ZeroMemory(RdpName,100);
		lpcbname=100;
	}
	RegCloseKey(hKeyRDPName);




	return 0;
}

⌨️ 快捷键说明

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