Entschlüsseln Sie den WEP-WLAN-Profilschlüssel mit CryptUnprotectData

Ich versuche, den Schlüssel des WEP-Profils mit zu entschlüsselnCryptUnprotectData. Beim Abrufen des Profilschlüssels wurde das Profil mit netsh exportiert.

netsh wlan export profile name="MyWEP" folder="./"

Im Moment habe ich das Schlüsselmaterial manuell aus der XML-Datei, die mit dem Befehl netsh generiert wurde, in mein Programm kopiert. Und der Weg, den ich entschlüssle, ist -

DATA_BLOB DataOut, DataVerify;
DataOut.cbData = encryptData.length();
DataOut.pbData = (BYTE*)("I_Manually_Copy_The_WEP_Key_Here");

if (CryptUnprotectData( &DataOut,
                        NULL,
                        NULL,
                        NULL,
                        NULL,
                        0,
                        &DataVerify))
{
    printf("The decrypted data is: %s\n", DataVerify.pbData);
}
else
{
    printf("Failed. Error Code: %d", GetLastError());
}

Aber ich bekomme den Fehlercode13 unter Berufung auf ungültige Daten. Was mache ich falsch ? Auf Win 7 und höher kann ich direkt verwendenWlanGetProfile mit dem ParameterWLAN_PROFILE_GET_PLAINTEXT_KEY . Aber ich habeNEIN Option einVista als die CryptUnprotectData-Funktion zu verwenden. Ich habe ähnliche Beiträge gesehenHier, Hier aber nicht viele nützliche Informationen bekommen. Außerdem verwende ich dasselbe System mit denselben Anmeldeinformationen für Benutzer. Könnte mir bitte jemand vorschlagen, wie ich vorgehen soll?

PS: Ich habe die gleiche Frage in Windows Desktop SDK-Foren gepostet, aber noch keine Antwort erhalten. Ich versuche mein Glück auf SO.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage