首页  编辑  

Access密码破解

Tags: /超级猛料/Alogrith.算法和数据结构/加密解密/   Date Created:

破解Access数据库密码

这是Office97的解法:(2000你要不?)

function GetAccessPassword(FilePath:string):string;

const

   xorString:array[0..12]of byte=

     ( $86, $FB, $EC, $37,

       $5D, $44, $9C, $FA,

       $C6, $5E, $28, $E6,$13 );

var

   passBuf:array[0..14]of byte;

   pass:array[0..14]of char;

   resultPass:string;

   B:Byte;

   F:TFileStream;

   i:integer;

begin

   F:=TFileStream.Create(FilePath,fmShareDenyNone);

   //office 97

   try

     F.Seek($42,soFromBeginning);

     F.Read(passBuf,14);

     for I:=0 to 13 do

     begin

         B := passBuf[i] xor xorString[i];

         pass[i]:=char(B);

     end;

     pass[sizeof(pass) - 1] := #0;

     resultPass:=StrPas(Pass);

   finally

       F.Free;

   end;

   result:=resultPass;

/// office 2000

f.seek($42,sofrombeginning);

    f.read(passbuff2,40);

    i:=0;j:=0;

    while i<40 do

    begin

       b := passbuff2[i] xor xorstring2[j];

       pass2[j]:=char(b);

       inc(i,2);inc(j);

    end;

   pass2[sizeof(pass2) - 1] := #0;

   edit2.text:=strpas(pass2);

  finally

   f.free;

  end;

///end 2000

end;

*************

[FOR ACCESS97]

 predef97:array[0..12] of byte=

           ($86,$fb,$ec,$37,

            $5d,$44,$9c,$fa,

            $c6,$5e,$28,$e6,$13);

 [FOR ACCESS2000]

 predef2k:array [0..20]of byte=

           ($d3,$ec,$08,$9c,

            $93,$28,$46,$8a,

            $01,$7b,$a0,$df,

            $22,$13,$9a,$b1,

            $61,$79,$c7,$7c,$5b);