複製鏈接
請複製以下鏈接發送給好友

rundll32

鎖定
Rundll32.exe是什麼?顧名思義,"執行32位的DLL文件"。它的作用是執行DLL文件中的內部函數,這樣在進程當中,只會有Rundll32.exe,而不會有DLL後門的進程,這樣,就實現了進程上的隱藏。介紹一下Rundll32.exe這個文件,功能就是以命令行的方式調用動態鏈接程序庫。系統中還有一個Rundll64.exe文件,他的意思是"執行64位的DLL文件", 其命令行下的使用方法為:Rundll32.exe DLLname,Functionname Arguments,DLLname為需要執行的DLL文件名;Functionname為前邊需要執行的DLL文件的具體引出函數;Arguments為引出函數的具體參數。
中文名
rundll32
外文名
rundll32
出品者
: Microsoft Corp.
進程名稱
: Microsoft Rundll32
系統進程
: 是

rundll32進程信息

進程文件: rundll32 或者 rundll32.exe
正常位置:C:\windows\system32
描述:test for netguide..----Caiger2008
屬於:Microsoft Windows Operating System
使用網絡:否
硬件相關:否
常見錯誤: 未知N/S
內存使用: 未知N/S
Adware:否
木馬:否
動態鏈接庫函數啓動器——Rundll32
經常聽到有些朋友説:系統的註冊表啓動項目有rundll32.exe,系統進程也有rundll32.exe,是不是病毒呀?其實,這是對 rundll32.exe接口不瞭解,它的原理非常簡單,瞭解並掌握其原理對於我們平時的應用非常有用,如果能理解了原理,我們就能活學活用,自己挖掘 DLL參數應用技巧。
與Rundll64.exe的區別
所謂 Rundll64.exe,可以把它分成兩部分,Run(運行)和DLL64(64位動態數據庫),所以,此程序的功能是運行那些不能作為程序單獨運行的64位DLL文件。而 Rundll32.exe則用來運行32位DLL文件。Windows 2000/XP都是NT內核系統,其代碼都是純32位的,所以在這兩個系統中,就沒有rundll64.exe這個程序。
相反, Windows 98代碼夾雜着64位和32位,所以同時具有Rundll32.exe和Rundll64.exe兩個程序。這就是為什麼Windows 98的System64文件夾為主系統文件夾,而到了Windows 2000/XP時就變成System32為主系統文件夾(這時的System64文件夾是為兼容64位代碼設立的)。

rundll32應用

rundll32的正常位置:c:\windows\system32
如果不是這個位置,則肯定是病毒
Rundll32.exe是什麼?顧名思義,“執行32位或者64位的DLL文件”。它的作用是執行DLL文件中的內部函數,這樣在進程當中,只會有 Rundll32.exe,而不會有DLL後門的進程,這樣,就實現了進程上的隱藏。如果看到系統中有多個Rundll32.exe,不必驚慌,這證明用 Rundll32.exe啓動了多少個的DLL文件。當然,這些Rundll32.exe執行的DLL文件是什麼,我們都可以從系統自動加載的地方找到。
對於Rundll32.exe這個文件,意思上邊已經説過,功能就是以命令行的方式調用動態鏈接程序庫。系統中還有一個 Rundll64.exe文件,他的意思是“執行64位的DLL文件”,這裏要注意一下。在來看看Rundll32.exe使用的函數原型
Void CALLBACK FunctionName
HWND hwnd,
HINSTANCE hinst,
LPTSTR lpCmdLine,
Int nCmdShow
其命令行下的使用方法為:Rundll32.exe DLLname,Functionname [Arguments]
DLLname為需要執行的DLL文件名;Functionname為前邊需要執行的DLL文件的具體引出函數;[Arguments]為引出函數的具體參數。

rundll32工作方式

Rundll 執行以下步驟:
1. 它分析命令行。
2. 它通過 LoadLibrary( ) 加載指定的 DLL。
3. 它通過 GetProcAddress( ) 獲取 <entrypoint> 函數的地址。
4. 它調用 <entrypoint> 函數,並傳遞作為 <optional arguments> 的命令行尾。
5. 當 <entrypoint> 函數返回時,Rundll.exe 將卸載 DLL 並退出。

rundll32作用

常用Windows93的朋友一定對Rundll32.exe和Rundll64.exe這兩個檔案不會陌生吧,不過,由於這兩個程式的功能原先只限於在微軟內部使用,因而真正知道如何使用它們的朋友想必不多。那麼好,如果你還不清楚的話,那麼就讓我來告訴你吧。
首先,請你做個小實驗(請事先保存好你正在執行的程式的結果,否則...):點擊“開始-程式-Ms-Dos方式”,進入Dos視窗,然後鍵入 rundll32.exe user.exe,restartwindows,再按下回車鍵,這時你將看到,機器被重啓了!怎麼樣,是不是很有趣?
當然,Rundll的功能絕不僅僅是重啓你的機器。其實,Rundll者,顧名思義,執行Dll也,它的功能就是以命令列的方式呼叫Windows的動態鏈結庫,Rundll32.exe與Rundll64.exe的區別就在於前者是呼叫32位的鏈結庫,而後者是運用於64位的鏈結庫,它們的命令格式是:
RUNDLL64.EXE ,,
這裏要注意三點:1.Dll檔案名中不能含有空格,比如該檔案位於c:\ ProgramFiles\目錄,你要把這個路徑改成c:\Progra~1\;2.Dll檔案名與Dll入口點間的逗號不能少,否則程式將出錯並且不會給出任何資訊!3.這是最重要的一點:Rundll64不能用來呼叫含返回值參數的Dll,例如Win32API中的GetUserName( ), GetTextFace( )等。在Visual Basic中,提供了一條執行外部程式的指令Shell,格式為:

rundll32DLL參數

rundll32調用

相信大家在論壇上很常看見那些高手給出的一些參數來簡化操作,如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文件的參數了。

rundll32常用參數

命令: rundll32.exe shell32.dll,Control_RunDLL
功能: 顯示控制面板
命令: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1
功能: 顯示“控制面板→輔助選項→鍵盤”
命令: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
功能: 執行“控制面板→添加新硬件
命令: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
功能: 執行“控制面板→添加新打印機”
命令:rundll32.exe DISKCOPY.DLL,DiskCopyRunDll
功能:啓動軟盤複製窗口

rundll32Shell

如果能配合Rundll32.exe用好Shell指令,會使您的VB程式擁有用其他方法難以甚至無法實現的效果:仍以重啓為例,傳統的方法需要你在VB工程中先建立一個模組,然後寫入WinAPI的聲明,最後才能在程式中呼叫。而此刻只需一句:
命令列: rundll32.exe shell32.dll,Control_RunDLL 功能: 顯示控制面板
更簡便的方法: Shell "shutdown -s -t 0"

rundll32相關病毒

rundll32病毒介紹

無論是Rundll32.exe或Rundll64.exe,獨立運行都是毫無作用的,要在程序後面指定加載DLL文件。在Windows的任務管理器中,我們只能看到rundll32.exe進程,而其實質是調用的DLL。我們可以利用進程管理器等軟件來查看它具體運行了哪些DLL文件。
有些木馬是利用Rundll32.exe加載DLL形式運行的,但大多數情況下Rundll32.exe 都是加載系統的DLL文件,不用太擔心。另外要提起的是,有些病毒木馬利用名字與系統常見進程相似或相同特點,瞞騙用户。所以,要確定所運行的 Rundll32.exe是在%systemroot%system32目錄下的,注意文件名稱也沒有變化。
一般情況 出現該文件或者相類似的文件時,大都是因為病毒原因,建議下載殺毒軟件查殺一下電腦安全:
rundll32一般不是病毒,它是系統必須的組件之一,不可以刪除,強烈建議你打開殺毒軟件的監控,以便及時發現病毒
rundl132.exe才是病毒,是阿拉伯數字1而不是字母l。
直接在C:\WINDOWS\system32 下刪除
並在註冊表啓動項裏去除rundl132.exe
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\
===========
C:\\WINDOWS\\uninstall 這個目錄下的是威金變種了。。
用專殺清除!手動難以清除其他被感染的可執行文件(EXE等)
建議打開任務管理器,檢查RUNDLL32.exe進程所屬的用户名,如果是屬於系統,那中毒的機率就很小,如果顯示的是當前用户,那情況就不妙了。

rundll32解決方案

1.最新版殺毒軟件都可以查殺
2.一些修復工具,比如騰訊電腦管家急救箱......(測試過,可以查殺該木馬病毒,並修復rundll32.exe文件)
可在任務管理器中先結束該進程後,利用殺毒軟件徹底查殺,或進而轉為安全模式查殺。
rundll32手工查殺方法
(1) 在WINDOWS目錄中查找run32.exe文件,如果發現則證明病毒存在,則將同目錄下的rundll32.exe文件刪除,將run32.exe文件改名為:rundll32.exe。
(2) 在WINDOWS目錄中查找regedit.exe.sys文件,如果找到則證明病毒存在,將同目錄下的regedit.exe文件刪除,將regedit.exe.sys文件改名為regedit.exe。
如果無法刪除這些文件,可以用啓動盤進入DOS模式下,將這些病毒文件刪除。然後,進入註冊表編輯器,查看註冊表的HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Run項,看其中是否有上面提到的文件,如果有,則將這些鍵值刪除即可清除病毒註冊的鍵值;查看註冊表的HKEY_CLASSES_ROOT\Exefile\shell\open\command的鍵值,正確的“默認”項的內容為:“"%1"%*”,如果不是,則修改;查看註冊表的HKEY_CLASSES_ROOT\Txtfile\shell\open\command的鍵值,正確的“默認”項的內容為:“%SystemRoot%\system32\NOTEPAD.EXE %1”,如果不是,則修改。此時,病毒被清除。