本书主要探讨了可执行文件头的变形技术,特别是针对PE(Portable Executable)文件格式,这是Windows操作系统中的标准文件格式。作者详细介绍了如何通过修改PE文件头来实现加密壳或病毒代码的隐藏,使得这些修改后的文件能够避开常规的PE读写工具的检测。
首先,书中引入了可执行文件头变形的基本概念,说明了为什么以及如何对文件头进行修改。在正常情况下,PE文件头包含了文件的运行和加载所需的关键信息。变形技术就是通过对这些信息进行篡改,使文件的结构变得复杂,从而达到保护内部代码的目的。
接下来,书中详细阐述了结构重叠和内置数据的技巧。结构之间的重叠,如MiniPE.exe、PEHeaders与DOSHeader、DataDirectory与ImportTable、SectionTable与ImportTable的重叠,都是为了混淆分析者对文件结构的理解。此外,书中还讨论了如何在结构中插入数据,包括可填入任意值的域、有特定范围或特殊要求的值、在特定条件下使用的域以及将任意域作为变量使用的方法,并通过实例FillGap.exe展示了这些技巧的实际应用。
在间隙的制造和利用章节,作者探讨了如何利用文件中存在的空隙,如间隙一和间隙三,来隐藏额外的数据或代码。这部分内容详细解释了如何有效利用这些间隙,以达到隐藏和混淆的效果。
重叠加载和重复加载是另一种变形技术,使得程序在内存中的加载方式发生变化,增加了分析的难度。书中介绍了如何实现重叠加载,让多个部分在相同的内存空间内加载,以及如何实现不同层次的重复加载,包括简单的重复加载、基于特定条件和原理的重复加载,以及多重重复加载。
最后,书中的无节表和零充填节表的实现部分,讨论了如何创建没有明显节表或填充零的节表,以进一步混淆文件结构。这里特别提到了输入表的桥结构,包括双桥结构和单桥结构,它们为构建复杂的PE文件变形提供了可能。
这本书是关于PE文件变形技术的深度解析,适合对系统安全、逆向工程和恶意软件分析感兴趣的读者。通过学习,读者可以更深入地理解PE文件的结构,并掌握如何通过变形技术来保护或隐藏代码。