反流技术之IE插件技术研究第二部分【CSDN】
上接<反流技术之IE插件技术研究第一部分>: http://blog.csdn.net/davemin/archive/2007/01/05/1474858.aspx
申明: 本文涉及到的技术只供参考研究之用,不可用于非法行为,本人不负责。
2.3. BHO 示例
A. 下面我讲下,如何使用Microsoft Vistual Studio 6.0 中的VC 建BHO 程序。
先找一个Microsoft SDK安上。 我用的是这个:
October 2002 SDK Release Notes
The Microsoft® Platform SDK provides developers with documentation, header files, and sample code necessary to write software for Microsoft Windows® and Microsoft Windows NT®. The Platform SDK simplifies installation by integrating components from different SDKs and installing them in common paths on your hard disk. It can also set the search paths used by Microsoft Visual Studio®.
Step 1). 使用wizard, 选择ATL COM AppWizard, Project Name = BHOTest
Step 2). 用不用MFC, 自己选择,高手可能根本不需要使用MFC, 或者如果为了这个程序的可执行文件的最小化不选择MFC为好。我这里就不选择MFC了。 其他不变。
Step 3). New ATL Object, name = MyBHO, 到这里其实和普通的ATL Com 组件一模一样,没有两点区别。
Step 4). 增加父类, public IObjectWithSiteImpl<CMyBHO>, 加COM_INTERFACE_ENTRY(IObjectWithSite), 加相关事件。
参考源程序。不能在这里一一道明。
Step 5). 增加BHO register 到MyBHO.rgs 文件中.
{
SOFTWARE
{
Microsoft
{
Windows
{
CurrentVersion
{
Explorer
{
'Browser Helper Objects'
{
{C28BCCCA-BE95-40EB-A5A9-8384C9D2E478}
}
}
}
}
}
}
}
Step 6). IE事件处理, Invoke(...)
打开网页完成事件: DISPID_DOCUMENTCOMPLETE
其他事件可以参考:
http://msdn.microsoft.com/workshop/browser/mshtml/reference/events/htmlformelementevents/htmlformelementevents.asp
注意include MSHTMDID.H
经过这样6步,一个最基本的BHO程序已经完成了。程序员可以自己在其中加减代码。
而且可以把上一篇中讲到的东西,以及代码都Copy过来使用。
具体参考源程序: BHOTest1_Code.zip
B. 对IE输入口令的威胁
近两年来很多重要机构开始慢慢重视IE输入数据的不安全性,特别是金融系统的在线交易。
但大部份金融系统的web端还是非常危险, 而且就这样简单的BHO程序就可以取得所有输入的机密数据。
这里对https://reg.163.com/logins.jsp 作一个例子吧.
实现:实时获取输入的163 passport 账号密码。
具体参考源程序: BHOTest2_Code.zip
C. 对注册账号以及论坛或blog垃圾广告回复的应用
从第二个代码:BHOTest2_Code.zip 例子里面应该可以看到,其实完全可以让IE达到自动化。
或者可以创建一个Dialog 来操作设置,然后自动注册账号,自动在论坛里面发垃圾数据。或者是自动在各种blog里面加垃圾数据的评论。
至于IHTMLInputElement 的设置值,不同的html tag使用不同的API, put_value 或者put_checked或者其他等等,参考msdn.
填写form相关数据后,调用:IHTMLFormElement->submit() API 就自动提交了表单。可以实现自动:登录, 回复贴子, 加blog评论等等功能。
这里只作这样的简单说明,不再提供相关源程序。请参考前面两个Examples。
2.4. 其他应用IWebBrowser2接口的浏览器
其实应用IWebBrowser2接口的浏览器,只需要调用IShellWindows COM接口,就可以完全列出来了。
参考下面代码。
//
::CoInitialize(NULL);
CComPtr< IShellWindows > spShellWin;
HRESULT hr = spShellWin.CoCreateInstance( CLSID_ShellWindows );
if ( FAILED ( hr ) )
{
return NO_ERROR;
}
while ( TRUE )
{
long nCount = 0;
spShellWin->get_Count( &nCount );
if( 0 == nCount )
{
continue;
}
for( int i = 0; i < nCount; i++ )
{
CComPtr< IDispatch > spDispIE;
hr=spShellWin->Item(CComVariant( (long)i ), &spDispIE );
if ( FAILED ( hr ) ) continue;
CComQIPtr< IWebBrowser2 > spBrowser = spDispIE;
if ( !spBrowser ) continue;
//...
}
}
// ...
2.5. 补充说明
在2.2. 里面讲的内容,可能涉及到很多东西。比如吧,前几天看到网上一个新闻说这样一件事:一个IT公司为一个公司的网站提升baidu,google排名,
反正怎么搜索,都排在第一。那公司就高兴了,给钱了,交易了。后来那公司发现他们自己的电脑上不是这么回事。 那IT公司就说了,要装软件。
呵呵,其实就是2.2这一节里面讲的技术实现的。
想起来甚是好笑。
3. 对反BHO的思考
看了几个反流的软件,觉得他们处理BHO相关的程序过于太狠了。感觉只要是BHO通杀,除了你是知名的安全BHO,如:google toolbar。
如果这样反BHO, 那以后就不可能有什么正式的BHO组件超的过google toolbar了,因为还没有出来就被查杀了。不管是好是坏。
所以个人以为能更改进一步为最好,BHO从技术上讲不见得就是恶意程序。
4. 写在最后
两根烟一杯酒,杭州的冬天,还有这个漫漫长夜。
我冷的有点发抖,担心中国的internet 网上流软横行啊,今天又发现在一个我做过安全设置的电脑上,出现了KMD(kernel mode driver)的流软。
如此下去,反流任务更难了。我不相信,目前流行的反流工具能清除所有流软。特别是KMD级别的。
因为我希望大家能写些更牛的反流软件以自由软件的形式,供中国普通网民使用。
欢迎同仁加入VC技术群:30107096 Dotnet群: 9949057
写于2007-1-8 5:17
出处:http://slave2.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。