获取网页中密码和文本框中的内容
来源:互联网 发布:mongodb golang doc 编辑:程序博客网 时间:2024/06/05 06:17
网页中的密码输入框和一般不同,他没有句柄之类的,但是可以通过IE的IHTMLInputTextElement接口获取!
本文是教你如何得到网页中输入框的内容。如何你想获取网页中的密码,则只要把if (lstrcmpi(strtype, _T("TEXT")) == 0) 改成if
(lstrcmpi(strtype, _T("PASSWORD")) == 0) 就可以了,如果你要是再加个实时监视的话,就成了密码窃取程序了咯!
主要思路:获取IE的IHTMLInputTextElement接口,这样就可以获取网页中的输入框(包括文本和密码输入框)的内容了。
--------------------------------------------------------------------------------
VARIANT id, index;
CComPtr<IDispatch> spDispatch;
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
CComQIPtr<IHTMLElement, &IID_IHTMLElement> pElement;
CComPtr<IHTMLElementCollection> pElementCol;
CComPtr<IHTMLFormElement> pFormElement;
CComPtr<IHTMLInputTextElement> pInputElement;
//首先获取IWebBrowser2接口
CoInitialize(NULL); //必须要这句初始化
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
if (m_spSHWinds == NULL)
...{
if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK)
...{
MessageBox("Failed");
CoUninitialize();
}
}
if (m_spSHWinds)
...{
int n = m_spSHWinds->GetCount();
for (int i = 0; i < n; i++)
...{
_variant_t v = (long)i;
IDispatchPtr spDisp = m_spSHWinds->Item(v);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); //生成一个IE窗口的智能指针
if (spBrowser)
...{
//获取IHTMLDocument2接口
if (SUCCEEDED(spBrowser->get_Document( &spDispatch)))
pDoc2 = spDispatch;
if(pDoc2!=NULL)
...{
// AfxMessageBox("已经获取IHTMLDocument2");
if (SUCCEEDED(pDoc2->get_forms(&pElementCol)))
...{
// AfxMessageBox("已经获取IHTMLElementCollection");
long p=0;
if(SUCCEEDED(pElementCol->get_length(&p)));
if(p!=0)
...{
for(long i=0;i<=(p-1);i++)
...{
V_VT(&id) = VT_I4;
V_I4(&id) = i;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
if(SUCCEEDED(pElementCol->item(id,index, &spDispatch)))
if(SUCCEEDED(spDispatch->QueryInterface(IID_IHTMLFormElement,(void**)&pFormElement)))
...{
// AfxMessageBox("已经获取IHTMLFormElement");
long q=0;
if(SUCCEEDED(pFormElement->get_length(&q)));
for(long j=0;j<=(q-1);j++)
...{
V_VT(&id) = VT_I4;
V_I4(&id) = j;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
if(SUCCEEDED(pFormElement->item(id,index, &spDispatch)))
if(SUCCEEDED(spDispatch->QueryInterface(IID_IHTMLInputTextElement,(void**)&pInputElement)))
...{
//AfxMessageBox("已经获取IHTMLInputTextElement");
CComBSTR value;
CComBSTR type;
pInputElement->get_type(&type);//获取输入框类型(密码框还是文本框)
CString strtype(type);
strtype.MakeUpper();
if (lstrcmpi(strtype, _T("TEXT")) == 0)
...{
pInputElement->get_value(&value);//获取文本框的值
CString strvalue(value);
AfxMessageBox(strvalue);
}
}
}
}
}
}
}
CComPtr<IDispatch> spDispatch;
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
CComQIPtr<IHTMLElement, &IID_IHTMLElement> pElement;
CComPtr<IHTMLElementCollection> pElementCol;
CComPtr<IHTMLFormElement> pFormElement;
CComPtr<IHTMLInputTextElement> pInputElement;
//首先获取IWebBrowser2接口
CoInitialize(NULL); //必须要这句初始化
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
if (m_spSHWinds == NULL)
...{
if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK)
...{
MessageBox("Failed");
CoUninitialize();
}
}
if (m_spSHWinds)
...{
int n = m_spSHWinds->GetCount();
for (int i = 0; i < n; i++)
...{
_variant_t v = (long)i;
IDispatchPtr spDisp = m_spSHWinds->Item(v);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); //生成一个IE窗口的智能指针
if (spBrowser)
...{
//获取IHTMLDocument2接口
if (SUCCEEDED(spBrowser->get_Document( &spDispatch)))
pDoc2 = spDispatch;
if(pDoc2!=NULL)
...{
// AfxMessageBox("已经获取IHTMLDocument2");
if (SUCCEEDED(pDoc2->get_forms(&pElementCol)))
...{
// AfxMessageBox("已经获取IHTMLElementCollection");
long p=0;
if(SUCCEEDED(pElementCol->get_length(&p)));
if(p!=0)
...{
for(long i=0;i<=(p-1);i++)
...{
V_VT(&id) = VT_I4;
V_I4(&id) = i;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
if(SUCCEEDED(pElementCol->item(id,index, &spDispatch)))
if(SUCCEEDED(spDispatch->QueryInterface(IID_IHTMLFormElement,(void**)&pFormElement)))
...{
// AfxMessageBox("已经获取IHTMLFormElement");
long q=0;
if(SUCCEEDED(pFormElement->get_length(&q)));
for(long j=0;j<=(q-1);j++)
...{
V_VT(&id) = VT_I4;
V_I4(&id) = j;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
if(SUCCEEDED(pFormElement->item(id,index, &spDispatch)))
if(SUCCEEDED(spDispatch->QueryInterface(IID_IHTMLInputTextElement,(void**)&pInputElement)))
...{
//AfxMessageBox("已经获取IHTMLInputTextElement");
CComBSTR value;
CComBSTR type;
pInputElement->get_type(&type);//获取输入框类型(密码框还是文本框)
CString strtype(type);
strtype.MakeUpper();
if (lstrcmpi(strtype, _T("TEXT")) == 0)
...{
pInputElement->get_value(&value);//获取文本框的值
CString strvalue(value);
AfxMessageBox(strvalue);
}
}
}
}
}
}
}
- 获取网页中密码和文本框中的内容
- 获取网页中密码和文本框中的内容
- 【原创】获取网页中所有密码和发帖标题内容
- 在ashx文件中输出html中的文本框和按钮,并且当单击按钮时,输出文本框中的文字到网页上,同时文本框中的内容保持不变。
- 在ashx文件中输出html中的文本框和按钮,并且当单击按钮时,输出文本框中的文字到网页上,同时文本框中的内容对峙不变。
- html 获取文本框中的内容
- 在WebView中获取网页中的内容
- 获取网页中的密码和文本输入框的内容
- 获取网页中的部分内容,新闻标题和内容
- Android中如何解析网页,获取网页中的元素内容
- 表单开发(一):获取文本框和密码框数据 用户登录网页
- 如何获取富文本框中的内容
- 获取网页中的内容(CDHtmlDialog)
- Android中如何获取网页中的指定内容
- Android中如何获取网页中的指定内容
- 如何获取网页密码框中的密码
- 如何获取网页密码框中的密码
- 如何获取网页密码框中的密码
- 2006.11.01+
- Firewall
- 2006.11.06
- 如何让你的程序安全通过windows防火墙
- 2006.11.04
- 获取网页中密码和文本框中的内容
- Openlaszlo中国开发者社区正式发布
- [转载]风险评估与SOC之后
- Tunnel mode
- 信息安全从业参考
- C++中public,protected,private访问小结
- how class object call class member functions in c++
- 默然日记20061107
- 2006.11.01++