五颜六色论坛 -> 电脑学校 -> Linux操作系统下手动分析病毒样本 登录 -> 注册 -> 回复主题 -> 发表主题

a71705 2008-07-28 09:53

原理:利用md5值的不同进行文件的对比。 fba3aId[  
C]cw@:o%  
操作背景: +UtK2<^:o  
?i"FdpW  
1.XP安装光盘; !8].Z"5J  
2.病毒样本; `}l%Am  
3.U盘; ){~.jP=-#  
4.Ubuntu 7.10 LiveCD ?0X.Ith^.  
5.所需的几个对比md5和转化二进制文件格式的程序 0XNb@ogo  
操作过程: !T)>q%@ai  
~r3g~MCHS  
1. 全盘格式化,同时安装Windows(也可采用ghost回去,但是一定注意其他磁盘可能的病毒感染) I6_+3}Hm{  
w.\:I[  
2. 在刚装好的Windows下,导出注册表。将导出文件放入C盘根目录下。这里我命名为1.reg crQuoOl7  
3 a`-_<  
3. 进入Ubuntu系统,注意,进入前f2选择简体中文模式 |rQ;|+.  
YuZnuI@m9  
4. 挂载C盘: v)06`G  
ge|}'QKow  
mkdir /mnt/hdd1 (生产系统C盘挂载点) ;A_QI>>  
LCt m@oN  
mount -t ntfs -o iocharset=cp936 /dev/hdd1 /mnt/hdd1 (将系统C盘挂载到/mnt/hdd1下,注意文件格式和设备号视具体情况而定) {<lV=0]  
ej~ /sO  
5. 挂载U盘: _ i8}ld-  
q!n|Ju<  
mkdir /mnt/usb (生成U盘挂载点) B^ h!F8DC  
fg2}~ 02n  
mount -t vfat /dev/sda1 /mnt/usb (将U盘挂载到/mnt/usb下,同样注意文件格式和设备号) oKUJB.PF  
t0Uax-E(  
6. 将导出的注册表信息放入U盘: <M=K!k  
_<8n]0lX3  
假设U盘上已经有test目录,同时,在test目录下有parse.sh,parseWinReg,ShowList 三个程序 "-9YvB#  
iMS S8J  
cp /mnt/hdd1/1.reg /mnt/usb/test (将导出注册表拷贝至/mnt/usb/test目录下) ?w.Yx$Z"  
B}vI<?c  
cd /mnt/usb/test (进入U盘test 目录) ,,?t >|3  
$ysC)5q.  
./parseWinReg 1.reg origreg (将导出注册表进行格式转换,生成origreg) !e?\ > '  
 h /on  
7. 计算C盘所有文件md5值: | .PLfc;  
+f+\uObi:  
rm /mnt/hdd1/pagefile.sys (这个文件太大影响计算速度,删除) SkY|.w.   
jYU#] |k~  
/mnt/usb/test/parse.sh /mnt/hdd1/ > /mnt/usb/origfile (计算磁盘文件md5值,并将结果导出至U盘test目录下origfile) yd2ouCUV  
T^"d%au  
8. 重新进入Windows,同时,激发病毒文件 2D "mq~ V  
N-suBRnW  
注意:先将病毒文件放入磁盘,拔掉U盘,拔掉网线,再激发! ) yjHABGJ  
e%8K A#DX  
9. 重复3,4,5,6,7步骤 L|v1=qNH4  
x ha!.&DO  
mkdir /mnt/hdd1 !x>P]j7A}Y  
J6jrtLh  
mount -t ntfs -o iocharset=cp936 /dev/hdd1 /mnt/hdd1 gX);/;9mm+  
@n<WM@|l  
mkdir /mnt/usb C0'Tua'  
d"$ \fL  
mount -t vfat /dev/sda1 /mnt/usb VaH#~!  
QGfU:  
cp /mnt/hdd1/2.reg /mnt/usb/test (这里假设导出的注册表是2.reg) k0%4&pU  
PZQ}G*p3  
cd /mnt/usb/test Kx ';mgG#$  
a Z ^SK|E  
./parseWinReg 2.reg newreg Yk[yG;W  
}*;Hhbox  
rm /mnt/hdd1/pagefile.sys G.1pg]P!  
(1*?2u*j  
/mnt/usb/test/parse.sh /mnt/hdd1/ > /mnt/usb/newfile P$\( Bd\76  
W +C\/  
10. 至此,我们得到了原始的系统信息:origreg, origfile,中病毒之后的信息:newreg, newfile zS]Yd9;X1  
(',G Ako  
11. 比较文件不同之处:diff -Nur origfile newfile > filediff HX?5O$<<N  
Gb\}e}TB[  
12. 比较注册表不同之处:diff -Nur origreg newreg > regdiff pJ1GB  
ybcQ , e  
13. 分析filediff 和 regdiff,得到结论 4, 8gf 2  
_"Y;E  
分析小技巧: UPA))Iv>  
j'I$F1>Te  
一般情况下前面出现+的就是病毒释放的,-就是有过改动的(感染的),如果是md5值是成双成对出现(一个+和一个-),那那一行一般不是,如果前面没有任何标记,那说明也不是。咱们把没用的删除,只留下有单个+或者单个-的,最好看文件路径,即得到了病毒的产生文件或者是感染文件。

zhangandt 2008-07-28 14:47


查看完整版本: [-- Linux操作系统下手动分析病毒样本 --] [-- top --]


[ 五颜六色论坛 ]

Powered by PHPWind 5.0.1 © 2005 苏ICP备05001866号 5y6s.net
Time 0.757454 second(s),query:4 Gzip enabled