学习日记——(计算机病毒)PE文件病毒
一、相关知识PE文件病毒的原理:PE文件病毒感染病毒时,将自身代码复制到目标文件中PE文件病毒在目标文件前运行,那么,它是怎么做到的呢?答:PE病毒感染其他文件的常见方法是:在文件中添加一个新节,然后把病毒代码和执行后返回宿主程序的代码写入到新添加的节中;同时修改PE文件头的入口地址,使它指向新添加的病毒代码入口;这样做后,当程序运行时,首先运行病毒代码,运行完后再转去运行宿主代码。PE文件病毒的
一、相关知识
PE文件病毒的原理:PE文件病毒感染病毒时,将自身代码复制到目标文件中
PE文件病毒在目标文件前运行,那么,它是怎么做到的呢?
答:PE病毒感染其他文件的常见方法是:
- 在文件中添加一个新节,然后把病毒代码和执行后返回宿主程序的代码写入到新添加的节中;
- 同时修改PE文件头的入口地址,使它指向新添加的病毒代码入口;
- 这样做后,当程序运行时,首先运行病毒代码,运行完后再转去运行宿主代码。
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

PE文件病毒的关键技术
1、重定位技术
原理:重定位是几乎所有病毒都要解决的问题.我们写正常的程序的时候根本不用关心变量的位置,在编译的时候都计算好的.在程序中直接使用变量名使用就可以了.病毒也需要用到变量,由于附在不同的程序中,位置不同,病毒的变量在内存中的位置自然不同.病毒代码中的变量进行重定位是非常有必要的.
2、获取API函数
3、搜索感染目标文件
4、如何返回宿主程序
相关练习题
1、以下属于PE文件病毒的是(A )
2、以下不属于PE病毒的关键技术的是(D)?
- A、
- B、
- C、
- D、
3、以下不属于PE病毒的操作是(D)
- A、
- B、
- C、
- D、
4、通过重定位,病毒可以解决(C)问题?
- A、
- B、
- C、
- D、
判断题
1、PE文件病毒通过修改宿主程序入口点地址抢先执行。
正确答案:√
2、PE病毒通常通过新增一节来感染PE程序。
正确答案:√
3、PE病毒也可以通过加长最后一节的方法来感染PE程序。
正确答案:√
4、PE病毒也有自己的导入表(输入表)。
正确答案:×
答案解析:
PE只是一段代码,不是完整的PE结构,没有自己的导入表。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)