对于任何的计算机语言,理论上,只要表达能力足够强悍就可以用来进行PE病毒的编写。

但是,目前大多数PE病毒,都是直接使用汇编编写的。

一方面,病毒所涉及的各类系统和硬件等类型比较多,假如运用一款高级语言来编写可能会比较麻烦,而汇编的可控性和灵活性强(诸如能够直接修改自身代码、自身定位以及I0端口读写等),限制非常少;另一方面,汇编完成后的代码精悍短小,可以对其进行充分的优化。

在我们对PE病毒展开详细叙述之前,首先来说说病毒感染。


什么是病毒感染?

人在从出生到死亡的过程中,难免会有生病的时候,而其中一些病因来自于病毒感染。服务器也一样能够感染病毒,只不过这里的病毒我们将它们称之为电脑病毒。

病毒感染,是在不影响对方系统正常功能的前提下使其拥有病毒的功能性。一个病毒通常有不同的功能分区,比如触发、破坏、感染等等。


PE病毒以感染目标进行分类则有两种:系统感染型和文件感染型。

系统感染型

病毒通过附庸在Windows操作系统上进行大量繁殖传染。

PE病毒不会对具体文件进行感染,但是它会在操作系统中保存自己的实体;同时,也能够通过系统启动来获取控制权。

传播途径有多种,包括电子邮件、光盘、即时通信软件(如QQ、微信等)、U盘、网络共享以及其他途径等。

文件感染型

代码寄生在PE文件中,病毒本身只是PE文件的一部分。病毒附着于被感染的文件中,通常将这类型的文件称之为HOST文件,而PE病毒也是以对方的程序运行来获得控制权。

它分为传统感染型(以Win32汇编程序编写为主)和捆绑释放型(编写难度较低,通过高级语言均可编写,将目标程序和病毒程序捆在一起,和捆绑器有相似之处)。


那么问题来了,什么是PE病毒?

PE(Portable Executable),指的是可移植执行体。

它是win 32环境中携带的执行体文件格式,能够感染任何windows下的PE格式文件,因此又被称作win 32病毒。

PE病毒的优点也非常明显,它使用汇编语言编写代码、能够在任何windows系统中运行,然而也因为需要处理复杂的文件格式对编程技术要求颇高。

PE病毒种类将近四百个,从早期的CIH(全球第一种能够篡改硬件BIOS数据的病毒)、到后期的机器狗、熊猫烧香,无一不是PE病毒的一种。

假如一个攻击者要使用PE病毒,上文中也说了必须要会编程技术,比如病毒如何返回到Host程序、如何感染其他文件,内存映射文件,文件搜索,获取API函数地址,病毒重定位等。


当年令人闻风丧胆的熊猫烧香属于PE病毒文件感染型中的捆绑释放型,实现起来十分简单,而很多病毒都通过这种方法来扩散网络病毒。

它首先附着在一款应用的PE文件中,通过执行病毒程序来执行HOST文件,确保被感染的服务器能够正常工作而不会被使用者察觉。熊猫烧香在执行后掌握了应用的控制权,图标代替了之前的应用图标,因此使用者会发现自己的应用被更改为一只熊猫在烧香的图案,这是典型的熊猫烧香感染特征。


那么,到底什么是熊猫烧香呢?

那是一款2006年11月出现在市场上的电脑病毒,拥有极强的硬盘破坏力和感染力,当然也具备了PE病毒拥有的一个特色“自动传播”,主要通过下载的文件相互感染传播。

熊猫烧香不仅能够感染系统中诸如html、src、exe、asp、pif、com等格式的文件,还能中止删除大量的反病毒软件进程,被感染的服务器系统上所有后缀为.exe的可执行文件全部替换为一只熊猫举着三根香的图标。


当我们再反过来看当年这个电脑病毒事件时,会发现该网络病毒的技术水平一般,但放在当时的技术领域中它十分具有参考性。随着AI、云计算、大数据等IT服务器技术的崛起,网络攻击的水平也是逐年上升,PE病毒也衍生出挖矿木马、勒索病毒(WannaCry)、APT攻击等病毒类型。作为网络安全的一份子,这些都值得我们去不断思考和提高。