Linux操作系统下手动分析病毒样本

  原理:利用md5值的不同进行文件的对比。

  操作背景:

  XP安装光盘;

  病毒样本;

  U盘;

  Ubuntu 7.10 LiveCD

  所需的几个对比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值是成双成对出现(一个+和一个-),那那一行一般不是,如果前面没有任何标记,那说明也不是。咱们把没用的删除,只留下有单个+或者单个-的,最好看文件路径,即得到了病毒的产生文件或者是感染文件。

时间: 2024-10-16 05:28:08

Linux操作系统下手动分析病毒样本的相关文章

《Java程序员面试秘笈》—— 面试题3 Linux操作系统下如何安装Java SE开发环境

面试题3 Linux操作系统下如何安装Java SE开发环境 考点:由于大部分的计算机用户都使用Windows作为操作系统,而Java语言是具有跨平台优势的,不同企业有不同的开发环境,本试题考察求职者是否有在Linux下开发Java的经验.Linux环境下的Java安装是一个基础问题. 出现频率: [面试题解析]该问题有两个关键点,一个是Linux版本Java SDK的文件类型,另外一个是Linux环境变量的配置. 参考答案: Oracle发布的Linux操作系统Java包有JDK和JRE两种版

Linux操作系统下C++编程初探

Linux下C++编程和在Windows下的没有什么两样,它同样需要编译.链接.调度.运行等步骤,只不过执行这些步骤在两种操作系统下所做的不是同样的事情. 在Windows下有TC, BC, VC等编译器,它们极大地方便了程序的编辑编译等,在Windows下你只需要看明白菜单就可以了.而在Linux下是Gcc, G++, Gdb等工具,刚开始时你可能甚至不知道如何下手去调试程序,你也可能甚至不知道程序在哪里编辑.不过这些都不是问题,慢慢来我们都能行! 下面我们以一个最简单也是最经典的Hello

详解Linux 操作系统下安装rpm包的方法步骤_linux shell

第2代Linux操作系统在安装软件方面相当简单:第一步,搜索你要的软件,比如你要找一个游戏软件,它的名称叫myward,这个游戏软件的说明是:myown war game.Linux操作系统搜索这个软件包就只需要输入命令apt-cache searchmyward,或者输入软件名称的一部分apt-cache searchwar,或者你不知道软件名称. 下面有一张图可以清晰地表示linux软件应用的架构关系: 在Linux启动的时候.首先会启动内核(kernel),内核是一段计算机程序,这个程序直

如何配置Linux操作系统下的FTP服务器

为了实现Linux环境下的FTP服务器配置,绝大多数的Linux发行套装中都选用的是Washington University FTP(Wu-Ftpd),这是一个性能优秀的服务器软件,由于它具有众多强大功能和超大的吞吐量,Internet上的FTP服务器有60%以上采用了它. 安装与运行 以下我们以RedHat Linux为例. 1.安装 根据服务对象的不同,FTP服务可以分为两类:一类是系统FTP服务器,它只允许系统上的合法用户使用:另一类是匿名FTP服务器,它允许任何人登录到FTP服务器,和

在Linux操作系统下用软件实现RAID功能

数据安全性是人们在使用计算机中最重要的问题之一.通常情况下,人们会在服务器环境中采用硬盘镜像技术,以达到数据的双重备份.同样,在Linux环境下,我们也可以采用这种技术. 在Linux环境下,采用Raidtools工具,不仅可以将两个硬盘进行镜像,还可以制作软RAID0.RAID1.RAID5.说是软RAID,是因为通常情况下,RAID盘是通过专用的RAID卡进行的,而在Linux环境下,可以利用Raidtools软件实现RAID功能,所以称为软RAID.本文介绍根据不同的Linux版本,建立并

介绍Linux操作系统下修改系统时间的方法

我们一般使用"date -s"命令来修改系统时间.比如将系统时间设定成2007年8月19日的命令如下. #date -s 08/19/2007 将系统时间设定成下午11点20分0秒的命令如下. #date -s 11:20:00 注意,这里说的是系统时间,是linux由操作系统维护的. 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现.为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS.由于该同步

在Linux操作系统下设置NFS共享技巧

网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作. 在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试.因此,可以通过建立NFS,把Linux 服务器上的特定分区共享到待调试的嵌

linux操作系统下从其他服务器获取的xml字符串中文为乱码,在本地无法解析

问题描述 一个javaweb项目部署在一台服务器上,服务器采用的是linux操作系统,调用其他公司提供的webservice接口获取到一个xml的字符串,然后使用dom在本地解析,得到的字符串是乱码,请问高手们这个问题怎么解决.publicstaticList<Product>readProductDomXml(Stringstr)throwsException{List<Product>products=newArrayList<Product>();Document

Linux操作系统下媒体播放器的初步探讨

初试安装 Linux的发展可谓飞速,在短短的几年中,不仅奠定了坚实的网络基础,成为众多Server的强力支援,更发展到了桌面领域.作为一个网络操作系统,虽然在一时之间很难与Windows 抗衡,但是其发展势头丝毫不减,在国内更是呈现蓬勃景象. 图形化桌面的意义就在于能够利用丰富多彩的窗口,带给用户亲近的感觉,让人们不再感到陌生,人性化的设计会触发人们尝试Linux的热情,从而让更多的人了解Linux.Xwindows就是Linux中开放的窗口,无论其设计如何,毕竟这个"窗口"界面给人带