如何破解网页密码 ( 积分: 20 )

  • 主题发起人 主题发起人 青云
  • 开始时间 开始时间

青云

Unregistered / Unconfirmed
GUEST, unregistred user!
很多朋友都研究过 破解QQ密码的方法,
但是 QQ都是软件方式
一般用
if (findwindow('#32770',nil)<>0)and(wparam=$0201) then
begin
SendMessage(pMOUSEHOOKSTRUCT(lparam)^.hwnd,$000D,3,Integer(@buffer));

然后再用做成钩子函数
但是我想网页如何破解密码呢;
比如登陆 我的网站论坛 http://www.daizhicun.com/bbs

当 输入用户名和密码后,如何记载这些信息;

如果有朋友对此感兴趣的,可以拿我的网站做实验;
 
很多朋友都研究过 破解QQ密码的方法,
但是 QQ都是软件方式
一般用
if (findwindow('#32770',nil)<>0)and(wparam=$0201) then
begin
SendMessage(pMOUSEHOOKSTRUCT(lparam)^.hwnd,$000D,3,Integer(@buffer));

然后再用做成钩子函数
但是我想网页如何破解密码呢;
比如登陆 我的网站论坛 http://www.daizhicun.com/bbs

当 输入用户名和密码后,如何记载这些信息;

如果有朋友对此感兴趣的,可以拿我的网站做实验;
 
你真强阿 这么慷慨
代码:
 
无所谓了,关键是大家共同研究一下这种技术
 
转贴:让网页密码编辑框中的“星星”现身(附EXE)
(http://www.ccw.com.cn/htm/app/aprog/01_12_20_2.asp)

通常情况下,在密码编辑框中输入的字符都用**(这里呼之为“星星”)来代替,以达到保
护密码的目的。但看“星星”的工具并不比“星星”的个数少,由于其原理比较简单,初学
者很容易制作一个。然而,有时天公不作美,它会给晴朗的星空抹上一道乌云,这时你就无
法寻觅那颗明亮的星。网页中的“星星”就是一颗被掩盖的星。
透过密码编辑框看“星星”,主要是通过向密码编辑框发送WM_GETTEXT,获得密码编辑框的
窗口文本,这种方法在Windows 9x/NT4/ME环境下屡试不爽,星星既属于你,又属于我,大
家都可以看到。到了Windows 2K/XP环境,这招有些失灵,星星变聪明了,它只属于它中意
的人,别的进程别想打它的主意。对于没有权限获得密码的进程,它会简单地返回一个
ERROR_ACCESS_DENIED,来打发那些动机不纯或者别有用心的人们。但是还是有高手能够通
过钩子函数,来笼络星星的心,钩子函数能够实现把一个动态连接库注入到另外一个进程,
获取窗口文本,再返回给另外一个进程,面对这个吃里扒外的东西,不明真相的星星姑娘,
居然听之任之,全抛一片心。
网页中的星星是一颗特别的星,铁石心肠,然而它却是豆腐作的。你很难获得它的窗口句
柄,通过Visual Studio提供的SPY++也很难获得它的窗口句柄和它收到的窗口消息。获
得网页中的密码必须通过必须通过HTML中的MSHTML文档对象模型。你首先必须通过各种方
法获得Internet Explorer浏览器(Mr Navigate,Sorry)窗口句柄,判断它的类名是否
是&quot;Internet Explorer_Server&quot;,然后通过下述代码获得其文档对象模型指针,即
IHTMLDocument2接口。

HWND hw;
MSHTML::IHTMLDocument2Ptr doc;
MSHTML::IHTMLElementCollectionPtr col;
MSHTML::IHTMLElementPtr EL;
DWORD lRes;
HRESULT hres;

UINT MSG = RegisterWindowMessage(&quot;WM_HTML_GETOBJECT&quot;);

SendMessageTimeout(hw, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, &amp;lRes);

hres=ObjectFromLresult(lRes, __uuidof(MSHTML::IHTMLDocument2), 0, (void**)&amp;doc);

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

CString GetPassword(IHTMLDocument2 *pDoc2,POINT pt)
{
if(pDoc2==NULL)return &quot;&quot;;
CComPtr<IHTMLElement> pElement;
HRESULT hr=pDoc2->elementFromPoint(pt.x,pt.y,&amp;pElement);
if(SUCCEEDED(hr)){
CComPtr<IHTMLInputTextElement> pPwdElement;
hr=pElement->QueryInterface(IID_IHTMLInputTextElement,
(void**)&amp;pPwdElement);
if(SUCCEEDED(hr)){
CComBSTR type;
hr=pPwdElement->get_type(&amp;type);
if(SUCCEEDED(hr)){
if(type==_T(&quot;password&quot;)){
CComBSTR pwd;
hr=pPwdElement->get_value(&amp;pwd);
if(SUCCEEDED(hr)){
if(pwd.Length()!=0){
CComBSTR msg;
msg=pwd;
CString str(msg);
return str;
}
else{
return &quot;&quot;;
}
}
}
}
}
}
pDoc2->Release();
return &quot;&quot;;
}
如果你想尝试一下如何在后台记录网页密码,你可以实现一个IE扩展的COM组件,由IE负责
自动加载,在组件中你必须实现IOleObjectSite接口,在SetSite方法中得到一个指向IE
COM对象的Iunknown的指针,再通过它获得其它接口的指针。在程序中还需要创建一个线
程负责对当前的网页所有元素实现轮询解析,判断元素的属性是否是一个编辑框(密码编
辑框),然后把用户名和密码记录到一个文件中。
本程序在Windows XP(IE6)环境下利用Visual Studio.net Beta 2调试通过
 
我找了一段相关代码:

http://www.daizhicun.com/dmx/dai/jz.rar
有兴趣的朋友可以研究一下。整理出一份完整可用的代码
我的电邮 sy_dzc@yahoo.com.cn
 

Similar threads

Y
回复
0
查看
825
yangyxd
Y
I
回复
0
查看
773
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部