原理:利用md5值的不同進行文件的對比。
操作背景:
1. XP安裝光盤;
2. 病毒樣本;
3. U盤;
4. Ubuntu 7.10 LiveCD
5.所需的幾個對比md5和轉化二進制文件格式的程序
操作過程:
1. 全盤格式化,同時安裝Windows(也可采用ghost回去,但是一定注意其他磁盤可能的病毒感染)
2. 在剛裝好的Windows下,導出注冊表。將導出文件放入C盤根目錄下。這裡我命名為1.reg
3. 進入Ubuntu系統,注意,進入前f2選擇簡體中文模式
4. 掛載C盤:
mkdir /mnt/hdd1 (生產系統C盤掛載點)
mount -t ntfs -o iocharset=cp936 /dev/hdd1 /mnt/hdd1 (將系統C盤掛載到/mnt/hdd1下,注意文件格式和設備號視具體情況而定)
5. 掛載U盤:
mkdir /mnt/usb (生成U盤掛載點)
mount -t vfat /dev/sda1 /mnt/usb (將U盤掛載到/mnt/usb下,同樣注意文件格式和設備號)
6. 將導出的注冊表信息放入U盤:
假設U盤上已經有test目錄,同時,在test目錄下有parse.sh,parseWinReg,ShowList 三個程序
cp /mnt/hdd1/1.reg /mnt/usb/test (將導出注冊表拷貝至/mnt/usb/test目錄下)
cd /mnt/usb/test (進入U盤test 目錄)
。/parseWinReg 1.reg origreg (將導出注冊表進行格式轉換,生成origreg)
7. 計算C盤所有文件md5值:
rm /mnt/hdd1/pagefile.sys (這個文件太大影響計算速度,刪除)
/mnt/usb/test/parse.sh /mnt/hdd1/ > /mnt/usb/origfile (計算磁盤文件md5值,並將結果導出至U盤test目錄下origfile)
8. 重新進入Windows,同時,激發病毒文件
注意:先將病毒文件放入磁盤,拔掉U盤,拔掉網線,再激發!
9. 重復3,4,5,6,7步驟
mkdir /mnt/hdd1
mount -t ntfs -o iocharset=cp936 /dev/hdd1 /mnt/hdd1
mkdir /mnt/usb
mount -t vfat /dev/sda1 /mnt/usb
cp /mnt/hdd1/2.reg /mnt/usb/test (這裡假設導出的注冊表是2.reg)
cd /mnt/usb/test
。/parseWinReg 2.reg newreg
rm /mnt/hdd1/pagefile.sys
/mnt/usb/test/parse.sh /mnt/hdd1/ > /mnt/usb/newfile
10. 至此,我們得到了原始的系統信息:origreg, origfile,中病毒之後的信息:newreg, newfile
11. 比較文件不同之處:diff -Nur origfile newfile > filediff
12. 比較注冊表不同之處:diff -Nur origreg newreg > regdiff
13. 分析filediff 和 regdiff,得到結論
分析小技巧:一般情況下前面出現+的就是病毒釋放的,-就是有過改動的(感染的),如果是md5值是成雙成對出現(一個+和一個-),那那一行一般不是,如果前面沒有任何標記,那說明也不是。咱們把沒用的刪除,只留下有單個+或者單個-的,最好看文件路徑,即得到了病毒的產生文件或者是感染文件