經常有網友問,系統注冊表啟動項里看到rundll32.exe,任務管理器里也有這個進程,是不是中病毒了?其實吧,這說明你對rundll32.exe不太了解。它原理真不復雜,搞懂了平時用起來還挺方便,還能自己折騰DLL參數啥的。
先說下rundll32.exe和rundll.exe有啥區別。簡單來說,rundll就是run dll的組合,意思就是運行那些不能單獨運行的dll文件。而rundll32,顧名思義就是用來跑32位的dll文件的。
像Win2000、XP這些NT內核系統,代碼都是純32位的,所以系統里壓根就沒有rundll.exe這個程序。但Win98就不一樣了,它的代碼混合了16位和32位,所以里面同時存在rundll32和rundll兩個程序。
這也是為啥Win98的系統文件夾叫System,到了Win2000/XP就變成了System32,因為這個時候的System文件夾其實是為兼容16位程序準備的。
那問題來了,rundll.exe是病毒嗎?不管是rundll32還是rundll,它們本身都不能干啥事,必須得在后面加上具體的dll文件才能干活。所以在任務管理器里看到rundll32進程的時候,其實真正干活的是它調用的那個dll。
你可以用一些進程查看工具(比如我們雜志之前介紹過的),來查清楚它到底加載了哪些dll。有些木馬確實會偽裝成rundll32調用dll的形式運行,但大多數時候它調用的都是系統的dll,不用太慌。
另外提醒一句,有些病毒喜歡起個跟系統進程差不多的名字來忽悠人,所以一定要確認你看到的rundll32.exe是在C:WindowsSystem32目錄下,而且文件名沒被改過。
話說回來,那些高手是怎么找到合適的dll參數的?
先說下rundll32.exe和rundll.exe有啥區別。簡單來說,rundll就是run dll的組合,意思就是運行那些不能單獨運行的dll文件。而rundll32,顧名思義就是用來跑32位的dll文件的。
像Win2000、XP這些NT內核系統,代碼都是純32位的,所以系統里壓根就沒有rundll.exe這個程序。但Win98就不一樣了,它的代碼混合了16位和32位,所以里面同時存在rundll32和rundll兩個程序。
這也是為啥Win98的系統文件夾叫System,到了Win2000/XP就變成了System32,因為這個時候的System文件夾其實是為兼容16位程序準備的。
那問題來了,rundll.exe是病毒嗎?不管是rundll32還是rundll,它們本身都不能干啥事,必須得在后面加上具體的dll文件才能干活。所以在任務管理器里看到rundll32進程的時候,其實真正干活的是它調用的那個dll。
你可以用一些進程查看工具(比如我們雜志之前介紹過的),來查清楚它到底加載了哪些dll。有些木馬確實會偽裝成rundll32調用dll的形式運行,但大多數時候它調用的都是系統的dll,不用太慌。
另外提醒一句,有些病毒喜歡起個跟系統進程差不多的名字來忽悠人,所以一定要確認你看到的rundll32.exe是在C:WindowsSystem32目錄下,而且文件名沒被改過。
話說回來,那些高手是怎么找到合適的dll參數的?