如何快速判断一个文件是否为病毒


前言

下载网上的软件,怕软件里插有某些小玩具,很大程度需要自己识别。


分析一个文件是否为病毒有多种方法,比如用OD这样的调试器,用HIPS都可以达到目的。在这里主要讨论一下快速判断的方法,用最短的时间,最少的知识,来判断一个文件是否安全。

先说一下必要的工具:Sandboxie、PEID、OD以及你的杀毒软件。

比如说,我从论坛上下载一个别人发布的软件,这时候杀毒软件也许会报毒。这种情况下,先看一下报的病毒名。如果报的是“Win32/Packed.VMProtect.AAA 特洛伊木马 的变种”这样的壳,那么可以稍稍放松下警惕。对于一些壳,杀软脱不了,为了方便,就把这种壳当作病毒来处理。另外,如果是“Win32/Hupigon.NUK 特洛伊木马”以及“Win32/Parite.B 病毒”这类的,就需要注意,这个文件可能被人恶意插入木马,或者被感染过。从杀软报的病毒名基本可以判断出这个文件是真的有问题,还是属于杀软的误报。然而,也有一些例外。比如“*.Win32.Generic.122E105A”,这个一看就是云安全分析出来的病毒,没有什么有效的信息,所以无法通过病毒名判断是否是误判。

根据杀软的信息,可以对该文件的安全性有一个初步的了解。我想不会有人完全信任杀软的,更多的还是信任自己。用PEiD查一下壳,如果是一些简单的压缩壳,就在沙盘中运行OD,脱掉,分析。这时要做的不是一步步跟下去,而是找一下这个文件调用的API。在反汇编窗口右击,查找——当前模块中的名称(标签)。
如何快速判断一个文件是否为病毒
观察一下API,这时也是有所取舍的。对于字符函数和字符串处理函数这类的,可以忽略过去;对于注册表函数、文件函数则要多加留意。比如说,看到了CreateFile,就在这个函数上下断,注意看有没有对系统敏感位置写入文件。同样,查看字符串也是有效的方式。一般地,可以从字符串找出一些病毒的特征。比如有的灰鸽子会有“客户端安装成功”之类的字样,发现一些邮件地址以及相应密码的。这些都是很可疑的。遇到一些猛壳,脱掉它是很困难的,这时可以借助下沙盘。

如何快速判断一个文件是否为病毒
让程序在沙盘里完全运行,之后终止所有程序。
如何快速判断一个文件是否为病毒
查看程序生成里什么
如何快速判断一个文件是否为病毒
从程序生成的文件基本可以判断是否是病毒了。当然,也不乏一些检测沙盘、虚拟机的小东西。在病毒样本区的页面上方有在线沙盘的链接。分析的结果十分具体,可以用来参考。如果你觉得手工检测太麻烦,可以借助在线沙盘,既快又详细。
如何快速判断一个文件是否为病毒
先查一下壳,应该是没壳的.
如何快速判断一个文件是否为病毒
此时使用PEiD的反汇编工具看看字符串, 功能方便.
如何快速判断一个文件是否为病毒
注意选中的部分,很可疑.是一个URL,指向的还是个exe文件.这时应该怀疑这个外挂是个下载器.

下面将它用OD载入(在沙盘或虚拟机中进行),看一看当前模块中的名称(标签),有一个URLDownloadToFileA,这个函数可以实现将一个网络上的文件下载到本地的功能,一般的ShellCode常用到它.

如何快速判断一个文件是否为病毒
在输入函数上切换断点,运行,可以看出具体的行为.
在此之后要做的就是对下载下来的这个文件进行分析

,如果用沙盘直接运行,最终会在沙盘里提取到这个文件,会发现在临时目录里.在外挂的目录下还会发现一个隐藏文件,应该就是干净的外挂.
挂的这个马应该变了,与附件中的程序已经不同了.
如果你认为很麻烦,可以直接把它扔到在线沙盘里,让机器替你分析.
比如说我认为下载下来的这个文件nSPack壳比较难脱,或者说我根本不会脱壳,那就选择网上大多的在线沙盘。


转自于大佬 是昔流芳 很多年前的帖子,觉得很有趣,特记录下来。
上一篇:【C++】从零开始,只使用FFmpeg,Win32 API,实现一个播放器(二)


下一篇:使用Dos窗口获取Windows进程的优先级