var Form1: TForm1; mask: array[0..19] of Byte = ($61, $D6, $D4, $E9, $DD, $F0, $FB, $F2, $5B, $64, $35, $AD, $B7, $C8, $19, $75, $EC, $31, $2B, $BC); implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Reg: TRegistry; buf: PByteArray; size: Integer; i: integer; username, password: string; begin try Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile',false) then begin username := Reg.ReadString('Username'); size := Reg.GetDataSize('Password'); GetMem(buf, size); Reg.ReadBinaryData('Password', buf^, size); i := 0; while i < size - 1 do begin password := password + chr(buf[i] xor mask[i]); Inc(i, 2); end; ShowMessage('Username: ' + username); ShowMessage('Password: ' + password); end; finally Reg.CloseKey; Reg.Free; end; end; |
|