成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>開發編程>>綜合開發>>新聞內容
3721駐留機制簡單研究
作者:Quaful@水木清華 發布時間:2004-3-9 15:08:25 文章來源:西部E網
簡單研究了一下3721的機制,寫在這里,作為心得筆記吧。大部分收獲都來自
Softice + 反匯編,不一定適用于某些版本。

1. CnsMin.dll的駐留方式

3721的核心文件:CnsMin.dll
通常存在于<Windows Directory>\Downloaded Program Files下。

通過注冊表Run鍵值加載:Rundll32 <dir>\CnsMin.dll, Rundll32

CnsMin.dll提供了一個函數Rundll32供Rundll32.exe調用
但這個函數只是調用一個真正的駐留函數Rundll32Main()。

Rundll32Main()偽代碼:

void Rundll32Main()
{
hMutex = CreateMutex("CNSMINMUTEX");
        if(ERROR_ALREADY_EXISTS)
        {
                CloseHandle(hMutex);
                exit;
        }
        if(IsWindowsNT()) {
                SetProcessSecurityInfo();
        }
        else {
                RegisterProcessAsService();
        }
        CheckVersion();
        
        // CnsMinKP.sys/vxd 內核驅動程序,保護3721關鍵文件和注冊表項不被刪除
        ContactWithCnsMinKPDriver();
        
        // 關鍵的hook,負責將CnsMin.dll注入其他進程空間
        InstallCBTHook();
        
        // 關鍵的hook,負責將CnsMin.dll注入其他進程空間
        InstallCallWndProcHook();
        
        // CnsMinIO.dll 負責IE地址欄下方的提示
        InitCnsMinIO();
        
        // 一些注冊表信息
        InitRegistry();
        
        // 保護CnsMin.dll的鉤子不被卸載或搶先
        InstallGuardTimer();

        CreateMsgWindow();

        // Message loop
        while (true)
        {
                GetMessage(&msg);
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
}

CnsMin主要是通過WH_CBT和WH_CALLWNDPROC兩個全局鉤子注入IE進程空間的。注入
IE后,又安裝了WH_KEYBOARD,WH_DEBUG等鉤子。其中對3721實現其“實名轉換”
有用的是WH_KEYBOARD。這是一個本地鉤子。

CnsMin為了保證自己的優先級最高,用了一個定時器函數反復安裝鉤子,無疑會造成
系統性能的下降。


我曾經嘗試過自己安裝一個WH_DEBUG鉤子阻止3721鉤子的調用,確實起到了效果,
立即可以使3721失效。但這種方法3721仍然駐留IE進程內,屬于指標不治本的方法。

強制結束Rundll32進程,可以暫時卸載3721的駐留代碼。但CnsMin.dll通過COM注冊已經
嵌入IE組件中,重新啟動IE后,該進程又會重新啟動。

2. 3721的防刪除手段
  文件系統驅動:CnsMinKP*.sys 針對NT/2000/XP有不同版本(98下面是CnsMinKP.vxd)
  通常存在于<System directory>\drivers\目錄。

  驅動程序,由Windows啟動時加載。

  該驅動程序過濾了對文件和注冊表的刪除操作。試圖刪除3721的關鍵文件和注冊表項時,
直接返回一個TRUE,使Windows認為刪除已經成功,但文件和注冊表實際上還是在那里。
  該驅動程序還有一個黑名單(保存在某個外部文件中),阻止Windows讀取其他3721的競爭對手的插件文件。

  目前還沒有找到停止該驅動的方法。

  刪除方法:在Windows啟動前(例如,98下面退出到DOS)刪除CnsMinKP*.sys文件。
注意:3721具有自恢復能力。某些關鍵文件被刪除后,其它模塊會試圖從3721網站重新
下載。所以徹底刪除前需要斷開網絡連接。

3. 針對目前版本的刪除步驟:
a) 運行3721自己提供的刪除程序。可以刪掉大部分的文件。
b) 從DOS啟動,刪除殘存文件,如CnsMin.dll,CnsMinKP*.*等
   可能的目錄:Downloaded Program Files目錄,Program Files\3721目錄,drivers目錄
c) 啟動Windows,進入桌面時Windows會報告一些模塊找不到的錯誤,不用理會,刪除
   注冊表中3721的值。
   可能的位置:HKEY_CURRENT_USER: Software\3721
   HKEY_LOCAL_MACHINE: Windows\CurrentVersion\Run
                       SYSTEM\CurrentControlSet
   另外還零散的藏了一些,用關鍵字查找。

最新更新
·wml中頁面自動跳轉的實現方法
·Alexa排名數據接口的簡要介紹
·利用U盤進行軟件加密的方法(VB)
·優秀程序員的十個習慣
·項目管理:如何逃離垃圾客戶
·QQ2009去廣告部分核心源代碼
·讓程序更容易理解:13個代碼注釋的小技
·nx1和nx2后綴名是什么數據庫文件?
·正則表達式符號解釋大全
·什么是RIA?介紹幾種RIA客戶端開發技術
相關信息
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個傳說
丟了幸福的豬
找個人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因為寂寞才想你
愛上你等于愛上了錯
在心里從此永遠有個你
一個人的寂寞兩個人的錯
主站蜘蛛池模板: 赤峰市| 邵东县| 宁陵县| 隆子县| 谢通门县| 额尔古纳市| 普定县| 丽江市| 施甸县| 抚顺县| 奎屯市| 思南县| 屯门区| 临朐县| 石楼县| 平邑县| 金阳县| 集安市| 张家界市| 博兴县| 南靖县| 马山县| 临高县| 定结县| 喜德县| 三门峡市| 双柏县| 鲁山县| 伊川县| 霞浦县| 新河县| 清涧县| 抚顺市| 吴旗县| 集贤县| 林州市| 青阳县| 玉门市| 延吉市| 新化县| 桐梓县|