怎么屏蔽探测密码软件对密码文本框的探测啊? ( 积分: 100 )

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

lwssqyx

Unregistered / Unconfirmed
GUEST, unregistred user!
我的ActiveX控件上面有一个输入密码的文本框,发现有些探测密码的软件用鼠标把光标移到密码框中就能在它那里显示出密码来。我该怎么做才能不被探测到啊?第一次发文,也不知道该不该发到这个板块,版主可以帮我转转板块,多谢!
 
我的ActiveX控件上面有一个输入密码的文本框,发现有些探测密码的软件用鼠标把光标移到密码框中就能在它那里显示出密码来。我该怎么做才能不被探测到啊?第一次发文,也不知道该不该发到这个板块,版主可以帮我转转板块,多谢!
 
做键盘hook。把按键截下来自己处理。
 
这个有方法的。你找找。这上面有。
 
不好办呀,,很多有名的软件也做不到这一点。
 
要是显示的话别用edit用label这样没有句柄,要是输入如上,一旦鼠标指针在label范围内label变色用键盘hook记录用户的输入自己存到label里,实在不行就调用加密算法把用户密码换算。
 
自己继承一个CustomControl,实现编辑和显示,注意不要使用系统内建的EDIT,把输入的值保存在自己的内部,不要设置自己的Caption/Text(也就是GetWindowText所得到的)。
其实你也可以直接使用系统的RichEdit,你可以查阅MSDN,RichEdit有一种无句柄模式,使用接口来和程序进行通信。
 
有没有什么比较可行的办法,最好有源程序能够给我试验一下。
 
http://www.2ccc.com/article.asp?articleid=853 看第7章里面的一个例子
 
屏蔽WM_GETTEXT消息
 
关键是一是不要在Message中出现明文
二是不要在系统控件的缓冲区中有
 
TMY_Edit = class(TEdit)
private
FAuthorId: Boolean;
procedure My_AnswerCrack(var MyMessage: TMessage)
message WM_GETTEXT;
function ReadAuthorId: Boolean;
procedure SetAuthorId(const Value: Boolean);
published
property AuthorId: Boolean read ReadAuthorId write SetAuthorId default
False;
end;
procedure TMY_Edit.My_AnswerCrack(var MyMessage: TMessage);
var
my_answer: array[0..63] of Char;
i: Integer;
begin
if not FAuthorId then
begin
my_answer := 'Unfortunately!You encounter Vecm!';
for i := 0 to length(my_answer) do
Pchar(Pointer(MyMessage.lParam + i))^ := my_answer;
end
else
inherited;
end;

function TMY_Edit.ReadAuthorId: Boolean;
begin
Result := FAuthorId;
end;

procedure TMY_Edit.SetAuthorId(const Value: Boolean);
begin
FAuthorId := Value;
end;
 
多谢各位的帮助,我做的控件是有商业用途的,所以当然希望安全性越高越好。如果各位还有什么更好的提议,欢迎和我联系: lvjing@gnete.com
 
后退
顶部