unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, registry;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function GetScreenSaverPass: String;
function HexVal(Input: Char): Integer;
begin
Result := Pos(Input, '0123456789ABCDEF') - 1;
end;
var
st, FinalStr: String;
reg: TRegistry;
Passlen,i,j,TempInt: Integer;
const
Decrypt: array[1..16] of Integer =
($48,$EE,$76,$1D,$67,$69,$A1,$1B,$7A,$8C,$47,$F8,$54,$95,$95,$5F);
begin
reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
SetLength(st, 1000);
reg.OpenKey('control paneldesktop', False);
SetLength(st, reg.ReadBinaryData('ScreenSave_Data', st[1], 1000));
reg.CloseKey;
PassLen := Length(st);
PassLen := PassLen - 1;
PassLen := PassLen div 2;
j:= 1;
for i:= 1 to PassLen do
begin
TempInt := (HexVal(st[j]) * 16) + HexVal(st[j+1]);
FinalStr := FinalStr + Char(Decrypt[i] xor TempInt);
j := j + 2;
end;
Result := FinalStr;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetScreenSaverPass);
end;
end. |
|