反病毒扫描引擎:实用的第一步

指导思想:用多个反病毒扫描引擎及病毒特征库交叉扫描可疑文件,根据分析结果确定文件是否恶意。

在分析一个可疑的恶意代码样本时,第一步就是最好是拿多个反病毒软件扫描下这个文件,看是有哪个引擎能够识别它。

专门的扫描引擎网站

http://www.virustotal.com/     virus total

【恶意代码原理与防治】——静态分析基础技术_十六进制

上传恶意样本,会出现评估结果,可以查看细节

方法:将可疑文件上传至反病毒扫描引擎网站,查看网站的检测结果,了解文件的 特征属性,确定文件 是否为恶意。

【恶意代码原理与防治】——静态分析基础技术_恶意代码_02

https://habo.qq.com/   腾讯哈勃分析系统

【恶意代码原理与防治】——静态分析基础技术_字符串_03

【恶意代码原理与防治】——静态分析基础技术_十六进制_04


哈希值:恶意文件的指纹

哈希是一种用来唯一标识恶意代码的常用方法。恶意代码样本通过一个哈希程

序,会产生出一段用于唯一标识该样本的特有哈希值,类似于恶意代码的“指

纹” 。目前提供下载服务的网站,均会给出文件的哈希值,确保文件的完整性。

常用的哈希算法有MD5、SHA-1等,两者的主要区别是MD5产生的哈希值是32 位十六进制数,而SHA-1产生的哈希值是40位十六进制数。另外SHA-256产生64位十六进制哈希值,SHA-512产生128位十六进制哈希值。

MD5,即Message-Digest Algorithm 5,经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。

①工具一:md5deep(适用于32位系统)/md5deep64(适用于64位系统)

注意:md5deep/md5deep64命令需在MS-DOS方式下使用,它不适用于包含空格等特殊 字符的长文件名目录,使用时需注意。可通过设置系统环境变量来使用该命令。

【恶意代码原理与防治】——静态分析基础技术_十六进制_05

②工具二:sha1deep64,类似于md5deep/md5deep64,查看SHA1、SHA256值的程序,使用 方法同md5deep.exe。

在64位Win10系统下,sha1deep64命令使用举例:

若准备下载一个16进制文件编辑器Hex Editor,下载链接及网站给出的SHA-1签名 信息如下: hxdsetup.zip

【恶意代码原理与防治】——静态分析基础技术_恶意代码_06

【恶意代码原理与防治】——静态分析基础技术_十六进制_07

【恶意代码原理与防治】——静态分析基础技术_字符串_08


③工具三:图形化界面的WinMD5应用程序

【恶意代码原理与防治】——静态分析基础技术_字符串_09

④工具四:python编程计算MD5值

利用python自带的hash库hashlib,可实现MD5值的计算。由于涉及到系统及文件 操作,还需要用到sys和os库。

在程序开始:

import os

import sys

import hashlib

程序清单为:

【恶意代码原理与防治】——静态分析基础技术_十六进制_10


【恶意代码原理与防治】——静态分析基础技术_十六进制_11


查找程序中的可打印字符串

1)功能

程序中的字符串即一串可打印的字符序列,如“www.Microsoft.com” 。一个恶

意代码会包含一些字符串,比如打印出的消息、连接的URL或复制文件到某个特定位置等。

从程序所包含的字符串中进行搜索是获得程序功能提示的一种简单方法。

2)字符串格式:ASCII或Unicode

Unicode码:Unicode码也是一种国际标准编码,长度为2个字节,与ASCII码不兼容。目前,在网络、Windows系统和很多大型软件中得到应用。

工具:strings.exe/strings64.exe

类似于md5deep.exe,在cmd命令行使用,可分析任何类型文件,但不能用

于包含空格等特殊字符的长文件名目录。

【恶意代码原理与防治】——静态分析基础技术_恶意代码_12

【恶意代码原理与防治】——静态分析基础技术_字符串_13