600分的题。快看不难!(100分)

  • 主题发起人 主题发起人 山泉
  • 开始时间 开始时间

山泉

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=419507 260分
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=433395 300分
加上这道 40分,还是同一个问题,答出全兑现。谢谢
email :xhonghui@21cn.com
1。怎么让用户拨号上网不保存密码(不用控件)
2。以前有一个程序可以在win98下读拨号内存密码。程序如下
怎么办才能防止拨号内存密码泄露,不被程序读出。
unit pass;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;

type
TForm3 = class(TForm)
GroupBox1: TGroupBox;
ListBox: TListBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;
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);

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

procedure TForm3.FormCreate(Sender: TObject);
begin
if WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0) <> 0 then
begin
Application.MessageBox('用户没有保存密码', 'sorry', mb_Ok or mb_IconWarning);
//Application.Terminate;
end
else
if Count = 0 then
ListBox.Items.Add('No passwords found...');
end;


end.

 
怎么让用户拨号上网不保存密码,听说在注册表什么地方改,真的没人知道吗?
 
真的不知道
 
修改后唯一的作用就是以前的密码出不来和以后不保存而已.
你的答案找对了,是修改注册表的,
 
呜呜,这样的题还叫不难!
看来我不想活了
 
jingtao, 修改注册表的,哪里?给我email也行
分数都给你了
xhonghui@21cn.com
 
可以自己找啊
方法:
1、找个注册表快照工具如:regsnap
http://www.pchome.net/dld/download.php?url=system/regsnap.zip
2、给注册表拍个快照;
3、修改密码;
4、比较修改前后的区别;
这就应该可以找出来吧。
 
我现在在外地旅游,你可以自己找一下,英文名称就是缓冲密码。
也可以等几天我回来后发给你。
 
想让看密码的程序看不到输入的密码是不可能的
那些程序是通过WINDOWS的消息机制找到密码的,唯一可行的办法就是不让那些程序运行。
 
修改注册表:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Currentversion/Polices/Network
键名:DisablePWDcaching
键值为0时用你的程序可以找到密码(如果有而且保存了的话)
键值为1时用你的程序无法找到密码(即使有而且保存了的话)

注意:很多黑客程序它先检测这个键值,如果是1的话就改变为0,取密码后再改回来。
-----------------------------------------------------------------------------
真正取PWL密码的程序不是调用这个MPR.DLL的.
 
测试了,没有用
密码在还内存中
 
创建一个临时变量,取代原有变量值即可!
现在不是流行获取 Edit 框中的密码吗? 呵呵!其实只要技巧处理一下,他就只能得到一对乱码!
 
本来想说,不知道有没有用。自己做个拨号,密码和用户名保不保存都不重要,关键是在
拨号时改称正确的,拨号后再该回来。我曾经给一个要求保密的单位作过,很实用。
 
to 山泉: 不好意思!在这里提几个问题!
一个是INTRAWEB中IWFILE控件上传文件问题?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2389036
一个是INTRAWEB如何实现B/S结构?
我老是出现“对象没有连接”的问题?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2265856
 
多人接受答案了。
 
后退
顶部