学习日记——(计算机病毒)PE文件病毒

一、相关知识

 

PE文件病毒的原理:PE文件病毒感染病毒时,将自身代码复制到目标文件中

PE文件病毒在目标文件前运行,那么,它是怎么做到的呢?

答:PE病毒感染其他文件的常见方法是:

  1. 在文件中添加一个新节,然后把病毒代码和执行后返回宿主程序的代码写入到新添加的节中;
  2. 同时修改PE文件头的入口地址,使它指向新添加的病毒代码入口;
  3. 这样做后,当程序运行时,首先运行病毒代码,运行完后再转去运行宿主代码。

PE文件病毒的感染过程:

第一种:

1、判断目标文件开始的两个字节是否为“MZ”;

2、判断PE文件的标记(“PE”);

3、判断感染标记,如果已被感染过就跳出,去执行宿主程序,否则继续;

4、获得数据目录(Data Directory)的个数(每个数据目录占8个字节);

5、得到节表的起始地址(数据目录的偏移地址+数据目录占用的字节数=节表起始位置)

 6、得到节表的末尾偏移(紧接其后用于写入一个新的病毒节信息),节表的起始地址+节的个数*28H(每个节表占用的字节数)=节表的末尾偏移

7、开始写入节表:

a)写入节名(8字节)。

b)写入节的实际字节数(4字节)。

c)写入新节在内存中的开始偏移地址(4字节),同时可以计算出病毒入口位置。 上一个节在内存中的开始偏移地址+(上一个节的大小/节对齐+1)*节对齐=本节在内存中的开始偏移地址。

d)写入本节(即病毒节)在文件中对齐后的大小。

e)写入本节在文件中的开始位置。 上节在文件中的开始位置+上节对齐后的大小=本节(即病毒)在文件中的开始位置。

8、修改映像文件头的节表数目

9.修改AddressOfEntryPoint(即程序入口点指向病毒入口位置),同时保存旧的AddressOfEntryPoint,以便返回宿主并继续执行。

10.更新SizeOfImage(内存中整个PE映像尺寸=原SizeOfImage+病毒节经过内存节对齐后的大小)。

11.写入感染标记(后面例子中是放在PE头中)。

12.在新添加的节中写入病毒代码。


第二种:加长最后一节,修改PE

学习日记——(计算机病毒)PE文件病毒_第1张图片

第三种:利用空闲区修改PE

学习日记——(计算机病毒)PE文件病毒_第2张图片

PE文件病毒的关键技术

1、重定位技术

原理:重定位是几乎所有病毒都要解决的问题.我们写正常的程序的时候根本不用关心变量的位置,在编译的时候都计算好的.在程序中直接使用变量名使用就可以了.病毒也需要用到变量,由于附在不同的程序中,位置不同,病毒的变量在内存中的位置自然不同.病毒代码中的变量进行重定位是非常有必要的.

2、获取API函数

3、搜索感染目标文件

4、如何返回宿主程序


相关练习题

1、以下属于PE文件病毒的是(

  • A、

    CIH病毒

  • B、

    灰鸽子

  • C、

    Brain 

  • D、

     鬼影病毒

2、以下不属于PE病毒的关键技术的是(D)?

  • A、

    重定位

  • B、

    API函数调用

  • C、

    返回宿主程序

  • D、

     修改文件图标

    3、以下不属于PE病毒的操作是(D

  • A、

    修改入口点地址

  • B、

    修改(添加)节

  • C、

    修改节表。

  • D、

    修改PE文件标志。

4、通过重定位,病毒可以解决(C)问题?

  • A、

     复制代码到宿主程序

  • B、

    改变宿主的入口点地址

  • C、

    病毒变量在内存中的位置

  • D、

     搜索感染文件

    判断题

    1、PE文件病毒通过修改宿主程序入口点地址抢先执行。

    正确答案:

    2、PE病毒通常通过新增一节来感染PE程序。

    正确答案:

    3、PE病毒也可以通过加长最后一节的方法来感染PE程序。

    正确答案:

    4、PE病毒也有自己的导入表(输入表)。

    正确答案:×

    答案解析:

    PE只是一段代码,不是完整的PE结构,没有自己的导入表。

你可能感兴趣的:(计算机病毒,安全)