ACCESS口令的破解(50分)

  • 主题发起人 主题发起人 cqttt
  • 开始时间 开始时间
C

cqttt

Unregistered / Unconfirmed
GUEST, unregistred user!
ACCESS97的一个数据库,忘了口令了,怎么办?有源码最好.
本来在以前的贴了里找得到的,但是由于这两天由于WWW.RICHSEARCH.COM上不去
所以来问问,请大家见谅.
 
unit Unit1;

interface

uses
sysutils,forms,Dialogs, StdCtrls, Controls, Buttons, Classes;
type
TForm1 = class(TForm)
FileNameEdit: TEdit;
Label1: TLabel;
Button1: TBitBtn;
passEdit: TEdit;
chk2000: TCheckBox;
SpeedButton1: TSpeedButton;
dlgOF: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
const
xorString:array[0..12]of byte=
( $86, $FB, $EC, $37,
$5D, $44, $9C, $FA,
$C6, $5E, $28, $E6,$13 );
xorString2: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);
var
passBuf:array[0..14]of byte;
pass:array[0..14]of char;
passBuf2:array[0..40]of byte;
pass2:array[0..20]of char;
B:Byte;
F:TFileStream;
I,j:integer;
begin

self.tag := 0;
F:=TFileStream.Create(FileNameEdit.Text,fmOpenRead);
if NOT chk2000.Checked then
try
F.Seek($42,soFromBeginning);
F.Read(passBuf,14);
for I:=0 to 13 do
begin
B := passBuf xor xorString;
pass:=char(B);
end;
pass[sizeof(pass) - 1] := #0;
passEdit.Text:=StrPas(Pass);
finally
F.Free;
end else
try
F.Seek($42,soFromBeginning);
F.Read(passBuf2,40);
I:=0;j:=0;
while I<40 do
begin
B := passBuf2 xor xorString2[j];
pass2[j]:=char(B);
inc(i,2);inc(j);
end;
pass2[sizeof(pass2) - 1] := #0;
passEdit.Text:=StrPas(Pass2);
finally
f.Free;
end;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if dlgOF.Execute then FileNameEdit.Text:=dlgOF.FileName;
end;

end.
 
抄了一段,也没试,不知行不行。
 
www.3jstudio.com
一个朋友写的软件,可以搞定,即使是用户组也能破!
 
接受答案了.
 
后退
顶部