对付边锋的登陆窗口为什么不可以[成功后给600分,UP有分](100分)

  • 主题发起人 主题发起人 odbc1230
  • 开始时间 开始时间
O

odbc1230

Unregistered / Unconfirmed
GUEST, unregistred user!
var
hParent,hEdit: HWND;
Str:pChar;
content1,content2:array[0..255]of char;
begin
//找密码窗口
hParent := FindWindow('#32770','身份验证');
hEdit:=FindWindowEx(hParent,0,'Edit','');//取得A窗口下文本框的句柄,类型为tedit
{GetMem(Str,255);//分配内存
GetWindowText(hEdit,Str,255);//取得内容
Edit1.Text:=StrPas(Str);//内容显示在Edit1中
FreeMem(Str);//释放内存}
sendMessage(hedit,wm_gettext,100,LongInt(@content2));
edit2.Text:=content2;
对付边锋的登陆窗口为什么不可以
 
取密码?给你个函数,第一个参数为句柄,第二个为是否取密码
//const MAX_LENGTH=255
function GetWindowText(HWnd:HWnd;GetPassWord:Boolean=False):string;
//取得文本且可以取得密码
var
iPwdChar : Integer;
iPwdLast : Integer;
psText : array[0..MAX_LENGTH] of char;
i : Integer;
begin
iPwdChar:=SendMessage(HWnd,EM_GETPASSWORDCHAR,0,0);
if (iPwdChar<>0) and GetPassWord then
begin
iPwdLast := 0;
i := 0;
while iPwdLast=0 do
begin
PostMessage(HWnd,EM_SETPASSWORDCHAR,0,0);
Application.ProcessMessages;
Inc(i);
iPwdLast:=SendMessage(HWnd,EM_GETPASSWORDCHAR,0,0);
if i>100 then break;
end ;
SendMessage(HWnd,WM_GETTEXT,MAX_LENGTH,Longint(@psText));
Result:=psText;
SendMessage(HWnd,EM_SETPASSWORDCHAR,iPwdChar,0);
end else begin
SendMessage(HWnd,WM_GETTEXT,MAX_LENGTH,Longint(@psText));
Result:=psText;
end;
end;
 
帮你Up一下下...
 
看看你的 句柄找对了吗??
如果不能渠道密码 是不是win2k?
 
我是WIN2K的系统
 
win2k比Win9x提高了安全性,要进入你想从中取得密码的窗口所在的进程才行。
方法是:
做一个DLL,放一个鼠标勾子,并把你的取密码的函数放在该DLL中,
然后,在你的程序中加载此DLL, 这个DLL就会挂入到系统中运行的且产生鼠标消息
的进程(当你的鼠标移到它的窗口上时),这样可以取到密码了。
 
odbc1230:
>>对付边锋的登陆窗口为什么不可以
是啊,不是什么地方的密码都那么简单,就可以取到的。用一般的程序不行,我就知道联众
游戏的密码就取不到。
等等看有没有高手吧。[:)]
 
如果要完整的取密码的源代码,请准备300分并留下E-mail。[:D][:D][:D]
 
to 小笨笨兄弟:
你说得对,就算进入它的进程,如果它对密码做了特殊处理,比于文本框只
用来接受用户输入,然后,给你在文本框中放一串“*”号,那么你取到的就只能是“*”
号了,比如MS SQL SERVER2000中的注册属性对话框。
 
to 特尔斐
想要代码,可否来一份?非常感谢
uncooldog@tom.com
 
后退
顶部