Access97密码破解

     阅读 432 次    更新时间:2014/4/18    
这是Office97的解法:(2000你要不?)

这是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;
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); 

 
 

Copyright 2003-2008 All Rights Reserved 自由风工作室 版权没有 [湘ICP备06002185号]
.