破解ACCESS2000的密码(50分)

  • 主题发起人 主题发起人 lyplay2
  • 开始时间 开始时间
L

lyplay2

Unregistered / Unconfirmed
GUEST, unregistred user!
看到一源码
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
if not FileExists(FileNameEdit.Text) then
begin
Showmessage('唉,快被老兄你玩死了,OK,我不玩了!古得掰。');
Application.Terminate;
exit;
end;
F:=TFileStream.Create(FileNameEdit.Text,fmShareDenyNone);
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;
试着做了,破解ACCESS97密码成功,但ACCESS2000不行,那位高人能指点?
 
好像是从14字节开始的 40位要改,我找一下!
 
未经验证的BCB源码,不懂C,供参考.

#include <vcl.h>
#pragma hdrstop

#include "dolACCESS.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
Tform1 *form1;
//---------------------------------------------------------------------------
__fastcall Tform1::Tform1(TComponent* Owner)
: Tform(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall Tform1::SpeedButton1Click(TObject *Sender)
{
if( OpenDialog1->Execute())
edtFileName->Text=OpenDialog1->FileName;
else
Application->MessageBoxA("没有选定有效的文件名!","消息",IDOK);

}
//---------------------------------------------------------------------------
void __fastcall Tform1::Button1Click(TObject *Sender)
{
int iFileHandle;
int iByteRead;
int i,j;
char *pszBuffer;
char Code[0x27]={0x10,0xEC,0xCB,0x9C,0x50,0x28,0x85,0x8A,0xC2,0x7B,
0x63,0xDF,0xE1,0x13,0x59,0xB1,0xA2,0x79,0x04,0x7C};
if(edtFileName->Text.Length()!=0)
{
try
{
iFileHandle=FileOpen(edtFileName->Text,fmOpenRead);
FileSeek(iFileHandle,0x42,0);
pszBuffer=new char[0x27];
iByteRead=FileRead(iFileHandle,pszBuffer,0x27);
FileClose(iFileHandle);
i=iByteRead/2;
for(j=0;j<=i;j++)
{
Code[j]=Code[j]^pszBuffer[2*j];
}
delete [] pszBuffer;
edtPassword->Text=Code;
if(edtPassword->Text.Length()==0)
edtPassword->Text="此数据库未设置密码!";
}
catch(const Exception& e)
{
Application->MessageBoxA("读取文件错误!!!","错误!",IDOK);
}
}
else
{
Application->MessageBoxA("没有输入有效的文件名","注意!",IDOK);
}
}
 
分数不够还可以加,怎么没有人愿意回答吗?
谢谢.
 
加到300分
 
97和2000的密码不一样,可以到http://www.star-dragon.com下载有源码啊
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
743
import
I
I
回复
0
查看
588
import
I
I
回复
0
查看
597
import
I
I
回复
0
查看
695
import
I
后退
顶部