XOR Windows95/98 ScreenSaver Passwortverschlüsselung

        
       ______/\____  _/\__   ___  H a c k e r's D i g i t a l  C r i m e
       \  ___\___  \/  \  \_/  /  http://www.h-d-c.org www.rootaccess.de
       / / __  _/  /     \    /   cray@h-d-c.org      cray@rootaccess.de
      / /_/ /  ___/  /__\  \  \
      \____/\____/__/    \__\__\


XOR Maske 48 EE 76 1D 67 69 A1 1B 7A 8C 47 F8 54 95 97 57


    1.)  Schaue dir doch mal die C:\Windows\User.dat an wenn man mehrere user
    hat  sollte man im \profiles\username nachschauen 2.) Die maximale leange
    von  einem  ScreenSaverPasswort  ist  14  zeichen lang wenn dein Passwort
    länger  als  14  zeichen lang sein sollte kürzt windows es ab. Sicher dir
    voher  noch  die  user.dat!  Starte  Bildschirm  Option und setze mal ein
    ScreenSaverPw so zum Beispiel: RDPZZA so abspeichern.

    3.)  ™ffne  jetzt die datei (user.dat)und suche nach "ScreenSave_Data" so
    alles  was  nach  dem  "ScreenSave_Data"  bis  zu  einem  HEX 00 ist dein
    Passwort  (00)  ist  das  Ende  des Passwortes die ersten zeichen sind in
    unserem  beispiel:  1AAA26473D28  so  jetzt  muss der code erstmal in HEX
    umgerechnet  werden  wobei  jedes  einzelne zeichen umgerechnet wird! das
    würde dann so aussehen:

        code ->>  1  A  A  A  2  6  4  7  3  D  2  8
        Hex  ->>  31 41 41 41 32 36 34 37 33 44 32 38
        
     so  jetzt  müssen immer 2 hexadecimal zahlen zusammen gezogen werden das
     würde dann so aussehen:
  
        Stelle:        1.   2.   3.   4.   5.   6.
        doppelHex ->>  3141 4141 3236 3437 3344 3238
        
     die stelle ist die spalte in der HEX liste unten man sucht jetzt zB. die
     3141  in  spalte  1 und schaut was es für ein buchstabe ist wäre dann in
     dem fall ein R so dann sucht man das 2 zeichen 4141 in der 2. Spalte und
     immer so weiter ;)

        
    4.)  Starte  doch  mal  C:\Windows\Regedit.exe  und und suche dann wieder
    "ScreenSave_Data"  ok  gefunden  so dann viel spass ;) alles was man dazu
    braucht  findet  ihr  hier  im  text  ich  wollte euch ja auch noch etwas
    arbeiten lassen hehe (andere m”glichkeit an das PW zu kommen)


+----------------------------------------------------------------------------+
| |1   |2   |3   |4   |5   |6   |7   |8   |9   |10  |11  |12  |13  |14  |15  |
|A|3039|4146|3337|3543|3236|3238|4530|3541|3342|4344|3036|4239|3135|4434|4436|
|B|3041|4143|3334|3546|3235|3242|4533|3539|3338|4345|3035|4241|3136|4437|4435|
|C|3042|4144|3335|3545|3234|3241|4532|3538|3339|4346|3034|4242|3137|4436|4434|
|D|3043|4141|3332|3539|3233|3244|4535|3546|3345|4338|3033|4243|3130|4431|4433|
|E|3044|4142|3333|3538|3232|3243|4534|3545|3346|4339|3032|4244|3131|4430|4432|
|F|3045|4138|3330|3542|3231|3246|4537|3544|3343|4341|3031|4145|3135|4433|4431|
|G|3046|4139|3331|3541|3230|3245|4536|3543|3344|4342|3030|4246|3133|4432|4430|
|H|3030|4136|3345|3535|3246|3231|4539|3533|3332|4334|3046|4230|3143|4444|4446|
|I|3031|4137|3346|3534|3245|3230|4538|3532|3333|4335|3045|4231|3144|4443|4445|
|J|3032|4134|3343|3537|3244|3233|4542|3531|3330|4336|3044|4232|3145|4446|4444|
|K|3033|4135|3344|3536|3243|3232|4541|3530|3331|4337|3043|4233|3146|4445|4443|
|L|3034|4132|3341|3531|3242|3235|4544|3537|3336|4330|3042|4234|3138|4439|4442|
|M|3035|4133|3342|3530|3241|3234|4543|3536|3337|4331|3041|4235|3139|4438|4441|
|N|3036|4130|3338|3533|3239|3237|4546|3535|3334|4332|3039|4236|3141|4442|4439|
|O|3037|4131|3339|3532|3238|3236|4545|3534|3335|4333|3038|4237|3142|4441|4438|
|P|3138|4245|3236|3444|3337|3339|4631|3442|3241|4443|3137|4138|3034|4335|4337|
|Q|3139|4246|3237|3443|3336|3338|4630|3441|3242|4444|3136|4139|3035|4334|4336|
|R|3141|4243|3234|3446|3335|3342|4633|3439|3238|4445|3135|4141|3036|4337|4335|
|S|3142|4244|3235|3445|3334|3341|4632|3438|3239|4446|3134|4142|3037|4336|4334|
|T|3143|4241|3232|3439|3333|3344|4635|3446|3245|4438|3133|4143|3030|4331|4333|
|U|3144|4242|3233|3438|3332|3343|4634|3445|3246|4439|3132|4144|3031|4330|4332|
|V|3145|4238|3230|3442|3331|3346|4637|3444|3243|4441|3131|4145|3032|4333|4331|
|W|3146|4239|3231|3441|3330|3345|4636|3443|3244|4442|3130|4146|3033|4332|4330|
|X|3130|4236|3245|3435|3346|3331|4639|3433|3232|4434|3146|4130|3043|4344|4346|
|Y|3131|4237|3246|3434|3345|3330|4638|3432|3233|4435|3145|4131|3044|4343|4345|
|Z|3132|4234|3243|3437|3344|3333|4642|3431|3230|4436|3144|4132|3045|4346|4344|
|Æ|3845|3238|4230|4442|4131|4146|3637|4444|4243|3441|3831|3345|3932|3533|3531|
|Ø|3930|3336|4145|4335|4246|4231|3739|4333|4132|3534|3946|3230|3843|3444|3446|
|Å|3844|3242|4233|4438|4132|4143|3634|4445|4246|3439|3832|3344|3931|3530|3532|
|0|3738|4445|3436|3244|3537|3539|3931|3242|3441|4243|3737|4338|3634|4135|4137|
|1|3739|4446|3437|3243|3536|3538|3930|3241|3442|4244|3736|4339|3635|4134|4136|
|2|3741|4443|3434|3246|3535|3542|3933|3239|3438|4245|3735|4341|3636|4137|4135|
|3|3742|4444|3435|3245|3534|3541|3932|3238|3439|4246|3734|4342|3637|4136|4134|
|4|3743|4441|3432|3239|3533|3544|3935|3246|3445|4238|3733|4343|3630|4131|4133|
|5|3744|4442|3433|3238|3532|3543|3934|3245|3446|4239|3732|4344|3631|4130|4132|
|6|3745|4438|3430|3242|3531|3546|3937|3244|3443|4241|3731|4345|3632|4133|4131|
|7|3746|4439|3431|3241|3530|3545|3936|3243|3444|4242|3730|4346|3633|4132|4130|
|8|3730|4437|3445|3235|3546|3531|3939|3233|3432|4234|3746|4330|3643|4144|4146|
|9|3731|4437|3446|3234|3545|3530|3938|3232|3433|4235|3745|4331|3644|4143|4145|
+----------------------------------------------------------------------------+

So jetzt kommen wir zum SourceCode ;)

-----Code-Snipped-----

Program Hol_Das_ScrSavePW{!};
USES crt,dos;
CONST SearchStr:String[40] = 'ScreenSave_Data';
      FileName:String='C:\WINDOWS\USER.DAT';
      ChiffreKey:String[16]=#$48#$EE#$76#$1D#$67#$69#$A1#$1B#$7A#$8C#$47#$F8#$54#$95#$97#$57;
VAR   F : File;

Function FindStrInFile(var f:File; s:String):Longint;
  CONST BufSize=65000;
  VAR   Buf     : Pointer;
        Ctrl    : Word;
        BufSeek : LongInt;
        SeekPos : Longint;
        Found   : Boolean;
        Level   : Byte;
        Data    : Byte;
  BEGIN
    GetMem(Buf,BufSize);
    SeekPos:=FilePos(f);
    BufSeek:=BufSize;
    ctrl:=BufSize;
    Found:=False;
    level:=0;
    While Not Found DO BEGIN
      Inc(bufseek);
      if eof(f) and (bufseek>ctrl) then break; { EOF erreicht }
      if bufseek>bufsize then begin { Falls im membuffer durchsucht, nächsten holen }
        BlockRead(F,buf^,bufsize,ctrl);
        bufseek:=0;
      end;
      Data:=mem[Seg(Buf^):Ofs(Buf^)+bufseek];
      if Char(data)=s[level+1] then begin
        level:=level+1;
        if level=length(s) then found:=true;
      end else level:=0;
    END;
    if found then FindStrInFile:=FilePos(f)-bufsize+bufseek
             else FindStrInFile:=-1;
    FreeMem(Buf,BufSize);
  END;

Function FileReadCStr(var f:File):String;
  var s:String;
      l:Word;
      d:Char;
      ctrl:word;
  begin
    l:=0;
    s:='';
    while not eof(f) and (l<254) do begin
      BlockRead(f,d,1,ctrl);
      if d=#0 then break;
      s:=s+d;
      inc(l);
    end;
    FilereadcStr:=s;
  end;

Function NHex2Int(c:char):Byte;
  BEGIN
    NHex2int:=0;
    c:=Upcase(C);
    if c in ['0'..'9'] then NHex2Int:=Byte(c)-48;
    if c in ['A'..'F'] then NHex2Int:=Byte(c)-55;
  END;


VAR Attribut : Word;
    s,s2     : String;
    passwort : String;
    pos      : longint;
    i:Word;
BEGIN
  WriteLn('----- ScreenSaver HDC cleaner/cray -----');
  filemode:=0;
  FileName:=ParamStr(1);
  if fsearch(filename,'')='' then error('Datei nicht gefunden');

  assign(f,FileName);
  reset(f,1);
  Writeln('Suche...');
  pos:=FindStrInFile(f,SearchStr);
  if pos=-1 then error('DataKey nicht gefunden!');
  WriteLn('Data Position:',pos);
  Seek(f,pos+1);
  s:=FileReadCStr(f); { Gesuchten Str einlesen }
  Writeln('ChiffreText:'+S);
  passwort:='';
  for i:=1 to length(s) div 2 do begin
    passwort:=passwort+Char((NHex2Int(s[i*2-1])*16+NHex2Int(s[i*2])) xor Byte(ChiffreKey[i]));
  end;
  WriteLn('Decodiert  :'+Passwort);
  close(f);
END.
...[EOF]...