本文共 1017 字,大约阅读时间需要 3 分钟。
三、修改Alexa工具条的代码 熟悉IE编程的人都知道,DWebBrowserEvents2接口是用来接收WebBrowser的事件通知的,我们可以在AlxRes.dll的javascript代码中找到这些些对应的函数。在res://AlxRes.dll/SCRIPT/EVT.CLASS.JS的代码中,有一系列的javascript函数,对应于DWebBrowserEvents2接口的成员,如:DocumentComplete->BP_onDocumentComplete,NavigateComplete2->BP_onNavigateComplete,BeforeNavigate2->BP_onBeforeNavigate。按照DWebBrowserEvents2接口,我们可以在BeforeNavigate2中截获PostData,但是在AlxRes.dll的代码中,这个接口没有完全实现。在DWebBrowserEvents2接口中的原型是: void BeforeNavigate2(IDispatch *pDisp, VARIANT *&url, VARIANT *&Flags, VARIANT *&TargetFrameName, VARIANT *&PostData, VARIANT *&Headers, VARIANT_BOOL *&Cancel ); 这其中的PostData包含了的Post数据。而BP_onBeforeNavigate的函数原型: function BP_onBeforeNavigate(oParentWebBrowser2, oWebBrowser2, sURL, bPostData, sHeaders); 其中,bPostData只是个BOOL类型的变量。此路不通,必须另想办法。 一般来说,我们在IE中输入的用户名密码都是通过表单提交到服务器的,如果能在表单提交前截获表单的内容就可以实现窃取密码了。在javascript中,只要处理表单的"OnSubmit"事件,就可以先于提交而处理表单的内容。而AlxRes.dll的功能也是由javascript实现的,所以我们就无需面对繁琐的COM接口,而直接使用javascript了。 这里我推荐使用Resource Hacker来修改AlexRes.dll中的资源,个人感觉比eXeScope用起来爽多了。转载地址:http://veskb.baihongyu.com/