史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 應用軟體使用技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2005-05-12, 03:24 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 安全小知識:Rundll.exe是病毒嗎?DLL的連結?

安全小知識:Rundll.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。我們可以利用工作管理器等軟體(本刊2004年21期有介紹)來檢視它具體執行了哪些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文件的參數了(見圖)。
http://xqplus.com/upimg/20050512/XZvS1UfBKd2EpnDDhxM5.20050425-6.jpg

第三步:這些參數的作用一般可以從字面上得知,所以不用專業知識。要注意的是,參數是區分大小寫的,在執行時一定要正確輸入,否則會出現錯誤。現在隨便找一個參數,例如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
功能:啟動軟碟複製視窗



Q:
那怎麼能又怎看到一個exe文件上連線了哪些動態庫文件啊?

--------------------------------------------------------------------------------

有時為了拷貝一個軟體裡的某個工具,但只拷出它的可執行文件可能還不行,有時還連線著許多的動態文件及相關文件.
我要怎麼能看到一個exe文件上連線了哪些動態庫文件啊?


A:

用EXESCOPE查引exe的資源,引入表能查到靜態連接的DLL,如果想全的話,將程序執行,用PROCESS EXPLORER檢視工作內的DLL,不過要有一些經驗,因為有許多是系統DLL或是共享DLL。

前一直是用這個軟體"Wise Installation System 9.02",它是一個安裝製作軟體.有一項功能就是監視程序執行,並記錄打包所需文件我想它對發帖主可能是比較適合的...
如果想做成綠色版,一個是在軟體裡手工拷貝,或是做成安裝文件後,安裝到另一個目錄裡(系統目錄的文件還是要拷貝的).還有..Dll Show...是個標準查看
http://www.gregorybraun.com/DLLShow.html
漢化新世紀好像有漢化版本 0.53的(最新應該是0.54)
如你有安裝 MS vc6 的tool - depends...這也不錯!
Dependency Walker
http://www.dependencywalker.com/
比較綠色而且小巧免費,很實用的小工具,有Dependency Walker
或是...用VC附帶的工具就可以 dumpbin /imports test.exe
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-01-27, 11:46 PM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

解決「CPU使用100%」,「RUNDLL32.EXE」竟佔「70%」,電腦極近當機現象。

IE的工作列被幾個流氓軟體搞得一塌糊塗,一氣之下卸載了以後,發現電腦使一會兒就變的極慢無比,就像是當機了。

開啟「工作管理器」視窗,發現「CPU使用100%」;看「工作」,發現其中有一項「RUNDLL32.EXE」竟佔了「70%」。
試圖將其「結束工作」,卻怎麼也結束不了。

懷疑是中毒了,於是用殺毒軟體開始殺毒。但是,無論是在WINDOWS下還是在DOS下都殺不到任何病毒。

用字串串「RUNDLL32.EXE」在網上搜了一下,發現竟然遇到此問題的大有人在,其提供的最有效辦法,大概就算是:F&S了。
解釋一下:「F&S」就是:「Format AND Setup」。

不過,也有人提出通過關閉「RUNDLL32.EXE」的啟動項目解決,這個方法也許不錯。

於是,→開始→執行→按鍵輸入「msconfig」→確定→開啟「系統組態實用程序」視窗→啟動;
檢視「RUNDLL32.EXE」的啟動項目,發現有好幾條,正不知道該關閉拿條時,看到有一條竟然指向已被卸載的流氓軟體「3721」的目錄,沒商量,就是他了。

開啟檔案總管,發現「3721」雖然已卸載,但還殘存有目錄,找到「C:\Program Files\3721」目錄,將其移除。

然後,為了斬草除根,→開始→執行→按鍵輸入「regedit」→確定→開啟「註冊表編輯器」視窗;搜尋並移除所有包含「3721」的項目。

完成後,重啟電腦。

試了試,......執行正常,沒問題了。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-02-04, 10:25 PM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

區別Rundll32.exe和Rundll.exe

Rundll32.exe和Rundll.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。

  有些木馬是利用Rundll32.exe載入DLL形式執行的,但大多數情況下Rundll32.exe都是載入系統的DLL文件,不用太擔心。另外要提起的是,有些病毒木馬利用名字與系統一般工作相似或相同特點,瞞騙用戶。所以,要確定所執行的Rundll32.exe是在%systemroot%\system32目錄下的,注意檔案名稱也沒有變化。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:17 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1