rundll32.exe是什麽
經常聽到有些朋友說:呀!系統的註冊表啟動項目有rundll32.exe,系統進程也有rundll32.exe,是不是病毒呀?其實,這是對 rundll32.exe接口不了解,它的原理非常簡單,了解並掌握其原理對於我們平時的應用非常有用,如果能理解了原理,我們就能活學活用,自己挖掘 DLL參數應用技巧。
Rundll32.exe和Rundll.exe的區別
所謂Rundll.exe,可以把它分成兩部分,Run(運行)和DLL(動態鏈接庫),所以,此程序的功能是運行那些不能作為程序單獨運行的 DLL文件。而Rundll32.exe則用來運行32位DLL文件。Windows 2000/XP都是NT內核系統,其代碼都是純32位的,所以在這兩個系統中,就沒有rundll.exe這個程序。
相反,Windows 98代碼夾雜著16位和32位,所以同時具有Rundll32.exe和Rundll.exe兩個程序。這就是為什麽Windows 98的System文件夾為主系統文件夾,而到了Windows 2000/XP時就變成System32為主系統文件夾(這時的System文件夾是為兼容16位代碼設立的)。
Rundll.exe是病毒?
無論是Rundll32.exe或Rundll.exe,獨立運行都是毫無作用的,要在程序後面指定加載DLL文件。在Windows的任務管理器中,我們只能看到rundll32.exe進程,而其實質是調用的DLL。我們可以利用進程管理器等軟件來查看它具體運行了哪些DLL文件。
有些木馬是利用Rundll32.exe加載DLL形式運行的,但大多數情況下Rundll32.exe都是加載系統的DLL文件,不用太擔心。另外要提起的是,有些病毒木馬利用名字與系統常見進程相似或相同特點,瞞騙用戶。所以,要確定所運行的Rundll32.exe是在% systemroot%system32目錄下的,註意文件名稱也沒有變化。
相信大家在論壇上很常看見那些高手給出的壹些參數來簡化操作,如rundll32.exe shell32.dll,Control_RunDLL,取代了冗長的“開始→設置→控制面板”,作為菜鳥的我們心裏壹定癢癢的。他們是怎麽知道答案的?我們如何自己找到答案?分析上面命令可以知道,其實就是運行Rundll32.exe程序,指定它加載shell32.dll文件,而逗號後面的則是這個 DLL的參數。了解了其原理,下面就可以自己挖掘出很多平時罕為人知的參數了。
第壹步:運行eXeScope軟件,打開壹個某個DLL文件,例如shell32.dll。
第二步:選擇“導出→SHELL32.DLL”,在右邊窗口就可以看到此DLL文件的參數了。
第三步:這些參數的作用壹般可以從字面上得知,所以不用專業知識。要註意的是,參數是區分大小寫的,在運行時壹定要正確輸入,否則會出錯。現在隨便找壹個參數,例如RestartDialog,從字面上理解應該是重啟對話框。組合成壹個命令,就是Rundll32.exe shell32.dll,RestartDialog ,運行後可以看見平時熟悉的Windows重啟對話框。
現在,我們已經學會了利用反編譯軟件來獲取DLL文件中的參數,所以以後看到別人的壹個命令,可以從調用的DLL文件中獲取更多的命令。自己摸索,妳就能了解更多調用DLL文件的參數了。