Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
Delphi 12 Athens
|
CredIsProtected buffer-overflow?
1. Mär 2024, 13:45
Moin, ich/wir spielen grade etwas mit den Windows Credentials.
Nun wollte ich noch CredProtect, CredUnprotect und CredIsProtected hinzufügen,
aber ... nja, CredIsProtected sollte doch eigentlich nur lesen? Aber es schreibt den Speicher nahezu willkührlich um.
vorab:
* Delphi XE bis D12
* mit oder ohne WinMD (ab D11, siehe GetIt)
* nja, vom WinMD das, was sich halbwegs nutzen lässt (was nicht viel ist und das nur unter qualvollen Mühen)
Im Anhang meine kleine Demo/TestApp.
* einmal auf WriteToCrendentialsStore ODER unten den Filter z.B. auf *
ändern
* und dann ReadFromCredentialsStore FindInCredentialsStore
* vorher in WinCrypt.FindInCredentialsStore bzw. WinCrypt.ReadFromCredentialsStore dn Block mit CredIsProtected entkommentieren und Haltepunkt auf CredIsProtected
* danach werden während CredIsProtected die "mindestens" Variablen PCred und manchmal auch Creds verändert
* selbst wenn die Funktion schreibt. hätte ich maximal in PCred.CredentialBlob eine Änderung erwartet
* und nachfolgend knallen dann natürlich alle Zugriffe auf PCred.xxxx
Löschen des eventuell Erstellten wieder über die DemoApp
* DeleteInCredentialsStore
oder im Windows
* OpenCredentialManager
* control.exe /name Microsoft.CredentialManager
* [WIN] Anmeldeinformationsverwalrung
* * rechts, unter Windows-Anmeldeinfos
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|