如何能截获网页的登陆密码呀,各位大哥有什么高招,教教小弟。

wooingcn 2002-01-04 09:22:28
网页上的input窗口是IE自己画出来的,不是真正的窗口,所以用GetWindowText无效了.
...全文
522 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wooingcn 2002-01-07
  • 打赏
  • 举报
回复
我的qq是10678181
guzh 2002-01-07
  • 打赏
  • 举报
回复
唉,忘了写email
guzh@21cn.com
guzh 2002-01-07
  • 打赏
  • 举报
回复
to:xiner(叉叉)
如果你做了可以发一份给我吗?先谢了!
sxbyl 2002-01-07
  • 打赏
  • 举报
回复
我有两个思路:
1、用BHOs,这样就可以很方便的得到IHTMLDocument2等接口,MSDN上有详细说明(不过这种方法要用DLL实现)
2、监视本机所有的网络信息。在Win2K下可用原式套接字实现,加以分析就可以了。(可以参看CodeGuru的ipman),如果是9x,我就不太清楚了,记得要通过一个什么vpacket之类动工具包。这种方法的好处是不需要单独的dll)
mengxihe 2002-01-07
  • 打赏
  • 举报
回复
我来学习学习
kingzai 2002-01-07
  • 打赏
  • 举报
回复
我在深圳,有QQ吗,我的是82008209
wooingcn 2002-01-07
  • 打赏
  • 举报
回复
好的,我的邮箱 xjxbox@sina.com,你在哪里高就呀?我现在在杭州。
kingzai 2002-01-07
  • 打赏
  • 举报
回复
akingzai@sina.com,我现在也在写一个类似的软件,交个朋友把,呵呵
wooingcn 2002-01-07
  • 打赏
  • 举报
回复
工作有点忙,正在构思中,把你的Email留一下,做好了我会把思路整理一下发给你的,你有好的方法也记得告诉我一下,谢谢你。
kingzai 2002-01-07
  • 打赏
  • 举报
回复
那你的问题解决了吗,解决的话思路给我讲一下,
wooingcn 2002-01-07
  • 打赏
  • 举报
回复
当然是要检查url的位置是否为新浪网,是的话就进行截取,否的话,我们就放弃,呵呵
kingzai 2002-01-07
  • 打赏
  • 举报
回复
但是我也有一个问题,如何取个某个特定网页(如新浪主页)的密码,是先要指定它的Url,还是直接用winnet类
kingzai 2002-01-07
  • 打赏
  • 举报
回复
我贴一篇:
看“星星”的工具并不比“星星”的个数少,由于其原理比较简单,初学者很容易制作一个。然而,有时天公不作美,它会给晴朗的星空抹上一道乌云,这时你就无法寻觅那颗明亮的星。网页中的“星星”就是一颗被掩盖的星。

透过密码编辑框看“星星”,主要是通过向密码编辑框发送WM_GETTEXT,获得密码编辑框的窗口文本,这种方法在Windows 9x/NT4/ME环境下屡试不爽,星星既属于你,又属于我,大家都可以看到。到了Windows 2K/XP环境,这招有些失灵,星星变聪明了,它只属于它中意的人,别的进程别想打它的主意。对于没有权限获得密码的进程,它会简单地返回一个ERROR_ACCESS_DENIED,来打发那些动机不纯或者别有用心的人们。但是还是有高手能够通过钩子函数,来笼络星星的心,钩子函数能够实现把一个动态连接库注入到另外一个进程,获取窗口文本,再返回给另外一个进程,面对这个吃里扒外的东西,不明真相的星星姑娘,居然听之任之,全抛一片心。

网页中的星星是一颗特别的星,铁石心肠,然而它却是豆腐作的。你很难获得它的窗口句柄,通过Visual Studio提供的SPY++也很难获得它的窗口句柄和它收到的窗口消息。获得网页中的密码必须通过必须通过HTML中的MSHTML文档对象模型。你首先必须通过各种方法获得Internet Explorer浏览器(Mr Navigate,Sorry)窗口句柄,判断它的类名是否是"Internet Explorer_Server",然后通过下述代码获得其文档对象模型指针,即IHTMLDocument2接口。
HWND hw;

MSHTML::IHTMLDocument2Ptr doc;

MSHTML::IHTMLElementCollectionPtr col;

MSHTML::IHTMLElementPtr EL;

DWORD lRes;

HRESULT hres;

UINT MSG =

RegisterWindowMessage("WM_HTML_GETOBJECT");

SendMessageTimeout(hw, MSG, 0, 0,

SMTO_ABORTIFHUNG, 1000, &lRes);

hres=ObjectFromLresult(lRes,

__uuidof(MSHTML::IHTMLDocument2),

0,

(void**)&doc);



然后你必须获得鼠标屏幕坐标,把它转换成相对于客户区的坐标,然后根据坐标位置获得网页对对应的元素,查询IID_IHTMLInputTextElement接口指针,判断元素类型是否是一个密码编辑框,并获得对应密码。

CString GetPassword(IHTMLDocument2 *pDoc2,POINT pt)

{

if(pDoc2==NULL)return "";

CComPtr<IHTMLElement> pElement;

HRESULT hr=pDoc2->elementFromPoint(pt.x,pt.y,&pElement);

if(SUCCEEDED(hr)){

CComPtr<IHTMLInputTextElement> pPwdElement;

hr=pElement->QueryInterface(IID_IHTMLInputTextElement,

(void**)&pPwdElement);

if(SUCCEEDED(hr)){

CComBSTR type;

hr=pPwdElement->get_type(&type);

if(SUCCEEDED(hr)){

if(type==_T("password")){

CComBSTR pwd;

hr=pPwdElement->get_value(&pwd);

if(SUCCEEDED(hr)){

if(pwd.Length()!=0){

CComBSTR msg;

msg=pwd;

CString str(msg);

return str;

}

else{

return "";

}

}

}

}

}

}

pDoc2->Release();

return "";

}

如果你想尝试一下如何在后台记录网页密码,你可以实现一个IE扩展的COM组件,由IE负责自动加载,在组件中你必须实现IOleObjectSite接口,在SetSite方法中得到一个指向IE COM对象的Iunknown的指针,再通过它获得其它接口的指针。在程序中还需要创建一个线程负责对当前的网页所有元素实现轮询解析,判断元素的属性是否是一个编辑框(密码编辑框),然后把用户名和密码记录到一个文件中。


wooingcn 2002-01-07
  • 打赏
  • 举报
回复
iamknight(侠客),太谢谢了。I love you.
wooingcn 2002-01-04
  • 打赏
  • 举报
回复
jeffqu(jeff) 用com吗??
有什么资料提供一点,万分感谢,
jeffqu 2002-01-04
  • 打赏
  • 举报
回复
调用ie的document对象,就像java scripts
ourrun 2002-01-04
  • 打赏
  • 举报
回复
想帮你,可是我也不懂。
wooingcn 2002-01-04
  • 打赏
  • 举报
回复
lhbyron(天空的云),肯定不行,你用sky查一下那个窗口,会发现它根本就不是一个窗口,所以用sendmessage(WM_GETTEXT)肯定不行的。
wooingcn 2002-01-04
  • 打赏
  • 举报
回复
原本可以在win98下面可以获得获得IE保存下来的密码的,但这个不太适合我现在的要求,我现在是想要实时得到pswd。
我现在有两个思路,一个是为ie做个钩子,钩它得键盘消息,但这样要做个dll,文件太多对我们可不利呀,呵呵。
一个思路是改写IE的html源文件,(相当于欺骗网页),将密码先引入自己的asp中。呵呵,不过,有好多技术细节还没有搞懂,比如如何改写html的源文件(能否先存盘->改写->调入)。
所以在动手之前,虚心的向大伙请教,还望大虾们不吝赐教。
有兴趣的朋友或同志者帮忙push一下,Thanks.
lhbyron 2002-01-04
  • 打赏
  • 举报
回复
我也想写一个密码窃取器,可是用sendmessage(WM_GETTEXT)好像得不到密码?可能是因为W2000
的问题,
你试试用SendMessage发WM_GETTEXT或EM_GETLINE消息,用GetWindowText是肯定得不到的!
如果你试成功了,请告诉我!
我在2000下用这个方法没成功,我怀疑试因为2000的原因。我得机子上也没有98,试不成!
加载更多回复(5)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧