① 什麼叫驅動層的加密加密原理是什麼加密性能好嗎
目前驅動層加密根據其加密文件或者磁碟可以有兩個解釋:一個是專緩存管理器頁入,此種是屬文件系統過濾驅動的范疇;另一個理解是磁碟上的扇區操作,這是磁碟過濾驅動;
這種技術相對於應用層加密技術有不產生臨時文件,效率更高的特點;
該引擎包括三個主要模塊:
文件過濾驅動器,加密演算法庫內核層,加密演算法庫應用層。
文件過濾驅動器功能:1、文件後綴過濾
2、進程名過濾
3、進程ID過濾
4、應用程序特徵值過濾
對文件操作行為控制:
1、讀
2、覆蓋寫
3、創建
4、刪除
5、改名
② 為什麼我的電腦在玩游戲時總是出現 「無法定位程序輸入點於動態聯結庫上」
LdrsetSessionName於動態鏈接庫mfc40u.dll上"的方法
文章類型:系統修復、病毒查殺
說明:
系統無法正常登陸,在啟動時系統程序「lsass.exe」會彈出錯誤提示:「無法定位程序輸入點 LdrsetSessionName 於動態鏈接庫 mfc40u.dll 上。」或「沒有找到 mfc40u.dll 組件,重新安裝應用程序可能會修復此問題。」等信息的修復方法。
------------------------------------------------------------------------
------------------------------------------------------------------------
介紹:
系統程序「lsass.exe」彈出錯誤「無法定位程序輸入點 LdrsetSessionName 於動態鏈接庫 mfc40u.dll 上。」這個提示是由於系統被病毒破壞而產生的。是系統程序「lsass.exe」進程啟動時彈出來的錯誤提示信息,真正的系統程序「lsass.exe」 進程中是不會有這種提示信息的。之所以會彈出該提示,是因為病毒修改了系統「lsass.exe」程序的輸入表(在輸入表的尾部多加了一條調用信息 「LdrsetSessionName」、「mfc40u.dll」),同時病毒又使用自身釋放出來的惡意DLL組件覆蓋了系統本身的DLL組件 「mfc40u.dll」(系統內原本就有這個DLL組件的)。當殺毒軟體或安全軟體發現了被病毒程序破壞的系統DLL組件「mfc40u.dll」(系統原DLL組件的功能是MFC的部分函數庫,被病毒覆蓋後的DLL組件的功能是木馬下載器)後,就給強行刪除掉了,但沒有去修復系統程序 「lsass.exe」文件的輸入表,也沒有還原被病毒破壞的系統DLL組件「mfc40u.dll」文件,所以出現了上邊的錯誤提示信息。
病毒是利用磁碟過濾驅動去讀寫真實磁碟中的數據,然後去破壞系統「lsass.exe」和「mfc40u.dll」文件的。所以,不管系統 「lsass.exe」和「mfc40u.dll」程序有沒有在運行,都會被病毒破壞掉。該病毒使用了類似於「古老的機器狗病毒穿系統還原的設計原理」,並沒有去破壞您系統的注冊表中的數據信息。所以在網路上見很多人提出使用「重新注冊系統『mfc40u.dll』DLL組件的方法是不對的」,可能會對系統造成更大的破壞。要對症下葯,不然很可能會越醫越病!!
③ VC是讀寫硬碟的引導區
VC是否可以讀寫硬碟的引導區(破還原精靈方法求解)?
BOOL CDirectAccessHDDlg::ReadSectors(BYTE bDrive, DWORD dwStartSector, WORD wSectors, LPBYTE lpSectBuff)
// 對磁碟扇區數據的讀取
{
if (bDrive == 0) return 0;
char devName[] = "\\\\.\\A:";
devName[4] ='A' + bDrive - 1;
HANDLE hDev = CreateFile(devName, GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (hDev == INVALID_HANDLE_VALUE) return 0;
SetFilePointer(hDev, 512 * dwStartSector, 0, FILE_BEGIN);
DWORD dwCB;
BOOL bRet = ReadFile(hDev, lpSectBuff, 512 * wSectors, &dwCB, NULL);
CloseHandle(hDev);
return bRet;
}
不過估計對付不了某些還原軟體,這些軟體一般是帶有磁碟過濾驅動的,像這些通過驅動操作磁碟的
方法往往都會被知道,可以利用DDK做個IO驅動,然後通過IO驅動直接操作IDE設備的IO使用ATAPI協議來完成操作;這樣就
不容易被攔截,當然IO也是有辦法攔截的,那我就不 知道怎麼辦了!
④ 數據防泄露的技術變革
透明加密技術是近年來針對企業數據保密需求應運而生的一種數據加密技術。所謂透明,是指對使用者來說是透明的,感覺不到加密存在,當使用者在打開或編輯指定文件時,系統將自動對加密的數據進行解密,讓使用者看到的是明文。保存數據的時候,系統自動對數據進行加密,保存的是密文。而沒有許可權的人,無法讀取保密數據,從而達到數據保密的效果。
自WindowsNT問世以來,微軟提出的分層的概念,使透明加密有了實現的可能。自上而下,
應用軟體,應用層APIhook(俗稱鉤子), 文件過濾驅動,卷過濾驅動,磁碟過濾驅動,另外還有網路過濾驅動,各種設備過濾驅動。其中應用軟體和應用層apihook在應用層(R3), 從文件過濾驅動開始,屬於內核層(R0).
數據透明加密技術,目前為止,發展了3代,分別為
第一代APIHOOK應用層透明加密技術;
第二代文件過濾驅動層(內核)加密技術;
第三代內核級縱深加密技術 ;
第一代:APIHOOK應用層透明加密技術
應用層透明加密技術俗稱鉤子透明加密技術。這種技術起源於win98時代,後來隨著windows2000而流行起來。就是將上述兩種技術(應用層API和Hook)組合而成的。通過windows的鉤子技術,監控應用程序對文件的打開和保存,當打開文件時,先將密文轉換後再讓程序讀入內存,保證程序讀到的是明文,而在保存時,又將內存中的明文加密後再寫入到磁碟中。應用層APIHOOK加密技術,特點是實現簡單,缺點是可靠性差,速度超級慢,因為需要臨時文件,也容易破解。但由於直接對文件加密直觀感覺非常好,對於當初空白的市場來講,這一旗號確實打動了不少企業。
第二代:文件過濾驅動加密技術
驅動加密技術是基於windows的文件系統(過濾)驅動技術,起源於WindowsNT發布之後,其工作在windows的內核層,處於應用層APIHook的下面,卷過濾和磁碟過濾的上面。設計思想是建立當應用程序(進程)和文件格式(後綴名)進行關聯,當用戶操作某種後綴文件時對該文件進行加密解密操作,從而達到加密的效果。
內核層文件過濾驅動技術,分IFS和Minifilter2類。IFS出現較早,Minfilter出現在xp以後。兩者的區別可以理解為VC++和MFC的區別,IFS很多事情需要自己處理,而Minifilter是微軟提供了很多成熟庫,直接用。由於windows文件保存的時候,存在緩存,並不是立即寫入文件,所以根據是否處理了雙緩bug,後來做了些細分,但本質還是一樣,都是問題的修正版本而已。但由於工作在受windows保護的內核層,運行速度比APIHOOK加密速度快,解決了很多問題和風險。
文件過濾驅動技術實現相對簡單,但穩定性一直不太理想。
第三代:內核級縱深沙盒加密技術
之所以叫內核級縱深沙盒加密技術,主要原因是使用了磁碟過濾驅動技術,卷過濾驅動技術,文件過濾驅動技術,網路過濾驅動(NDIS/TDI)技術等一系列內核級驅動技術,從上到下,縱深防禦加密。該技術也起源於WindowsNT之後,但由於技術復雜,開發要求高,公開資料少,而發展較慢。但隨著微軟公布了部分Windows源代碼之後,此技術開始逐漸成熟。內核級沙盒加密,是當使用者操作涉密數據的時候,對其存儲過程進行控制,對其結果進行加密保存,每個模塊只做自己最擅長的那塊,所以非常穩定。加密的沙盒是個容器,把涉密軟體,文件扔到容器中加密。而這個容器是透明的,使用者感覺不到它的存在。,
第三代透明加密技術的特點是,涉密數據使用前,先初始化涉密沙盒,沙盒加密一旦成功,之後所有的數據都是數據實體,不針對文件個體,所以無數據破損等問題。特點是速度快,穩定。
第一代,第二代本質都是採用的針對單個文件實體進行加密,如a.txt內容為1234, 加密後變成@#$%% +標記。@#$%%是把原文1234進行加密之後的密文。而標記的用途是用來區分一個a.txt文件是否是已經被加密。當系統遇到一個文件的時候,首先判斷這個標記是否存在,如果存在,表明是被系統加密過的,則走解密讀取流程,如果不是加密的,就無需解密,直接顯示給使用者,只是當保存的時候,再進行加密,使其成文密文+標記。
這就帶來一個巨大的風險 :如果是一個較大文件,加密過程中發生異常,標記沒加上,那麼下次讀這個文件的時候,因為沒有讀到表記,而採用原文讀取,然後再加密,那麼這個文件就徹底毀壞了。這個現象在第一代APIHOOK透明加密技術的產品中特別明顯,在第二代文件過濾驅動產品中,因為速度變快了,使文件破損發生概率減低了很多,但並沒有本質解決這個問題。
另外, 由於是進程和文件後綴名進行關聯,也造成了一個缺陷 :很多編程類軟體,復雜制圖軟體的編譯,曬圖等操作,都是很多進程同時操作某個文件,這個時候進行進程和文件關聯顯然太牽強了,因為進程太多了。即使進行關聯,多個進程交替訪問文件,加密解密混在一起,極容易造成異常。所以才會出現VC等環境下如不能編譯,調試等。
其他方面,版本管理無法對比,伺服器上存放的是密文(伺服器存密文,是個極大的風險,目前沒有哪家大企業敢這么做,畢竟太依賴加密軟體,持續性沒有了),大文件速度慢等,一系列問題,無法解決。
而第三代內核縱深加密技術是在前者2個基礎之上發展而來的,每個過濾層都只做自己最擅長的事情,所以特別穩定,速度快,性能可靠,不存在第一代和第二代的問題。由於內核級縱深透明加密技術要求高,涉及技術領域廣,極其復雜,開發周期長,所以國內的能做開發的廠商不多。目前, 深信達公司推出的SDC機密數據保密系統, 給人一眼前一亮的感覺,其產品是第三代透明加密保密技術的典型產品,其產品主要特點是:
1)採用了磁碟過濾,卷過濾,文件過濾,網路過濾等一系列縱深內核加密技術,採用沙盒加密,和文件類型和軟體無關,沙盒是個容器。
2)在操作涉密數據的同時,不影響上外網,QQ,MSN等。
3)保密徹底,包括網路上傳,郵件發送,另存,復制粘貼,屏幕截取等,特別是屏幕保密,做得非常炫。
4)服務上存放的是明文,客戶端存放的是密文,文件上傳伺服器自動解密,到達客戶端自動加密。伺服器上明文,減少了業務連續性對加密軟體的依賴。
5)不但可以針對普通文檔圖紙數據進行保密需求,同時更是研發性質的軟體公司( 游戲 ,通訊,嵌入式,各種BS/CS應用系統)源代碼保密首選。
⑤ 高手請進——什麼是機器狗病毒呀
機器狗的生前身後,曾經有很多人說有穿透還原卡、冰點的病毒,但是在各個論壇都沒有樣本證據,直到2007年8月29日終於有人在社區里貼出了一個樣本。這個病毒沒有名字,圖標是SONY的機器狗阿寶,就像前輩熊貓燒香一樣,大家給它起了個名字叫機器狗。
工作原理
機器狗本身會釋放出一個pcihdd.sys到drivers目錄,pcihdd.sys是一個底層硬碟驅動,提高自己的優先順序接替還原卡或冰點的硬碟驅動,然後訪問指定的網址,這些網址只要連接就會自動下載大量的病毒與惡意插件。然後修改接管啟動管理器,最可怕的是,會通過內部網路傳播,一台中招,能引發整個網路的電腦全部自動重啟。
重點是,一個病毒,如果以hook方式入侵系統,接替硬碟驅動的方式效率太低了,而且毀壞還原的方式這也不是最好的,還有就是這種技術應用范圍非常小,只有還原技術廠商范圍內有傳播,在這方面國際上也只有中國在用,所以,很可能就是行業內杠。
對於網吧而言,機器狗就是劍指網吧而來,針對所有的還原產品設計,可預見其破壞力很快會超過熊貓燒香。好在現在很多免疫補丁都以出現,發稿之日起,各大殺毒軟體都以能查殺。
免疫補丁之爭
現在的免疫補丁之數是疫苗形式,以無害的樣本復制到drivers下,欺騙病毒以為本身已運行,起到阻止危害的目的。這種形式的問題是,有些用戶為了自身安全會在機器上運行一些查毒程序(比如QQ醫生之類)。這樣疫苗就會被誤認為是病毒,又要廢很多口舌。
解決之道
最新的解決方案是將system32/drivers目錄單獨分配給一個用戶,而不賦予administror修改的許可權。雖然這樣能解決,但以後安裝驅動就是一件頭疼的事了。
來徹底清除該病毒,處理後重啟一下電腦就可以了,之前要打上補丁!
或者這樣:
1注冊表,組策略中禁止運行userinit.exe 進程
2 在啟動項目中加入批處理
A : 強制結束userinit.exe進程 Taskkill /f /IM userinit.exe (其中「/IM」參數後面為進程的圖像名,這命令只對XP用戶有效)
B : 強制刪除userinit.exe文件 DEL /F /A /Q %SystemRoot%\system32\userinit.exe
C : 創建userinit.exe免疫文件到%SystemRoot%\system32\
命令:md %SystemRoot%\system32\userinit.exe >nul 2>nul
或者 md %SystemRoot%\system32\userinit.exe
attrib +s +r +h +a %SystemRoot%\system32\userinit.exe
D : reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\userinit.exe" /v debugger /t reg_sz /d debugfile.exe /f
userinit1.exe是正常文件改了名字,多加了一個1,你也可以自己修改,不過要手動修改這4個注冊表,並導出,這個批處理才能正常使用。
最新動向
好像機器狗的開發以停止了,從樣本放出到現在也沒有新的版本被發現,這到讓我們非常擔心,因為雖著研究的深入,現在防禦的手段都是針對病毒工作原理的,一但機器狗開始更新,稍加改變工作原理就能大面積逃脫普遍的防禦手段,看來機器狗的爆發只是在等待,而不是大家可以高枕了。
目前網上流傳一種叫做機器狗的病毒,此病毒採用hook系統的磁碟設備棧來達到穿透目的的,危害極大,可穿透目前技術條件下的任何軟體硬體還原!基本無法靠還原抵擋。目前已知的所有還原產品,都無法防止這種病毒的穿透感染和傳播。
機器狗是一個木馬下載器,感染後會自動從網路上下載木馬、病毒,危及用戶帳號的安全。
機器狗運行後會釋放一個名為PCIHDD.SYS的驅動文件,與原系統中還原軟體驅動進行硬碟控制權的爭奪,並通過替換userinit.exe文件,實現開機啟動。
>> 那麼如何識別是否已中毒呢?
是否中了機器狗的關鍵就在 Userinit.exe 文件,該文件在系統目錄的 system32 文件夾中,點擊右鍵查看屬性,如果在屬性窗口中看不到該文件的版本標簽的話,說明已經中了機器狗。如果有版本標簽則正常。
臨時解決辦法:
一是在路由上封IP:
ROS腳本,要的自己加上去
/ ip firewall filter
add chain=forward content=yu.8s7.net action=reject comment="DF6.0"
add chain=forward content=www.tomwg.com action=reject
二是在c:\windows\system32\drivers下建立免疫文件: pcihdd.sys ,
三是把他要修改的文件在做母盤的時候,就加殼並替換。
在%systemroot%\system32\drivers\目錄下建立一個名為「pcihdd.sys 」的文件夾,設置屬性為「任何人禁止」
批處理
1、md %systemroot%\system32\drivers\pcihdd.sys
2、cacls %systemroot%\system32\drivers\pcihdd.sys /e /p everyone:n
3、cacls %systemroot%\system32\userinit.exe /e /p everyone:r
4、exit
目前,網路流行以下解決方法,或者可以在緊急情況下救急:
1、首先在系統system32下復制個無毒的userinit.exe,文件名為 FUCKIGM.exe(文件名可以任意取),這就是下面批處理要指向執行的文件!也就是開機啟動userinit.exe的替代品!而原來的 userinit.exe保留!其實多復制份的目的只是為了多重保險!可能對防止以後變種起到一定的作用。
2、創建個文件名為userinit.bat的批處理(文件名也可任意取,但要和下面說到的注冊表鍵值保持一致即可),內容如下:
start FUCKIGM.exe (呵呵,夠簡單吧?)
3、修改注冊表鍵值,將userinit.exe改為userinit.bat。內容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="C:\WINDOWS\system32\userinit.bat,"
就這3步,讓這條狗再也凶不起來!這是在windows 2003測試的,雙擊機器狗後,沒什麼反應,對比批處理也是正常,即這狗根本沒改動它!開關機游戲均無異常!但唯一美中不足的是,採用經典模式開機的啟動時會出現個一閃而過的黑框!
如果嫌麻煩,也不要緊。上面三條批處理網友已搞好了,直接復制下面的這個存為批處理執行就OK了。三步合二為一
@echo off
:::直接復制系統system32下的無毒userinit.exe為FUCKIGM.exe
cd /d %SystemRoot%\system32
/y userinit.exe FUCKIGM.exe >nul
:::創建userinit.bat
echo @echo off >>userinit.bat
echo start FUCKIGM.exe >>userinit.bat
:::注冊表操作
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit / t REG_SZ /d "C:\WINDOWS\system32\userinit.bat," /f >nul
:::刪掉自身(提倡環保)
del /f /q %0
當然,如果實在不行,下載程序killigm。然後直接解壓運行裡面的程序:機器狗免疫補丁.bat 執行就可以了.
網上流傳的另一種新的變種的防止方法 :
開始菜單運行.輸入CMD
cd ……到drivers
md pcihdd.sys
cd pcihdd.sys
md 1...\
可防止最新變種。請注意:此法只能是防止,對於殺機器狗還得靠最新的殺毒程序才行。
針對該病毒,反病毒專家建議廣大用戶及時升級殺毒軟體病毒庫,補齊系統漏洞,上網時確保打開「 網頁監控」、「郵件監控」功能;禁用系統的自動播放功能,防止病毒從U盤、MP3、移動硬碟等移動存儲設備進入到計算機;登錄網游賬號、網路銀行賬戶時採用軟鍵盤輸入賬號及密碼
[編輯本段]
「機器狗」新、老版本病毒特徵
1:新版本「機器狗」病毒採用VC++ 6.0編寫,老版本「機器狗」病毒採用匯編編寫。
2:新版本「機器狗」病毒採用UPX加殼,老版本「機器狗」病毒採用未知殼。
3:新版本「機器狗」病毒驅動文件很小(1,536 位元組),老版本「機器狗」病毒驅動文件很大(6,768 位元組)。
4:新版本「機器狗」病毒安裝驅動後沒有執行卸載刪除操作,老版本「機器狗」病毒安裝驅動工作完畢後會卸載刪除。
5:新版本「機器狗」病毒針對的是系統「conime.exe」、「ctfmon.exe」和「explorer.exe」程序文件,老版本「機器狗」病毒只針對系統「userinit.exe」文件。
6:新版本「機器狗」病毒沒有對注冊表進行操作,老版本「機器狗」病毒有對注冊表 「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon」項進行操作(感覺該操作沒必要,因為重新啟動系統後,「還原保護程序」系統會將其還原掉)。
7:新版本「機器狗」病毒去到系統dllcache文件夾下調用真實系統文件運行,老版本「機器狗」病毒沒有到系統dllcache文件夾下調用真實系統文件運行。
8:新版本「機器狗」病毒採用的是控制台程序圖標,老版本「機器狗」病毒採用的是黑色機器小狗圖案的圖標。
大概列舉出來了上邊的幾點,經過仔細分析它們的工作原理和編碼風格後,可以推測出新版本「機器狗」病毒和老版本「機器狗」病毒決定不是出自一個人之手。
[編輯本段]
錯誤糾正
在此要糾正兩個技術性的問題,網路上流傳的一些關於分析「機器狗」病毒(新、老版本)的部分文章中,有兩處表達錯誤的地方。
第一處是:在那些分析文章中所提到「『機器狗』病毒會破壞『還原保護程序』系統,使其還原功能失效」。其實,從概念的理解上來講述,那些表達都是錯誤的,是讓人理解不清晰的,會嚴重誤導讀者。正確的表述應該是這樣的:「『機器狗』病毒並沒有破壞『 還原保護程序』系統,也沒有使其還原功能失效。只是安裝了一個病毒自己的磁碟過濾驅動去操作真實的磁碟I/O埠,向真實的磁碟中執行修改覆蓋 「C:\windows\explorer.exe」目標文件(文件名是病毒作者定義的,不固定、會變。但肯定的是,真實磁碟中是存在該文件的。並且病毒運行後,一般只會修改覆蓋一個真實磁碟中的系統文件,再不會去破壞其它真實磁碟中的文件)操作。雖然『機器狗』病毒運行後下載了很多其它惡意程序並安裝運行,但重新啟動計算機後,這些都會被『還原保護程序』系統還原掉的,只是唯一那個被修改覆蓋的真實磁碟文件沒有被還原。如果發現重新啟動計算機後,系統中依然有一大堆病毒在運行。其實,這些都是系統重新啟動後,由那個被修改覆蓋後的系統程序全部重新下載回來並安裝運行的惡意程序。也就是說,每次重新啟動計算機,都要重新下載安裝一次所有的其它惡意程序」。
第二處是:在那些分析文章中所提到「『機器狗』病毒會替換系統中的正常程序 『conime.exe』、『ctfmon.exe』、『explorer.exe』或『userinit.exe』」或「『機器狗』病毒會感染系統中的正常程序『conime.exe』、『ctfmon.exe』、『explorer.exe』或『userinit.exe』」。其實,從概念的理解上來講述,那些表達都是錯誤的,是讓人理解不清晰的,會嚴重誤導讀者。正確的表述應該是這樣的:「『機器狗』病毒並不是替換了系統中的那些正常文件,而是針對那些正常文件在硬碟中所存放的真實物理地址進行以覆蓋的方式去寫入相應的惡意數據。大家可以找來正常的系統文件『explorer.exe』、被病毒修改覆蓋後的系統文件『explorer.exe』和病毒釋放出來的惡意程序『tmp281.tmp』。對比它們內部數據代碼後會發現,被病毒修改後的系統文件『explorer.exe』的前部分數據代碼和」病毒釋放出來的惡意程序『tmp281.tmp』文件的數據代碼是完全相同的,而後邊的數據代碼依然是正常系統文件『explorer.exe』後邊的數據代碼。」。
簡單的概念解釋:
替換:把原目標程序的數據代碼全部清除掉,用新程序的數據代碼來代替以前的整個程序。這樣,替換後的程序只有新程序的功能。
感染:在不破壞原目標程序數據代碼的前提下,向原目標程序的數據代碼中追加上新程序的數據代碼。這樣,感染後的程序既有原目標程序的功能,又有新程序的功能。
覆蓋:從原目標程序數據代碼的文件頭0地址處開始,向後依次執行覆蓋寫入新程序的數據代碼操作,我們這里只假設原目標程序文件遠遠大於新程序。這樣,覆蓋後的程序只執行新程序的功能,雖然原目標程序的數據代碼還存在一部分,但由於沒有被調用,所以不會執行。
[編輯本段]
總結
上邊所指的「還原保護程序」為利用磁碟過濾驅動技術編寫而成的系統還原保護程序,出名一點的軟體有「冰點還原精靈」和「影子系統」 等。也就是說,就算用戶計算機安裝了上邊這樣的「還原保護程序」,只要是中了「機器狗」一類利用穿「還原保護程序」技術的病毒,就算您重新啟動計算機了,但被修改的那個文件「explorer.exe」也是依然不會被還原的,因為病毒的惡意代碼已經覆蓋進了這個真實的磁碟文件中。
目前的「機器狗」一類利用穿「還原保護程序」技術的病毒有一個致命的軟肋,那就是他們所覆蓋的真實系統文件在重新啟動計算機後一定要自啟動運行,不然就失去病毒存在的意義了。現今的「機器狗」病毒都只是能夠穿透磁碟保護的,並穿透不了注冊表(無法在注冊表中保存添加或修改後的數據信息),這個就是它最大的缺陷。其實,注冊表數據信息也是以文件的形式保存在磁碟中的,下一代「機器狗」病毒可能會實現穿透注冊表的功能,等那個時候,可能就很難防範了。這還是不算什麼的,下下一代的「機器狗」病毒可能會利用自己的磁碟過濾驅動去感染真實硬碟下的PE文件,相當的恐怖啊!!
一旦感染了該版本的「機器狗」病毒,它不僅僅可以穿透「還原保護程序」,真實系統也一樣會中毒。因為病毒修改覆蓋了真實的系統文件「C:\windows\explorer.exe」。所以每次重新啟動計算機後,被修改覆蓋的系統程序「C: \windows\explorer.exe」它都會在被感染計算機的後台連接網路下載駭客事先定義好的下載列表中的全部惡意程序並自動調用運行。那麼如果中該病毒的用戶比較多,幾萬台計算機同時啟動,駭客的下載伺服器會掛掉嗎?呵呵~!!
[編輯本段]
「機器狗」問題及回答
問題1:這個最新的機器狗變種,是否與你12月19日發的病毒播報中的機器狗變種是同一個病毒?
回答:不是同一個病毒,只是工作原理十分的相似而已。經過仔細分析它們的工作原理和編碼風格後,可以推測出新版本「機器狗」病毒和老版本「機器狗」病毒決定不是出自一個人之手。
問題2:這個最新的機器狗變種是否功能更強大?強大在那兒?與以往機器狗病毒的不同之處在哪?
回答:應該是相對的強大了些。對比「機器狗」一類新、老版本病毒的部分特徵如下:
問題3:機器狗病毒對網吧的影響很大,對個人用戶的影響有多少?
回答:個人用戶的影響與網吧的影響是同樣大的。因為不管計算機系統是否安裝「還原保護系統」程序,都會同樣下載非常多的(目前是下載27個惡意程序)網路游戲盜號木馬等惡意程序進行安裝運行,從而給被感染計算機用戶帶去一定的損失。如果「用戶計算機硬體配置比較低」或者「存在所下載的多個惡意程序中出現相互不兼容現象」的話,會導致用戶計算機系統崩潰掉無法啟動運行。
[編輯本段]
殺毒方法
·手動殺毒方法
1:結束掉被病毒修改覆蓋後的「C:\windows\explorer.exe」程序進程,刪除該程序文件。
2:也許系統會自動還原回來一個正常的「explorer.exe」桌面程序,如果沒有還原的話,我們可以手動把「C:\windows\system32\dllcache\」下的「explorer.exe」文件拷貝到「C:\windows\」下。
3:手動卸載掉病毒惡意驅動程序「phy.sys」文件。可以在注冊表中找到病毒惡意驅動程序 「phy.sys」的啟動關聯位置然後刪除,接著再刪除掉「C:\windows\system32\DRIVERS\phy.sys」文件。我實際試過N次這種方法,針對該病毒決定好使。
4:重新啟動計算機後,一切就都會變為正常了。但是該新版的「機器狗」病毒會下載27個(不固定)惡意程序到被感染計算機中安裝運行,這些病毒可以安裝江民公司的KV2008去查殺,效果很不錯。
· 超級巡警之機器狗病毒專殺v1.3:
本工具可檢測並查殺機器狗病毒,可穿透機器狗所能穿透的還原系統來修復被感染的文件。本工具還具有免疫的功能,針對已知機器狗變種進行免疫,防止再次感染。另外,可使用命令行方式進行殺毒,便於自動化操作,建議網吧等場所設置為開機自動殺毒,減少重復作業。
下載地址:
http://download.pchome.net/utility/antivirus/trojan/detail-81071.html
http://update4.dswlab.com/RodogKiller1.3.zip
· 360安全衛士:
目前檢測查殺機器狗病毒最有效的工具,機器狗本身下載的都是木馬和後門攻擊,360安全衛士毫無疑問是最好的查殺木馬防禦木馬的最好軟體。
下載地址:
http://www.360.cn
⑥ 寒江獨釣:Windows內核安全編程的圖書目錄
第1章 內核上機指導 1
Windows內核編程的動手有點麻煩,並不是僅僅安裝一個獨立的軟體(比如VC)之後就可以安然地開始編寫代碼,然後運行了。需要下載開發包、配置開發環境、准備調試工具,可能還需要一些小工具協同工作。這一步攔住了不少的初學者。本章以詳細圖文攻略,來引導讀者完成這一麻煩的步驟。
1.1 下載和使用WDK 2
1.1.1 下載安裝WDK 2
1.1.2 編寫第一個C文件 3
1.1.3 編譯一個工程 5
1.2 安裝與運行 6
1.2.1 下載一個安裝工具 6
1.2.2 運行與查看輸出信息 7
1.2.3 在虛擬機中運行 9
1.3 調試內核模塊 9
1.3.1 下載和安裝WinDbg 9
1.3.2 設置Windows XP調試執行 10
1.3.3 設置Vista調試執行 11
1.3.4 設置VMWare的管道虛擬串口 11
1.3.5 設置Windows內核符號表 13
1.3.6 實戰調試first 14
練習題 16
第2章 內核編程環境及其特殊性 17
編寫過驅動程序的讀者可能會很熟悉這一切,但是對只從事過應用程序的讀者而言,要理解內核編程環境的特殊性,就很需要一些功夫和悟性了。在應用程序中,多線程的情況已經帶來了一定理解的困難;而內核代碼呢?幾乎無時無刻不運行在多線程之下。它從哪裡開始?從哪裡結束?它在什麼進程內運行?這些問題一言難盡。
2.1 內核編程的環境 18
2.1.1 隔離的應用程序 18
2.1.2 共享的內核空間 19
2.1.3 無處不在的內核模塊 20
2.2 數據類型 21
2.2.1 基本數據類型 21
2.2.2 返回狀態 22
2.2.3 字元串 23
2.3 重要的數據結構 23
2.3.1 驅動對象 23
2.3.2 設備對象 25
2.3.3 請求 26
2.4 函數調用 28
2.4.1 查閱幫助 28
2.4.2 幫助中有的幾類函數 30
2.4.3 幫助中沒有的函數 32
2.5 Windows的驅動開發模型 32
2.6 WDK編程中的特殊點 33
2.6.1 內核編程的主要調用源 33
2.6.2 函數的多線程安全性 34
2.6.3 代碼的中斷級 36
2.6.4 WDK中出現的特殊代碼 37
練習題 38
第3章 串口的過濾 40
在安全軟體的開發中,串口驅動的應用並不常見。但是本書以串口驅動作為第一個介紹的實例。為何?僅僅是因為串口簡單。從簡單的例子入手,可以為讀者帶來稍許輕松的感受。
3.1 過濾的概念 41
3.1.1 設備綁定的內核API之一 41
3.1.2 設備綁定的內核API之二 43
3.1.3 生成過濾設備並綁定 43
3.1.4 從名字獲得設備對象 45
3.1.5 綁定所有串口 46
3.2 獲得實際數據 47
3.2.1 請求的區分 47
3.2.2 請求的結局 48
3.2.3 寫請求的數據 49
3.3 完整的代碼 50
3.3.1 完整的分發函數 50
3.3.2 如何動態卸載 52
3.3.3 完整的代碼 53
本章的示例代碼 53
練習題 54
第4章 鍵盤的過濾 56
鍵盤是很重要的輸入設備!這是因為我們用鍵盤錄入信息、用鍵盤輸入密碼,甚至用鍵盤編程,也用鍵盤著書立說。對於黑客來說,使用龐大的計算機資源去破解那些堅不可摧的加密演算法,哪如偷偷地記下用戶用鍵盤輸入的密鑰更加簡單呢?本章專注於鍵盤的保護。
4.1 技術原理 57
4.1.1 預備知識 57
4.1.2 Windows中從擊鍵到內核 58
4.1.3 鍵盤硬體原理 60
4.2 鍵盤過濾的框架 61
4.2.1 找到所有的鍵盤設備 61
4.2.2 應用設備擴展 64
4.2.3 鍵盤過濾模塊的DriverEntry 65
4.2.4 鍵盤過濾模塊的動態卸載 66
4.3 鍵盤過濾的請求處理 68
4.3.1 通常的處理 68
4.3.2 PNP的處理 69
4.3.3 讀的處理 70
4.3.4 讀完成的處理 71
4.4 從請求中列印出按鍵信息 72
4.4.1 從緩沖區中獲得KEYBOARD_INPUT_DATA 72
4.4.2 從KEYBOARD_INPUT_DATA中得到鍵 73
4.4.3 從MakeCode到實際字元 74
4.5 Hook分發函數 75
4.5.1 獲得類驅動對象 76
4.5.2 修改類驅動的分發函數指針 77
4.5.3 類驅動之下的埠驅動 78
4.5.4 埠驅動和類驅動之間的協作機制 79
4.5.5 找到關鍵的回調函數的條件 80
4.5.6 定義常數和數據結構 80
4.5.7 打開兩種鍵盤埠驅動尋找設備 81
4.5.8 搜索在KbdClass類驅動中的地址 83
4.6 Hook鍵盤中斷反過濾 86
4.6.1 中斷:IRQ和INT 86
4.6.2 如何修改IDT 87
4.6.3 替換IDT中的跳轉地址 88
4.6.4 QQ的PS/2反過濾措施 90
4.7 利用IOAPIC重定位中斷處理函數 90
4.7.1 什麼是IOAPIC 90
4.7.2 如何訪問IOAPIC 91
4.7.3 編程修改IOAPIC重定位表 92
4.7.4 插入新的中斷處理 93
4.7.5 驅動入口和卸載的實現 95
4.8 直接用埠操作鍵盤 96
4.8.1 讀取鍵盤數據和命令埠 96
4.8.2 p2cUserFilter的最終實現 97
本章的示例代碼 98
練習題 99
第5章 磁碟的虛擬 100
CPU是計算機的核心,但是它不保存信息。如果它被竊,我們可以簡單地購買一個新的。但是如果裝滿了機密信息的硬碟被竊了,那可就不是買一個新的就能彌補得了的。本章介紹硬碟內核魔術:虛擬硬碟。虛擬硬碟可以不被盜竊者利用嗎?良好的設計可以做到這一點。
5.1 虛擬的磁碟 101
5.2 一個具體的例子 101
5.3 入口函數 102
5.3.1 入口函數的定義 102
5.3.2 Ramdisk驅動的入口函數 103
5.4 EvtDriverDeviceAdd函數 104
5.4.1 EvtDriverDeviceAdd的定義 104
5.4.2 局部變數的聲明 105
5.4.3 磁碟設備的創建 105
5.4.4 如何處理發往設備的請求 107
5.4.5 用戶配置的初始化 108
5.4.6 鏈接給應用程序 110
5.4.7 小結 111
5.5 FAT12/16磁碟卷初始化 111
5.5.1 磁碟卷結構簡介 111
5.5.2 Ramdisk對磁碟的初始化 113
5.6 驅動中的請求處理 119
5.6.1 請求的處理 119
5.6.2 讀/寫請求 120
5.6.3 DeviceIoControl請求 122
5.7 Ramdisk的編譯和安裝 124
5.7.1 編譯 124
5.7.2 安裝 125
5.7.3 對安裝的深入探究 125
練習題 126
第6章 磁碟過濾 127
很多網吧的老闆、公司的IT管理部門以及讀者自己都很厭惡硬碟總是被病毒和木馬搞得一團糟。一些簡單的還原軟體可以搞定這個問題:重啟之後,對硬碟的修改都奇跡般地消失了。這是怎麼實現的呢?本章告訴您答案。
6.1 磁碟過濾驅動的概念 128
6.1.1 設備過濾和類過濾 128
6.1.2 磁碟設備和磁碟卷設備過濾驅動 128
6.1.3 注冊表和磁碟卷設備過濾驅動 129
6.2 具有還原功能的磁碟卷過濾驅動 129
6.2.1 簡介 129
6.2.2 基本思想 130
6.3 驅動分析 130
6.3.1 DriverEntry函數 130
6.3.2 AddDevice函數 132
6.3.3 PnP請求的處理 136
6.3.4 Power請求的處理 140
6.3.5 DeviceIoControl請求的處理 140
6.3.6 bitmap的作用和分析 144
6.3.7 boot驅動完成回調函數和稀疏文件 150
6.3.8 讀/寫請求的處理 152
6.3.9 示例代碼 160
6.3.10 練習題 161
第7章 文件系統的過濾與監控 162
硬碟是硬碟,而文件系統是文件系統,可是有的人總是把它們當做一回事。其實硬碟很簡單,硬碟就是一個很簡單的保存信息的盒子;而復雜的是文件系統,它很精妙地把簡單的數據組織成復雜的文件。作為信息安全的專家,我們當然不能讓文件系統脫離我們的控制之外。
7.1 文件系統的設備對象 163
7.1.1 控制設備與卷設備 163
7.1.2 生成自己的一個控制設備 165
7.2 文件系統的分發函數 166
7.2.1 普通的分發函數 166
7.2.2 文件過濾的快速IO分發函數 167
7.2.3 快速IO分發函數的一個實現 169
7.2.4 快速IO分發函數逐個簡介 170
7.3 設備的綁定前期工作 172
7.3.1 動態地選擇綁定函數 172
7.3.2 注冊文件系統變動回調 173
7.3.3 文件系統變動回調的一個實現 175
7.3.4 文件系統識別器 176
7.4 文件系統控制設備的綁定 177
7.4.1 生成文件系統控制設備的過濾設備 177
7.4.2 綁定文件系統控制設備 178
7.4.3 利用文件系統控制請求 180
7.5 文件系統卷設備的綁定 183
7.5.1 從IRP中獲得VPB指針 183
7.5.2 設置完成函數並等待IRP完成 184
7.5.3 卷掛載IRP完成後的工作 187
7.5.4 完成函數的相應實現 190
7.5.5 綁定卷的實現 191
7.6 讀/寫操作的過濾 193
7.6.1 設置一個讀處理函數 193
7.6.2 設備對象的區分處理 194
7.6.3 解析讀請求中的文件信息 195
7.6.4 讀請求的完成 198
7.7 其他操作的過濾 202
7.7.1 文件對象的生存周期 202
7.7.2 文件的打開與關閉 203
7.7.3 文件的刪除 205
7.8 路徑過濾的實現 206
7.8.1 取得文件路徑的3種情況 206
7.8.2 打開成功後獲取路徑 207
7.8.3 在其他時刻獲得文件路徑 209
7.8.4 在打開請求完成之前獲得路徑名 209
7.8.5 把短名轉換為長名 211
7.9 把sfilter編譯成靜態庫 212
7.9.1 如何方便地使用sfilter 212
7.9.2 初始化回調、卸載回調和綁定回調 213
7.9.3 綁定與回調 215
7.9.4 插入請求回調 216
7.9.5 如何利用sfilter.lib 218
本章的示例代碼 221
練習題 221
第8章 文件系統透明加密 223
如何阻止企業的機密文件被主動泄密,但是又不用關閉網路、禁止U盤等手段重重束縛大家?很多跡象表明,文件系統透明加密是最優的選擇。既然從前一章讀者已經學會了控制文件系統,那麼現在,該是我們摩拳擦掌,用它來保護我們的機密信息的時候了。
8.1 文件透明加密的應用 224
8.1.1 防止企業信息泄密 224
8.1.2 文件透明加密防止企業信息泄密 224
8.1.3 文件透明加密軟體的例子 225
8.2 區分進程 226
8.2.1 機密進程與普通進程 226
8.2.2 找到進程名字的位置 227
8.2.3 得到當前進程的名字 228
8.3 內存映射與文件緩沖 229
8.3.1 記事本的內存映射文件 229
8.3.2 Windows的文件緩沖 230
8.3.3 文件緩沖:明文還是密文的選擇 232
8.3.4 清除文件緩沖 233
8.4 加密標識 236
8.4.1 保存在文件外、文件頭還是文件尾 236
8.4.2 隱藏文件頭的大小 237
8.4.3 隱藏文件頭的設置偏移 239
8.4.4 隱藏文件頭的讀/寫偏移 240
8.5 文件加密表 241
8.5.1 何時進行加密操作 241
8.5.2 文件控制塊與文件對象 242
8.5.3 文件加密表的數據結構與初始化 243
8.5.4 文件加密表的操作:查詢 244
8.5.5 文件加密表的操作:添加 245
8.5.6 文件加密表的操作:刪除 246
8.6 文件打開處理 248
8.6.1 直接發送IRP進行查詢與設置操作 248
8.6.2 直接發送IRP進行讀/寫操作 250
8.6.3 文件的非重入打開 252
8.6.4 文件的打開預處理 255
8.7 讀寫加密/解密 260
8.7.1 在讀取時進行解密 260
8.7.2 分配與釋放MDL 261
8.7.3 寫請求加密 262
8.8 crypt_file的組裝 265
8.8.1 crypt_file的初始化 265
8.8.2 crypt_file的IRP預處理 266
8.8.3 crypt_file的IRP後處理 269
本章的示例代碼 272
練習題 272
第9章 文件系統微過濾驅動 273
從來都不原地踏步的微軟,早就准備好了下一代的文件系統過濾的框架、文檔、代碼例子。雖然本書的前兩章的範例在Windows 7上都還可以正常運行,但是如果不學習一下最新的介面,讀者一定會覺得不自在。但是讀者可以放心,在前面學習的基礎上,了解新的介面是易如反掌的。
9.1 文件系統微過濾驅動簡介 274
9.1.1 文件系統微過濾驅動的由來 274
9.1.2 Minifilter的優點與不足 275
9.2 Minifilter的編程框架 275
9.2.1 微文件系統過濾的注冊 276
9.2.2 微過濾器的數據結構 277
9.2.3 卸載回調函數 280
9.2.4 預操作回調函數 281
9.2.5 後操作回調函數 284
9.2.6 其他回調函數 285
9.3 Minifilter如何與應用程序通信 288
9.3.1 建立通信埠的方法 288
9.3.2 在用戶態通過DLL使用通信埠的範例 290
9.4 Minifilter的安裝與載入 292
9.4.1 安裝Minifilter的INF文件 293
9.4.2 啟動安裝完成的Minifilter 294
本章的示例代碼 295
練習題 295
第10章 網路傳輸層過濾 296
筆者常常使用防火牆,它們看上去真的很神奇。如果懷疑自己的機器上有見不得人的進程打開了網路埠盜走機密信息,防火牆將提醒您,雖然防火牆並不知道它是否是一個木馬。這是怎麼做到的?本章為您揭曉謎底。
10.1 TDI概要 297
10.1.1 為何選擇TDI 297
10.1.2 從socket到Windows內核 297
10.1.3 TDI過濾的代碼例子 299
10.2 TDI的過濾框架 299
10.2.1 綁定TDI的設備 299
10.2.2 唯一的分發函數 300
10.2.3 過濾框架的實現 302
10.2.4 主要過濾的請求類型 304
10.3 生成請求:獲取地址 305
10.3.1 過濾生成請求 305
10.3.2 准備解析IP地址與埠 307
10.3.3 獲取生成的IP地址和埠 308
10.3.4 連接終端的生成與相關信息的保存 310
10.4 控制請求 311
10.4.1 TDI_ASSOCIATE_ADDRESS的過濾 311
10.4.2 TDI_CONNECT的過濾 313
10.4.3 其他的次功能號 314
10.4.4 設置事件的過濾 316
10.4.5 TDI_EVENT_CONNECT類型的設置事件的過濾 318
10.4.6 直接獲取發送函數的過濾 320
10.4.7 清理請求的過濾 322
10.5 本書例子tdifw.lib的應用 323
10.5.1 tdifw庫的回調介面 323
10.5.2 tdifw庫的使用例子 325
本章的示例代碼 326
練習題 327
第11章 NDIS協議驅動 328
網路的連接只是外表而已,實際上,最終它們變成了一個個在網線上往返的網路包。高明的黑客是不會去用Socket來生成連接的。把黑暗的信息隱藏在單個的數據包里,你還可以發現它們嗎?本章介紹的NDIS協議驅動,是Windows網路抓包工具的基礎。
11.1 乙太網包和網路驅動架構 329
11.1.1 乙太網包和協議驅動 329
11.1.2 NDIS網路驅動 330
11.2 協議驅動的DriverEntry 331
11.2.1 生成控制設備 331
11.2.2 注冊協議 333
11.3 協議與網卡的綁定 335
11.3.1 協議與網卡的綁定概念 335
11.3.2 綁定回調處理的實現 335
11.3.3 協議綁定網卡的API 338
11.3.4 解決綁定競爭問題 339
11.3.5 分配接收和發送的包池與緩沖池 340
11.3.6 OID請求的發送和請求完成回調 342
11.3.7 ndisprotCreateBinding的最終實現 345
11.4 綁定的解除 351
11.4.1 解除綁定使用的API 351
11.4.2 ndisprotShutdownBinding的實現 353
11.5 在用戶態操作協議驅動 356
11.5.1 協議的收包與發包 356
11.5.2 在用戶態編程打開設備 357
11.5.3 用DeviceIoControl發送控制請求 358
11.5.4 用WriteFile發送數據包 360
11.5.5 用ReadFile發送數據包 362
11.6 在內核態完成功能的實現 363
11.6.1 請求的分發與實現 363
11.6.2 等待設備綁定完成與指定設備名 364
11.6.3 指派設備的完成 365
11.6.4 處理讀請求 368
11.6.5 處理寫請求 370
11.7 協議驅動的接收回調 374
11.7.1 和接收包有關的回調函數 374
11.7.2 ReceiveHandler的實現 376
11.7.3 TransferDataCompleteHandler的實現 380
11.7.4 ReceivePacketHandler的實現 381
11.7.5 接收數據包的入隊 383
11.7.6 接收數據包的出隊和讀請求的完成 385
本章的示例代碼 388
練習題 389
第12章 NDIS小埠驅動 390
如果厭煩了漏洞百出的乙太網,還有什麼可以充當我的網路介面嗎?當然,一切能通信的設備,皆有替代乙太網的潛質。即使您不願意修改無數通過TCP介面編程的應用程序,我們依然可以用其他通信設備來虛擬網卡。本章介紹小埠驅動來虛擬網卡的技術。
12.1 小埠驅動的應用與概述 391
12.1.1 小埠驅動的應用 391
12.1.2 小埠驅動的實例 392
12.1.3 小埠驅動的運作與編程概述 393
12.2 小埠驅動的初始化 393
12.2.1 小埠驅動的DriverEntry 393
12.2.2 小埠驅動的適配器結構 396
12.2.3 配置信息的讀取 397
12.2.4 設置小埠適配器上下文 398
12.2.5 MPInitialize的實現 399
12.2.6 MPHalt的實現 402
12.3 打開ndisprot設備 403
12.3.1 I/O目標 403
12.3.2 給IO目標發送DeviceIoControl請求 404
12.3.3 打開ndisprot介面並完成配置設備 406
12.4 使用ndisprot發送包 409
12.4.1 小埠驅動的發包介面 409
12.4.2 發送控制塊(TCB) 409
12.4.3 遍歷包組並填寫TCB 412
12.4.4 寫請求的構建與發送 415
12.5 使用ndisprot接收包 417
12.5.1 提交數據包的內核API 417
12.5.2 從接收控制塊(RCB)提交包 418
12.5.3 對ndisprot讀請求的完成函數 420
12.5.4 讀請求的發送 422
12.5.5 用於讀包的WDF工作任務 424
12.5.6 ndisedge讀工作任務的生成與入列 426
12.6 其他的特徵回調函數的實現 428
12.6.1 包的歸還 428
12.6.2 OID查詢處理的直接完成 429
12.6.3 OID設置處理 432
本章的示例代碼 433
練習題 434
第13章 NDIS中間層驅動 435
當我們不滿足於抓包和發包,而試圖控制本機上流入和流出的所有數據包的時候,NDIS中間層驅動是最終的選擇。防火牆的功能在這里得到加強:我們不再滿足於看到連接、埠、對方IP地址,而是要看到每一個數據包的原始結構。本章介紹NDIS中間層驅動。
13.1 NDIS中間層驅動概述 436
13.1.1 Windows網路架構總結 436
13.1.2 NDIS中間層驅動簡介 437
13.1.3 NDIS中間層驅動的應用 438
13.1.4 NDIS包描述符結構深究 439
13.2 中間層驅動的入口與綁定 442
13.2.1 中間層驅動的入口函數 442
13.2.2 動態綁定NIC設備 443
13.2.3 小埠初始化(MpInitialize) 445
13.3 中間層驅動發送數據包 447
13.3.1 發送數據包原理 447
13.3.2 包描述符「重利用」 448
13.3.3 包描述符「重申請」 451
13.3.4 發送數據包的非同步完成 453
13.4 中間層驅動接收數據包 455
13.4.1 接收數據包概述 455
13.4.2 用PtReceive接收數據包 456
13.4.3 用PtReceivePacket接收 461
13.4.4 對包進行過濾 463
13.5 中間層驅動程序查詢和設置 466
13.5.1 查詢請求的處理 466
13.5.2 設置請求的處理 468
13.6 NDIS句柄 470
13.6.1 不可見的結構指針 470
13.6.2 常見的NDIS句柄 471
13.6.3 NDIS句柄誤用問題 473
13.6.4 一種解決方案 475
13.7 生成普通控制設備 476
13.7.1 在中間層驅動中添加普通設備 476
13.7.2 使用傳統方法來生成控制設備 478
本章的示例代碼 483
練習題 483
附錄A 如何使用本書的源碼光碟 485
⑦ 系統提示磁碟過濾失敗要怎麼處理
磁碟過濾驅動的問題。
直接換個驗證過的系統盤重裝系統就行了,這樣就可以全程自動,順利解決。用u盤或者硬碟這些都是可以的,且安裝速度非常快。
但關鍵是,要有兼容性好的,兼容ide,achi,Raid模式的安裝,並能自動永久激活的,能夠自動安裝機器硬體驅動序的系統盤,這就可以全程自動,順利重裝系統了。
⑧ 新版機器狗病毒特徵,請詳細講解
新版「機器狗」病毒詳細分析資料(全部資料的一少部分)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
報告名稱:新版「機器狗」病毒詳細分析資料(全部資料的一少部分)
報告類型:病毒原理逆向反匯編分析播報
編寫作者:Coderui
編寫日期:2008年01月15日
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
------------------------------------------------------------------------
對比「機器狗」一類新、老版本病毒的特徵:
1:新版本「機器狗」病毒採用VC++ 6.0編寫,老版本「機器狗」病毒採用匯編編寫。
2:新版本「機器狗」病毒採用UPX加殼,老版本「機器狗」病毒採用未知殼。
3:新版本「機器狗」病毒驅動文件很小(1,536 位元組),老版本「機器狗」病毒驅動文件很大(6,768 位元組)。
4:新版本「機器狗」病毒安裝驅動後沒有執行卸載刪除操作,老版本「機器狗」病毒安裝驅動工作完畢後會卸載刪除。
5:新版本「機器狗」病毒針對的是系統「conime.exe」、「ctfmon.exe」和「explorer.exe」程序文件,老版本「機器狗」病毒只針對系統「userinit.exe」文件。
6:新版本「機器狗」病毒沒有對注冊表進行操作,老版本「機器狗」病毒有對注冊表「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon」項進行操作(感覺該操作沒必要,因為重新啟動系統後,「還原保護程序」系統會將其還原掉)。
7:新版本「機器狗」病毒去到系統dllcache文件夾下調用真實系統文件運行,老版本「機器狗」病毒沒有到系統dllcache文件夾下調用真實系統文件運行。
8:新版本「機器狗」病毒採用的是控制台程序圖標,老版本「機器狗」病毒採用的是黑色機器小狗圖案的圖標。
大概列舉出來了上邊的幾點,經過仔細分析它們的工作原理和編碼風格後,可以推測出新版本「機器狗」病毒和老版本「機器狗」病毒決定不是出自一個人之手。
------------------------------------------------------------------------
錯誤糾正:
在此要糾正兩個技術性的問題,網路上流傳的一些關於分析「機器狗」病毒(新、老版本)的部分文章中,有兩處表達錯誤的地方。
第一處是:在那些分析文章中所提到「『機器狗』病毒會破壞『還原保護程序』系統,使其還原功能失效」。其實,從概念的理解上來講述,那些表達都是錯誤的,是讓人理解不清晰的,會嚴重誤導讀者。正確的表述應該是這樣的:「『機器狗』病毒並沒有破壞『還原保護程序』系統,也沒有使其還原功能失效。只是安裝了一個病毒自己的磁碟過濾驅動去操作真實的磁碟I/O埠,向真實的磁碟中執行修改覆蓋「C:\windows\explorer.exe」目標文件(文件名是病毒作者定義的,不固定、會變。但肯定的是,真實磁碟中是存在該文件的。並且病毒運行後,一般只會修改覆蓋一個真實磁碟中的系統文件,再不會去破壞其它真實磁碟中的文件)操作。雖然『機器狗』病毒運行後下載了很多其它惡意程序並安裝運行,但重新啟動計算機後,這些都會被『還原保護程序』系統還原掉的,只是唯一那個被修改覆蓋的真實磁碟文件沒有被還原。如果發現重新啟動計算機後,系統中依然有一大堆病毒在運行。其實,這些都是系統重新啟動後,由那個被修改覆蓋後的系統程序全部重新下載回來並安裝運行的惡意程序。也就是說,每次重新啟動計算機,都要重新下載安裝一次所有的其它惡意程序」。
第二處是:在那些分析文章中所提到「『機器狗』病毒會替換系統中的正常程序『conime.exe』、『ctfmon.exe』、『explorer.exe』或『userinit.exe』」或「『機器狗』病毒會感染系統中的正常程序『conime.exe』、『ctfmon.exe』、『explorer.exe』或『userinit.exe』」。其實,從概念的理解上來講述,那些表達都是錯誤的,是讓人理解不清晰的,會嚴重誤導讀者。正確的表述應該是這樣的:「『機器狗』病毒並不是替換了系統中的那些正常文件,而是針對那些正常文件在硬碟中所存放的真實物理地址進行以覆蓋的方式去寫入相應的惡意數據。大家可以找來正常的系統文件『explorer.exe』、被病毒修改覆蓋後的系統文件『explorer.exe』和病毒釋放出來的惡意程序『tmp281.tmp』。對比它們內部數據代碼後會發現,被病毒修改後的系統文件『explorer.exe』的前部分數據代碼和」病毒釋放出來的惡意程序『tmp281.tmp』文件的數據代碼是完全相同的,而後邊的數據代碼依然是正常系統文件『explorer.exe』後邊的數據代碼。」。
簡單的概念解釋:
替換:把原目標程序的數據代碼全部清除掉,用新程序的數據代碼來代替以前的整個程序。這樣,替換後的程序只有新程序的功能。
感染:在不破壞原目標程序數據代碼的前提下,向原目標程序的數據代碼中追加上新程序的數據代碼。這樣,感染後的程序既有原目標程序的功能,又有新程序的功能。
覆蓋:從原目標程序數據代碼的文件頭0地址處開始,向後依次執行覆蓋寫入新程序的數據代碼操作,我們這里只假設原目標程序文件遠遠大於新程序。這樣,覆蓋後的程序只執行新程序的功能,雖然原目標程序的數據代碼還存在一部分,但由於沒有被調用,所以不會執行。
------------------------------------------------------------------------
總結:
上邊所指的「還原保護程序」為利用磁碟過濾驅動技術編寫而成的系統還原保護程序,出名一點的軟體有「冰點還原精靈」和「影子系統」等。也就是說,就算用戶計算機安裝了上邊這樣的「還原保護程序」,只要是中了「機器狗」一類利用穿「還原保護程序」技術的病毒,就算您重新啟動計算機了,但被修改的那個文件「explorer.exe」也是依然不會被還原的,因為病毒的惡意代碼已經覆蓋進了這個真實的磁碟文件中。
目前的「機器狗」一類利用穿「還原保護程序」技術的病毒有一個致命的軟肋,那就是他們所覆蓋的真實系統文件在重新啟動計算機後一定要自啟動運行,不然就失去病毒存在的意義了。現今的「機器狗」病毒都只是能夠穿透磁碟保護的,並穿透不了注冊表(無法在注冊表中保存添加或修改後的數據信息),這個就是它最大的缺陷。其實,注冊表數據信息也是以文件的形式保存在磁碟中的,下一代「機器狗」病毒可能會實現穿透注冊表的功能,等那個時候,可能就很難防範了。這還是不算什麼的,下下一代的「機器狗」病毒可能會利用自己的磁碟過濾驅動去感染真實硬碟下的PE文件,相當的恐怖啊!!
一旦感染了該版本的「機器狗」病毒,它不僅僅可以穿透「還原保護程序」,真實系統也一樣會中毒。因為病毒修改覆蓋了真實的系統文件「C:\windows\explorer.exe」。所以每次重新啟動計算機後,被修改覆蓋的系統程序「C:\windows\explorer.exe」它都會在被感染計算機的後台連接網路下載駭客事先定義好的下載列表中的全部惡意程序並自動調用運行。那麼如果中該病毒的用戶比較多,幾萬台計算機同時啟動,駭客的下載伺服器會掛掉嗎?呵呵~!!
------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
問提:1、這個最新的機器狗變種,是否與你12月19日發的病毒播報中的機器狗變種是同一個病毒?
回答:不是同一個病毒,只是工作原理十分的相似而已。經過仔細分析它們的工作原理和編碼風格後,可以推測出新版本「機器狗」病毒和老版本「機器狗」病毒決定不是出自一個人之手。
問提:2、這個最新的機器狗變種是否功能更強大?強大在那兒?與以往機器狗病毒的不同之處在哪?
回答:應該是相對的強大了些。對比「機器狗」一類新、老版本病毒的部分特徵如下:
(1):新版本「機器狗」病毒採用VC++ 6.0編寫,老版本「機器狗」病毒採用匯編編寫。
(2):新版本「機器狗」病毒採用UPX加殼,老版本「機器狗」病毒採用未知殼。
(3):新版本「機器狗」病毒驅動文件很小(1,536 位元組),老版本「機器狗」病毒驅動文件很大(6,768 位元組)。
(4):新版本「機器狗」病毒安裝驅動後沒有執行卸載刪除操作,老版本「機器狗」病毒安裝驅動工作完畢後會卸載刪除。
(5):新版本「機器狗」病毒針對的是系統「conime.exe」、「ctfmon.exe」和「explorer.exe」程序文件,老版本「機器狗」病毒只針對系統「userinit.exe」文件。
(6):新版本「機器狗」病毒沒有對注冊表進行操作,老版本「機器狗」病毒有對注冊表「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon」項進行操作(感覺該操作沒必要,因為重新啟動系統後,「還原保護程序」系統會將其還原掉)。
(7):新版本「機器狗」病毒去到系統dllcache文件夾下調用真實系統文件運行,老版本「機器狗」病毒沒有到系統dllcache文件夾下調用真實系統文件運行。
(8):新版本「機器狗」病毒採用的是控制台程序圖標,老版本「機器狗」病毒採用的是黑色機器小狗圖案的圖標。
問提:3、機器狗病毒對網吧的影響很大,對個人用戶的影響有多少?
回答:個人用戶的影響與網吧的影響是同樣大的。因為不管計算機系統是否安裝「還原保護系統」程序,都會同樣下載非常多的(目前是下載27個惡意程序)網路游戲盜號木馬等惡意程序進行安裝運行,從而給被感染計算機用戶帶去一定的損失。如果「用戶計算機硬體配置比較低」或者「存在所下載的多個惡意程序中出現相互不兼容現象」的話,會導致用戶計算機系統崩潰掉無法啟動運行。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
手動殺毒方法:
1:結束掉被病毒修改覆蓋後的「C:\windows\explorer.exe」程序進程,刪除該程序文件。
2:也許系統會自動還原回來一個正常的「explorer.exe」桌面程序,如果沒有還原的話,我們可以手動把「C:\windows\system32\dllcache\」下的「explorer.exe」文件拷貝到「C:\windows\」下。
3:手動卸載掉病毒惡意驅動程序「phy.sys」文件。可以在注冊表中找到病毒惡意驅動程序「phy.sys」的啟動關聯位置然後刪除,接著再刪除掉「C:\windows\system32\DRIVERS\phy.sys」文件。 我實際試過N次這種方法,針對該病毒決定好使。
4:重新啟動計算機後,一切就都會變為正常了。但是該新版的「機器狗」病毒會下載27個(不固定)惡意程序到被感染計算機中安裝運行,這些病毒可以安裝江民公司的KV2008去查殺,效果很不錯。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>