Как расшифровать элемент хранилища Windows с помощью C ++? - PullRequest
0 голосов
/ 05 мая 2019

Я делаю утилиту просмотра хранилища.Итак, мне нужно расшифровать хранилище Windows.Я знаю, что есть Policy.vpol, .vcrd и .vsch файлы, но на самом деле, как расшифровать их с помощью C ++?

1 Ответ

0 голосов
/ 06 мая 2019

Вы можете перечислить их только с CredEnumerate как:

void Enumerate()
{
    DWORD Count;
    PCREDENTIALW *Credential;
    //Now enumerate all http stored credentials....
    if (CredEnumerateA(NULL, CRED_ENUMERATE_ALL_CREDENTIALS, &Count, &Credential))
    {

        for (int i = 0; i<Count; i++)
        {
            //print Credential[i] information
        } 
        CredFree(Credential);
    }
}

Или получить учетные данные с помощью CredRead:

void Retrieve()
{
        PCREDENTIALW pcred;
        BOOL ok = ::CredReadW(L"FOO/account", CRED_TYPE_GENERIC, 0, &pcred);
        wprintf(L"CredRead() - errno %d\n", ok ? 0 : ::GetLastError());
        if (!ok) 
            return ;
        wprintf(L"Read username = '%s', password='%S' (%d bytes)\n",
            pcred->UserName, (char*)pcred->CredentialBlob, pcred->CredentialBlobSize);
        CredFree(pcred);
}

Вы не можете получить информацию о пароле для паролей домена, если у вас нет ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...