APP下载

PE文件信息隐藏技术研究

2017-11-17李怡谦

网络安全技术与应用 2017年11期
关键词:加密方案空间

◆李怡谦 施 鑫

(中国电子科技集团公司第二十八研究所 江苏 210007)

PE文件信息隐藏技术研究

◆李怡谦 施 鑫

(中国电子科技集团公司第二十八研究所 江苏 210007)

PE文件是Win32平台下一种可执行文件格式,是一种较为流行的可执行文件格式。本文阐述了国内外PE文件信息隐藏技术现状,详细分析了PE文件结构,并根据PE文件冗余空间分布特点,提出了一种新的直接在PE文件节冗余空间中嵌入隐藏信息的方案,通过遍历PE节,计算出每个节中存在冗余空间的大小,根据隐藏信息的大小选择合适的节嵌入信息。所提方案在PE文件冗余空间中嵌入信息不会影响PE文件的正常执行,未增加PE文件大小,且可从PE文件中准确提取隐藏信息,具有较好的隐蔽性和安全性。

信息隐藏;PE文件;冗余空间

0 引言

随着因特网技术飞速发展,多媒体信息的快捷传输,信息资源共享更为便利。由于互联网的开放性,各种机密信息在网络中传输时不可避免存在信息泄露之安全问题。信息隐藏技术于上世纪90 年代中期兴起,是一门综合多学科理论知识与技术的新兴科学,利用多媒体数字信号自身的冗余性,将信息隐藏于某一宿主信号,即不被轻易感知与察觉,又不影响宿主信号视觉效果和使用价值。目前,学者们对多媒体文件隐写分析算法以及研究较多,相比之下,PE (Portable Executable)文件信息隐藏研究相对较少,本文集中于次方面问题研究。

PE是Windows系统下一种可执行文件格式,是 Win32平台自带的一种可执行文件格式,继承了 Unix的 COFF(common object file format)文件格式的一些特性。该格式文件是跨平台性。PE 格式的 EXE 文件结构尽管较为复杂,但格式相对单一,不存在不同文件格式间相互转化问题。为此,将PE 文件作为隐藏载体可较好解决信息丢失问题。现有对PE文件的研究主要集中于PE文件病毒技术研究,常见的两种方式有:(1)在PE文件中增加一节,而后在该节中嵌入一段恶意代码,如此会增加 PE文件存储容量,影响隐藏信息的隐蔽性;(2)利用PE文件的冗余空间嵌入恶意代码,这种方式相比第一种方法,隐蔽性较好。诸多学者提出了PE文件隐藏信息算法。端木庆峰等[1]利用PE图标和位图资源存储格式,提出了一种新的调色板冗余颜色分配算法。吴振强等[2]提出了一种将 PE文件作为掩护媒体隐藏信息方案。朱天明等[3]提出了基于代码搬移的信息隐藏方案。方旺盛等人[4]提出了利用PE文件结构中的冗余空间。基于PE文件的信息隐藏技术当前是较为前沿的热点研究领域。需要强调的是,在信息技术高速发展的今天,社会诸多行业暴露出了越来越多的信息安全问题,迫切需求高安全性的保护机制与管理制度。基于 PE文件的信息隐藏技术能够满足安全性要求,但由于相关的研究工作还不够深入,当前技术尚未成熟。为此,本文将在研究与分析PE文件与其冗余空间的基础上,提出了一种新的信息隐藏方法。

1 PE文件冗余空间

PE文件主要由DOS头、PE头、节表、节内容和调试信息等组成。Windows下可执行文件都是PE文件格式,包括exe、dll、lib等文件。与多媒体信息隐藏类似,PE文件信息隐藏的基本思想是将隐藏信息嵌入于文件的冗余空间中,以达到保护信息安全的目的。 PE文件冗余空间有:(1)PE文件头和其它结构中未被使用的字段空间;(2)DOS头和PE文件头之间冗余空间;(3)PE文件最后一个节表项与第一个节之间冗余空间; (4)PE头和第一个节表项之间冗余空间;(5)PE 文件的每个节末尾因对齐产生的冗余空间;(6)PE资源节中存在的4 种冗余。PE资源节中冗余空间分布,具体见图1。

图1 PE文件资源节冗余空间分布示意图

目前常用的PE文件可嵌入信息的方式有:(1)直接冗余空间中嵌入隐藏信息;(2)扩展一些大小不固定的数据块,以获取足够空间,而后把隐藏信息嵌入;(3)在原来节后面直接增加一个新节,而后将信息嵌入新增的节中。上述方式比较常规,本文将提出一种新的PE文件信息隐藏方案。

2 提出的信息隐藏方案

由上述可知,PE文件自身存在诸多冗余空间。冗余空间可分为人为构造冗余空间和非构造冗余空间。人为构造冗余具有操作简单,嵌入信息量大特点,但是构造一个冗余空间会改变了PE文件存储容量,较容易被发现文件中存在隐藏信息,这种方式隐蔽性较差。本文提出的方案,考虑利用PE文件原始冗余空间隐藏信息。

通过研究PE文件的结构可知,每个PE文件节表后面因对齐,预留了很大的空间,每个节后面同样因对齐需要,存在很多空闲空间。PE文件中每个节均根据参数FileAligment而对齐,究其原因在于每个节的大小并不全是FileAligment整数倍,如此造成每个节后面就会产生很大的没有被充分利用的空闲空间,这为嵌入信息提供了可能。

图2展示了节中的冗余空间位置以及节中几个重要字段的含义和它们之间的关系。 图2中字段PointToRawData表示PE文件的节起始地址,VirtualSize是该节实际占用的空间大小,SizeOfRawData是节对齐后的尺寸,冗余空间的大小等于SizeOfRawData值减去 VirtualSize值。冗余空间起始地址为PointToRawData值与VirtualSize值之和,若能够准确获取上述数据就可隐藏信息。

图2 PE节冗余空间

本文提出的信息隐藏方案包括信息嵌入和提取两个阶段,在嵌入信息阶段,先对原始信息加密,选择的隐藏信息种类有文本、图像、音频,软件作者名称等版权信息,对原始信息的加密目的在于增强隐藏信息安全性和系统抗攻击性,加密结束后可将信息嵌入到PE文件中。提取信息是嵌入的一个逆过程,先将信息提取出来,然后对信息解密。具体方案步骤为:

(1)选择一个合适的PE文件作为载体,一般选择的文件是可以直接点击运行的exe文件;

(2)判断该文件是否为PE文件,主要依据DOS头e_magic字段和PE头中Signature字段,如果emagic的值等于“MZ”,而且Signature的值等于“PE”,认为该文件是PE文件;

(3)分析PE文件中节情况。主要分析节数量以及每个节的冗余空间大小;

(4)选择需要嵌入的隐藏信息;

(5)加密隐藏信息,本文采用的加密算法是DES加密算法;

(6)分析加密的隐藏信息,计算隐藏信息总量,以确定某一个节嵌入信息;

(7)将隐藏信息嵌入到选择节的冗余空间中。准确定位到该冗余空间的起始位置,一般定位方法是先定位到PE文件头,再跳过PE头,到达PE节表,再根据选择节的序号到节表中读取几个关键数据;

(8)修改所选节的 VirtualSize字段值,修改后的值等于原值加上嵌入的隐藏信息大小;

(9)双击该PE文件运行,检查PE文件能否正常执行。

PE文件中嵌入信息提取与信息嵌入过程相反。其主要操作是从嵌入的位置提取信息,然后将加密信息解密,获取到明文信息。为了验证提取的明文信息是否准确,将提取的信息与原来的明文信息进行比对,以检查信息提取的准确性。

3 总结

本文首先分析了信息隐藏研究的背景和意义,简单阐述了PE文件信息隐藏的外研究现状。接着对PE文件冗余空间结构做了较为详细的分析,在此基础上,提出并实现了一种基于PE文件的信息隐藏方案,这种方案利用PE文件中节的冗余空间位置,大小等数据,嵌入隐藏信息,成功实现了信息的嵌入和提取,是一种有效的信息隐藏方法。

[1] 端木庆峰,王衍波,张凯泽,王熹.基于PE文件资源数据的信息隐藏方案[J].计算机工程,2009.

[2] 吴振强,冯绍东,马建峰.PE文件的信息隐藏方案与实现[J].计算机工程与应用,2005.

[3] 朱天明,刘嘉勇.基于代码搬移的 PE文件信息隐藏[J].通信技术,2010.

[4] 方旺盛,邵利平,张克俊.基于 PE 文件格式的信息隐藏技术研究[J].微计算机信息,2006.

猜你喜欢

加密方案空间
烂脸了急救方案
一种新型离散忆阻混沌系统及其图像加密应用
空间是什么?
创享空间
一种基于熵的混沌加密小波变换水印算法
定边:一份群众满意的“脱贫答卷” 一种提供借鉴的“扶贫方案”
加密与解密
认证加密的研究进展
QQ空间那点事
空间