反流技術之IE插件技術研究第二部分

上接<反流技術之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 文件中.

HKLM
{
    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接口,就可以完全列出來了。

參考下面代碼。  

    USES_CONVERSION;
    
    
//
    ::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

 

 

 


--------------
2011.01.17 更新了附件URL, 目前提供的222主機上的附件(源代碼zip文件)爲可下載的正確的附件(源代碼zip文件).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章