恶意软件使用PE变形技术来修改PE文件的结构和代码,以产生不同的变种,从而使每个实例看起来不同,难以被传统的基于特征的病毒检测技术所识别。
■PE变形技术可能涉及以下几个方面:
●代码混淆:恶意软件使用各种技术,如指令替换、指令重排、无用代码插入等,来修改PE文件的代码,使其难以分析和识别。这样可以改变程序的控制流,增加分析的复杂性。
【注】我们将在PE加密壳一章详细讲解代码混淆。
●API重命名:恶意软件可能会修改PE文件中调用的系统API函数的名称,使其与正常的API名称不同。这可以使恶意软件的行为更难以检测,因为传统的防病毒软件通常会检查恶意软件是否调用已知的恶意API函数。
●动态链接:恶意软件可能会利用动态链接库(DLL)来加载恶意代码。这样可以使恶意软件变得更加模块化,同时也增加了分析和检测的复杂性。
【注】API重命名和动态链接我们已经在第九章动态加载中详细讲解过。
●数据加密:恶意软件可以使用加密算法对其内部的重要数据进行加密,以防止静态分析。在运行时,恶意软件会解密这些数据并使用它们来执行恶意操作。
【注】数据加密的方法我们将在PE病毒和加密壳两章详细讲解。
●文件格式修改:恶意软件可以修改PE文件的头部、节表、导入表等部分的结构和内容。这些修改可能与正常的PE文件格式规范不符,使恶意软件能够隐藏或混淆其行为。
PE变形技术是恶意软件作者用来逃避传统病毒检测的一种手段。为了对抗PE变形技术,防病毒软件需要不断更新其检测引擎和算法,以提高对新变种的检测能力。此外,行为分析和机器学习等技术也被广泛应用于检测和防御PE变形技术。
11.2.2 PE文件变形
■结构重叠技术
结构重叠技术是指在不影响正常性能的前提下,将某些数据结构进行重叠的技术。
实验七十七:重叠技术
我们以汇编版的HelloWord.exe为例(简洁)。将NT头和DOS头重叠。
第一步:将HelloWord2.exe拖入WinHex内,然后将整个NT头包括节表复制到DOS头的0000000C地址处。
第二步:修改0000003C地址处DOS头e_lfanew 字段4个字节的值为0000000C,指向PE 文件标识“PE\0\0”。如下所示:
HelloWorld2.exe:
00000000 4D 5A 90 00 03 00 00 00 04 00 00 00 50 45 00 00 MZ..........PE..
00000010 4C 01 05 00 E3 F0 2D 66 00 00 00 00 00 00 00 00 L...沭-f........
00000020 E0 00 02 01 0B 01 0E 10 00 0E 00 00 00 14 00 00 ?..............
00000030 00 00 00 00 6B 12 00 00 00 10 00 00 0C 00 00 00 ....k...........
00000040 00 00 40 00 00 10 00 00 00 02 00 00 06 00 00 00 ..@.............
00000050 00 00 00 00 06 00 00 00 00 00 00 00 00 60 00 00 .............`..
00000060 00 04 00 00 00 00 00 00 02 00 40 81 00 00 10 00 ..........@.....
00000070 00 10 00 00 00 00 10 00 00 10 00 00 00 00 00 00 ................
00000080 10 00 00 00 00 00 00 00 00 00 00 00 3C 25 00 00 ............<%..
00000090 B4 00 00 00 00 40 00 00 E0 01 00 00 00 00 00 00 ?...@..?......
000000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 .............P..
000000B0 44 01 00 00 30 21 00 00 70 00 00 00 00 00 00 00 D...0!..p.......
000000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000D0 00 00 00 00 A0 21 00 00 40 00 00 00 00