变形恶意代码

maqun / 2025-02-21 / 原文

成绩

《实验3:变形恶意代码》

实验报告

目录

一、实验目标 3

二、实验工具 3

三、实验内容 3

1.任意编写一个程序,用Visual Studio 2022 3

2. 用OD打开该EXE程序,改变开始部分的代码如下: 4

3.再次用OD打开修改后的EXE,发现病毒变了,代码莫名其妙了。 7

四、 实验心得 7

一、实验目标

理解变形的原理,学会病毒实现方法

二、实验工具

1. OD(动态分析工具)

2. Visual Studio 2022

三、实验内容

1.任意编写一个程序,用Visual Studio 2022

用LordPE进行分析,查看程序入口点

  1. 用OD打开该EXE程序,改变开始部分的代码如下:

首先,在exe文件寻找空白区(一段00代码),用lord PE变换该空白区域在内存区的起始VA。空白区VA为0x006F1E40

接着,编写指令实现对EXE的加密,假设原始EXE文件大小40字节,那么就对这40字节按字节做异或操作。原始exe开始字节地址为0x006F12BC

mov eax, 0x44444444 ; 加密密码

mov edx, 0x006F12BC ; 原始EXE文件开始字节地址

mov ecx, 30 ; 加密字节数,30字节

; 加密循环开始

jmp S1地址

pushad ; 保存寄存器状态

S0:

add edx, 0x25413652 ; 随机花指令,占8字节

popad ; 恢复寄存器状态

S1:

xor [edx], eax ; 对内存中的字节进行异或加密

inc edx ; 指向下一个字节

loop S1地址 ; 循环30次

add eax, ebx ; 修改eax的值以进行代码变异(随机值)

; 此处添加随机花指令

; 随机指令区间,确保在popad之前和之后写入

; ... (自行补全随机指令)

jmp 0x006F1E40 ; 跳转到加密后的程序入口

然后,在原EXE文件的结尾相邻处,添加指令 jmp 0x0x006F1E40

最后,利用LordPE修改文件的入口点为00x006F1E40

3.再次用OD打开修改后的EXE,发现病毒变了,代码莫名其妙了。

每次使得给eax赋值的密钥随机,是多态病毒,每次都不一样。

实验心得

通过本次实验,首先了解到了恶意代码的本质和特点,以及一些常规的攻

击方式及其影响,逐步了解了变形的原理,学会其实现方法。在查询相关资料的

过程中,学会了如何查寻 PE 文件空白区。