shell验证工具“病毒shell”是指经过一系列数学运算,变更可执行程序文件或动态链接库文件的代码,缩小文件大小,或加密程序代码,使病毒文件成为will 确定是否附加了文件的最常用工具是PEiD。
PEID(PEidentifier )是一个著名的shell检测工具,是一个强大的工具,几乎可以检测所有shell,数量超过了470种PE文档的shell类型和签名。 使用界面如下。
PEiD可以显示文件的入口点、EP段、文件偏移地址、第一个字节、连接器版本和子系统等相关信息。 其中,用红色包围的地方是外壳检查结果,如图所示,结果没有外壳,所以直接显示程序中使用的编程语言是VB。
上图的结果显示,文件中存在添加shell的行为,需要进行脱壳处理才能继续分析工作。
脱壳工具软件的脱壳,顾名思义,就是在软件上安装外壳的逆操作,去除软件中存在的外壳。 对于病毒文件,脱壳的目的是对病毒文件进行下一步分析,了解其执行机制和恶意行为。
病毒脱壳工具常用于分析加壳文件。 常用的脱壳工具有upx脱壳工具、UPXsehll等。 可执行文件压缩器(upx )是一个高级可执行文件压缩器,它将压缩可执行文件的大小减小50%-70%,占用磁盘空间、web下载时间及其用UPX压缩的程序和库与压缩前一样没有功能损失,运行正常。 大多数受支持的格式没有运行时间或内存不利。 UPX支持多种可执行文件格式,包括Windows 95/98/ME/NT/2000/XP/CE程序和动态链接库、DOS程序、Linux可执行文件和核心
Upx通常在命令行中使用,使用界面如下:
命令行中需要脱壳的文件使用以下命令进行脱壳:
upx.exeo别名d当前名称
成功脱壳后,将在此病毒文件的同级目录下生成脱壳后的文件,继续分析脱壳后的文件可获得更多信息。
静态信息显示工具使用可以显示病毒文件的编译方法、编译日期、特殊字符串、导出函数的导入以及相关的dll依赖关系等的工具。 常用的工具有PEview、Dependency Walker、舒适的向日葵Pro等;
PEview是一个用于显示PE文件详细结构的工具,它使用以下界面:
使用PEview,您可以清楚地了解病毒文件的文件结构、dll文件和编译时间等信息。
Dependency Walker是一个免费实用程序,可以扫描任何32位或64位Windows模块(exe、dll、ocx、sys等),并为所有相关模块构建分层树。 对于找到的每个模块,将列出该模块导出的所有函数以及其他模块实际调用的函数。 另一个视图显示所需文件的最小集合以及每个文件的详细信息,包括文件的完整路径、基本地址、版本号、计算机类型和调试信息。 其使用界面如下。
对于病毒文件,可以使用Dependency Walker详细查看所有依赖的dll函数。 另外,单击每个dll函数可以清楚地了解所有导入导出器函数,并可以根据导入导出器函数分析病毒文件中可能存在的恶意行为。
舒适的向日葵Pro是交互式的、可编程的、可扩展的、多处理器的,它通过在Windows或LinuxwinceMacintosh平台上的主机上交叉分析程序。 操作人员可以通过与舒适向日葵的对话,指导用户更好地反汇编舒适向日葵。 舒适的向日葵并不能自动解决程序问题,但是按照用户的指示发现可疑的地方,用户的工作是告诉舒适的向日葵如何做。例如,人工指定编译器类型,定义变量名、结构定义、数组等这种交互能力在反汇编大软件时特别重要。 多处理器的特点是听起来舒服的向日葵支持常见处理器平台上的软件产品。 舒适向日葵支持的文件类型非常丰富,除了常见的PE格式外,还支持Windows、DOS、UNIX、Mac、Java和. NET等平台的文件格式。 Ida的使用界面如下。
style=”margin-left:0cm;”>ida有很多功能,可以使用字符串查看功能查看病毒文件特殊的字符串:
可以分别查看病毒文件的导入导出函数,分析其可能存在的恶意行为:
可以以函数调用结构图的形式查看病毒文件的函数调用关系,也可以单独查看每一个函数的汇编代码:
也可以配合Hex-Rays Decompiler插件,对程序的汇编代码进行初步的反汇编。
还有很多其他功能,比如查看病毒文件的十六进制编码、结构体和枚举字符等:
进程监测工具
当病毒文件运行的时候需要监测其相关操作,比如创建文件、删除文件、创建注册表值、删除注册表值等,这个时候需要用到进程监测工具Process Monitor、Process explorer。
Process Monitor一款系统进程监视软件,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。 有了Process Monitor,使用者就可以对系统中的任何文件和 注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常有用。其使用界面如下:
当监测到的无关信息较多时,可以使用过滤功能,过滤想要的进程或操作:
Process explorer让使用者能了解看不到的在后台执行的处理程序,能显示目前已经载入哪些模块,分别是正在被哪些程序使用着,还可显示这些程序所调用的 DLL进程,以及他们所打开的句柄。Process Explorer最大的特色就
是可以终止任何进程,甚至包括系统的关键进程。其运行界面如下:
注册列表监测工具
绝大多数病毒文件运行的时候都会造成注册列表值的变化,所以需要用到注册列表快照工具,最常用的工具是Regshot。
RegShot 是一种注册表比较工具,它通过两次抓取注册表而快速地比较出答案。它还可以将注册表以纯文本方式记录下来,便于浏览;还可以监察 Win.ini,System.ini 中的键值;还可以监察 Windows 目录和 System 目录中文件的变化,为手工卸载某些软件创造条件。其运行界面如下:
使用的时候在病毒文件之前做一次注册列表快照A,病毒文件运行之后再做一次注册列表快照B,运行之后的结果可以保存为html的形式,快照变化结
果如下:
查看导出的报告就可以看出病毒文件运行所改变的注册列表的值,为清除恶意文件提供依据。
网络连接监测工具
有的病毒文件运行时会存在连接恶意网路地址的行为,这个时候需要用到网络连接监测工具来监测网络连接情况,常用的工具有apateDNS、Wireshark.
apateDNS可以用来查看病毒文件运行时的恶意DNS连接情况,其使用界面如下所示:
将回传地址设置成本机ip,当恶意文件运行时可以监测到DNS连接情况。
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。其运行界面如下:
可以使用上图标注出的过滤框进行TCP、UDP等协议的过滤,使用wireshark可以较为详细的监测病毒文件运行时的网络连接情况。
ollydbg
当需要深入分析病毒文件时,就需要用到ollydbg,ollydbg是一个新的动态追踪工具,将悦耳的向日葵与SoftICE结合起来的思想,Ring 3级调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。Ollydbg可以动态的显示病毒文件运行时的内存变化,同时可以设置断点,一步步运行分析病毒文件的恶意操作,其运行界面如下:
运行界面分为五个主要窗口,每个窗口功能如下:
反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示。用鼠标左键点击注释标签可以切换注释显示的方式。
寄存器窗口:显示当前所选线程的 CPU 寄存器内容。同样点击标签 寄存器 (FPU) 可以切换显示寄存器的方式。
信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。
数据窗口:显示内存或文件的内容。右键菜单可用于切换显示方式。
堆栈窗口:显示当前线程的堆栈
OllyDBG 有三种方式来载入程序进行调试,一种是点击菜单 文件->打开 (快捷键是 F3)来打开一个可执行文件进行调试,另一种是点击菜单 文件->附加 来附加到一个已运行的进程上进行调试。载入一个文件之后ollydbg的显示界面如下:
具体分析的时候ollydbg一般是结合ida pro来使用的,ollydbg有很多快捷键,整理如下表:
快捷键
功能
F2
设置断点
F8
单步步过
F7
单步步入
F4
运行到选定位置
F9
运行
CTR+F9
执行到返回处
ALT+F9
执行到用户代码