Thema: GetUsernameEx

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#20

AW: GetUsernameEx

  Alt 25. Nov 2014, 17:55
Zitat:
Delphi-Quellcode:
MAX_USERNAME_LENGTH = 256;
var
Buffer: Array[0..MAX_USERNAME_LENGTH] of WIDEChar;
Das Array ist 257 Zeichen lang, der API wird SizeOf übergeben, also 257*2 aka 514 Byte, was die API aber als Char interpretiert und somit ein Bufferoverrun vorprogrammiert ist. (bei Unicode)
Dann erwartet die API die Größe exkl. der #0, womit sie mochmal weitere 2 Byte überschreiben könnte.

Die API würde zwar nicht außerhalb des Puffers schreiben, aber wenn man ihr eine falsche Größe nennt, dann kann sie natürlich nichts dafür.
0..10 ... bei 11 bis 22 Chars würde es also Spaß machen.
$2B or not $2B

Geändert von himitsu (25. Nov 2014 um 17:58 Uhr)
  Mit Zitat antworten Zitat