在win9x中的拨号口令存放在哪一文件中?如何将其转换成文本。(99分)

  • 主题发起人 主题发起人 freeman123
  • 开始时间 开始时间
F

freeman123

Unregistered / Unconfirmed
GUEST, unregistred user!
在win9x中的拨号口令存放在哪一文件中?如何将其转换成文本。
不用RasApi32.DLL和RasApi16.DLL的函数调用,就象在REGISTER中查找
拨号帐号名一样。
 
应该是xxxx.pwl文件吧, xxxx是Windows用户登录名
 
不是*.pwl,这只是Windows登录密码
 
是xxxx.pwl文件吧, xxxx是Windows用户登录名,想知道它的格式,emailto:xfchina@163.net
 
我想也是PWL文件,但是格式就不知道了
 
freeman123要的是拨号口令。
 
土办法先运行拨号网络,再读出PASSWORD。
直接对付.PWL好象是有算法的,去202.120.224.9 查
 
不管是拨号网络密码,或是共享目录密码,只要是Save了的,统统都可以出来了.
好了,这下大家该满足了吧?!!

unit Main;

interface

uses
Windows, SysUtils, Classes, Forms, ShellAPI, Controls, StdCtrls;

type
TfrmMain = class(TForm)
GroupBox1: TGroupBox;
ListBox: TListBox;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
hMPR: THandle;
end;

var
frmMain: TfrmMain;

const
Count: Integer = 0;

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

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

procedure TfrmMain.FormShow(Sender: TObject);
begin
if WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0) <> 0 then
begin
Application.MessageBox('Can''t load passwords: User is not logon.', 'Error', mb_Ok or mb_IconWarning);
Application.Terminate;
end
else
if Count = 0 then
ListBox.Items.Add('No passwords found...');
end;

end.
 
不好意思,我想说一句,好象不大管用!
 
不可能的,你倒说说怎么不管用
 
我试了,只能显示windows登录的密码,其他的什麽都没有!
 
function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw: DWord): Word; external mpr name 'WNetEnumCachedPasswords';

mpr name 是什么意思?

这个函数的原型在哪里?我跟踪了一下,发现f7会进入到addpassword,为什么?
 
Windows.pas, Line 27585: mpr = 'mpr.dll';
这个函数在MSDN中是查不到的,也许这也是Windows未公开的秘密吧
 
接受答案了.
 
后退
顶部