查看this post,它描述了一种将可执行代码放入DICOM文件的前128个字节(即前导部分)的技术。这样,DICOM既可以被视为DICOM也可以被视为PE可执行文件。
This git repo演示相同。但是,它们不显示代码,而是仅包含二进制文件。
现在是我的问题。因为我知道一个最小的exe从this,this和this SO帖子中至少占用几个KB,如何将可执行文件仅保留为128个字节?
从查看图像1看起来很简单,有效的DOS标头放置在空闲区域中,而完整的PE图像稍后嵌入文件中,例如,作者将其放置在两个合法的DICOM元条目之间。 DOS标头确实很短,并且有一个名为e_lfanew的字段,该字段保存文件到IMAGE_NT_HEADERS的偏移量。换句话说,您实际上不需要完整图像的128个字节,只要不干扰DICOM,就可以将其嵌入文件中的任何位置,开始时只需要dos标头即可。