病毒文件中总会存在一些可供识别的字符串,很多时候,这些字符串是某个病毒所特有的,因此这种方式适用于所有病毒的特征码的提取 。采用这种方式甚至还能识别某一大类病毒,但是缺点是需要耗费比较多的扫描时间 。以我们之前讨论过的“熊猫烧香”病毒为例,经过我们之前的逆向分析可以知道,病毒最开始会使用“xboy”以及“whboy”这两个字符串来进行解密的操作 。比如我们尝试一下,在病毒程序的二进制代码中搜索“whboy”:
文章插图
相信一般的程序中不会出现“whboy”以及“xboy”这两段字符,因此就可以考虑将这两个字符串或者其中的一个字符串作为“熊猫烧香”病毒的特征码 。这样只要对目标程序中的可打印字符串进行检索,如果发现了“whboy”就可以认为目标程序是“熊猫烧香”病毒程序 。这样即便是病毒出现了变种,只要它依旧包含有“whboy”,我们就依然能够实现查杀的工作 。或者我们也可以考虑使用更长的字符串,比如上图中开始的那32个字节,即“武汉男生感染下载者**”,将其十六进制代码提取出来作为特征码 。将这段字符串作为“熊猫烧香”的特征码 。然后可以使用PEiD查看一下该段代码所在的区段:
文章插图
可见,文件偏移0x0c040位于CODE,即代码区段中,那么其实在进行匹配的时候,我们只要检索目标程序的这个区段就可以了 。或者为了方便起见,我们在检测目标程序时,只检测位于文件偏移0x0c040处的字符,如果能够匹配病毒特征码,就认为目标程序是病毒 。
推荐阅读
- 槭树的种类 槭树科植物有哪些
- 开源免费的VLC播放器推出3.0.8桌面版 修复多处高危安全漏洞
- 十大机器学习算法数据科学家最常用的 新手必知
- MySQL 8 和 MySQL 5.7 在小型设备的内存消耗分析
- 梦到攀爬高处特别艰难特别害怕爬上去了 梦见在危险的高处攀爬
- Python处理session最简单的方法
- 浅谈韩国茶礼的叶茶法
- 信息流的四项指标如何优化,优化技巧是什么?
- Python:如何判断一个url是以http开头的?
- 基于Redis实现Spring Cloud Gateway的动态管理