• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

得到Win9X里缓存中的密码_Delphi

Delphi 搞代码 3年前 (2018-08-09) 193次浏览 已收录 0个评论

program getpass;
……..
type

ListBox: TListBox;
procedure getpasswords;
…….
end;

const Count: Integer = 0;

http://www.gaodaima.com/?p=65765得到Win9X里缓存中的密码_Delphi

function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar;
    dw: DWord): Word; stdcall;

implementation

{$R *.DFM}
function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar;
    dw: DWord): Word; external mpr name ‘WNetEnumCachedPasswords’;

type
PWinPassword = ^TWinPassword;
TWinPassword = record
   EntrySize: Word;
   ResourceSize: Word;
   PasswordSize: Word;
   EntryIndex: Byte;
   EntryType: Byte;
   PasswordC: Char;
  end;
var
  WinPassword: TWinPassword;

function AddPassword(WinPassword: PWinPassword; dw: DWord): LongBool; stdcall;
var
  Password: String;
  PC: Array[0..$FF] of Char;
begin
  inc(Count);

  Move(WinPassword.PasswordC, PC, WinPassword.ResourceSize);
  PC[WinPassword.ResourceSize] := #0;
  CharToOem(PC, PC);
  Password := StrPas(PC);

  Move(WinPassword.PasswordC, PC, WinPassword.PasswordSize +
       WinPassword.ResourceSize);
  Move(PC[WinPassword.ResourceSize], PC, WinPassword.PasswordSize);
  PC[WinPassword.PasswordSize] := #0;
  CharToOem(PC, PC);
  Password := Password + ‘: ‘ + StrPas(PC);

  Form1.ListBox.Items.Add(Password);
  Result := True;
end;

procedure tform1.getpasswords;
var error:string;
begin
  if WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0) <> 0 then
  begin
    error := ‘不能载入密码:用户未登录。’;
  end
  else if Count = 0 then error := ‘未发现密码…’
end; 

欢迎大家阅读《得到Win9X里缓存中的密码_Delphi,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址