基于增量链接的PE文件信息隐藏技术研究_第1页
基于增量链接的PE文件信息隐藏技术研究_第2页
基于增量链接的PE文件信息隐藏技术研究_第3页
基于增量链接的PE文件信息隐藏技术研究_第4页
基于增量链接的PE文件信息隐藏技术研究_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于增量链接的文件信息隐藏技术研究引言为了提高链接速度和方便程序调试修改大多数编译器都提供了增量链接特性。链接器不是将所有函数代码都紧挨着放在一起而是在函数指令代码之间预留一定数量的填充字节这样在程序调试过程中在函数中增加部分指令就有了存储空间。只要改动不大没有超过预留填充字节的范围链接器就不需要全部重新编译只需要编译所修改的函数即可这样就可以大大提高链接速度。本文将讨论利用编译器的增量链接特性将信息隐藏在两个相邻函数指令代码之间的填充字节中。这样隐藏的信息与指令代码结合在一起分散隐藏在函数指令代码之间的填充字节中有效地提高了算法的隐蔽性和抗攻击性。增量链接的工作原理在编写程序过程中经常会出现这样一种情况程序员写了两个函数和这两个函数在源代码中的位置是相邻的假设函数的代码从开始存放长度为个字节而函数的代码紧接着保存在处。现在需要修改函数,添加了个字节的指令代码,然后编译了新的代码。函数的指令代

码的长度增加了个字节现在需要用字节来保存新增加的代码链接器怎么进行处理呢?常规的方法是重新编译链接将已编译好的e删除然后重新生成所有的函数代码函数向后移动字节的位置)腾出空间来之后所有的函数全部重新定位。对于大型软件来说这个重新编译链接的时间开销是比较大的程序员不可避免地需要不断地调试修改代码不断地重复这个耗时的工作。为了提高链接速度和方便程序的调试修改许多编译器都引入了增量链接特性。其主要工作原理是链接器不是将所有函数代码都紧挨着放在一起而是在相邻的两个函数之间加上填充区域这样函数添加部分指令就有了存储空间。只要改动不大没有超过填充区域的范围链接器就不需要编译链接这样大大提高了链接的速度。如果对函数的修改较大增加的代码超过了填充区域的范围链接器将在节的末尾增加一个较大的填充区域将修改的函数移动到节的末尾同时修正所有调用此函数的为了解决这个问题在代码节中引入了一个表-g其工作原理如下。将之前直接调用函数的指令如到稿日期1返修日期1 本文受国家自然科学基金项目湖南省自然科学基金项目湖南省科技计划项目湖南省普通高等学校教学改革研究项目湖南省大学生研究性学习和创新性实验计划项目)资助。田祖伟男博士教授主要研究方向为信息安全算法分析与设计编译优化杨恒伏男博士副教授主要研究方向为信息安全图像处理·1·的改动很大,链接器直接将函数移动到节的末尾,然后只需要修改这个指令即。当很多个函数都用这种方式时,就形成了一个有ITL表。图1e文件中的表。图1He文件中的表的引入是为了加快编译速度,编译器在代码节的首部创建一个表来间接调用函数表中的每一个元素都是一条长度为字节的指令第个字节为JMP指令的汇编代码,后面个字节记录函数的真实地址跳转到函数的实际地址,这样,在某个函数地址发生变化时,编译器只需要修改表,而不用修改每个调用函数的语句这样可以大大提高编译速度方便调试。在增量编译模式下为方便添加新的函数在表和可执行程序的第一个函数目标代码之间填充大量字节这样新添加的函数会顺序往后填写这个表格以前填写过的保持不动这样达到加快编译的速度。其增量链接工作原理如图2所示。图2增量链接工作原理在编译一次代码然后用或者m之类的软件可以看到两个函数之间间隔了不少距离而这些间隔即填充区域。填充区域全部以数据指令的机器码进行填充。在s指令将会引发一个异常程序会被终止或是返回调试器。这样如果在前一个函数中增加部分程序代码编译后可以看到两个函数在目标文件中的位置不变但函数间的填充区域变小了增加的·2·

部分程序代码将覆盖填充区域2所示。基于增量链接的数据隐藏算法++预定义提供了两组编译选项的集合即De-bug版本和e版本编译器按照预定的选项进行编译和链接。通常称为调试版本通过一系列编译选项的配合编译的结果通常包含调试信息而且不做任何优化为程序员提供了强大的应用程序调试能力e也称为发行版本一般不允许在发行版本上进行调试所以不包含调试信息它往往是进行了各种编译优化使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。++YESNO)选项控制链接器如何处理增量链接-。增量链接是模式的缺省设置,当采用此模式时链接器只重写上次链接之后改动过的部分代码允许链接器增加函数和数据的大小而不用重新创建e文件这样可以减少链接程序的工作显著提高链接器的性能,可以在快速完成链接的同时,方便程序员调试程序。函数跳转表区域自定义函数代码区域表态库函数代码区域导入函数跳转表区域代码节冗余区域图3PE文件代码节内部数据组织版本为了实现这个目的,在增量链接模式下++链接器填充了大量的INT3指令机器码为系统的含义是中断———如果不小心执行了这块数据那么程序会马上中断并且提示用户其他的值则是典型的非法数据到可执行文件的函数与函数之间。因此当对源代码进行修改增加函数或语句后增加的代码就覆盖在函数与函数之间填充的所在的空间中。可执行文件的其他部分不需要进行任何改动但是增量链接是有代价的即会增加可执行文件的长度。一个使用增量链接的文件大约有的空间来存放INT3。在大的执行文件中,甚至可能增加几百甚至几的填充字节。在这种文件里,每个文件里的函数还多了一个指令。当调用增量链接文件里指令找到相应的JMP,然后通过指令执行所需要的函数。这些的好处是使链接程序可以在内存中任意移动函数而不用更新使用这些函数的指令,这些空间可用于信息隐藏。基于增量链接的信息嵌入算法++中采用模式进行编译链接系统在生成的目标文件的函数与函数之间填充大量的字节,这些填充字节可以用于隐藏信息。图为信息嵌入过程示意图。详细的信息隐藏算法描述如下步骤1文件代码节,计算填充字节的总容量。步骤2利用密钥对原始秘密信息W进行加密到最终待隐藏秘密数据′步骤3分析表,计算跳转表中目标的地址函数在磁盘文件中的首地址并按目标地址从大到小进行排序目标地址最大的即为代码节中最后一个函数。在表中,每个指令占5个字节,为一条远转移指令,采用相对寻个字节为相对地址,设表中某个指令在磁盘文件中的偏移地址为XJMP指令中给出的相对地址为,则相应目标函数的入口地址的计算如下:图4信息嵌入过程示意图步骤4从最后一个函数的入口地址的前个字节开始先反向统计填充字节的个数并将此数据写入此填充块的最后两个字节中即函数入口地址的前2个字节中,然后将待隐藏秘密数据按顺序根据填充字节的大小按从高地址到低地址的方向反向写入相应单元中。步骤5当一个填充块使用完后根据已排序的函数入口地址跳转到下一个函数重复第4步一直到第一个函数。这样可以得到含有秘密信息的文件。基于增量链接的数据提取算法对于给定的含有隐秘信息的文件不需

要给出原始的文件,就可以很容易地提取隐藏信息。数据提取过程由以下步骤组成:步骤1对于给定的g版的文件首先分析表计算跳转表中目标地址函数在磁盘中的首地址并按目标地址从大到小进行排序目标地址最大的即为代码节中最后一个函数。步骤2读取最后一个函数的入口地址的前2个字节的N,从距离函数首地址偏移为3的单元开始,从高地址到低地址的方向反向提取N个地址单元的值。步骤3一个填充块提取完成以后根据已排序的函数入口地址跳转到下一个函数重复第2步直到第一个函数。这样可以得到隐藏在文件中的加密信息。步骤4利用密钥对加密信息′进行解密得到原始。实验结果实验中采用g版的e作为载体文件该程序功能简单仅在窗口中间显示字样,使用的g模式进行编译生成的可执行的文件e大小是。对生成的e文件利用二进制编辑器可以观察到该文件内部代码节的原始数据组成形式。如图5所示文件地址从到之间为函数跳转表即表文件地址从到为表与第一个函数_函数之间的填充字节用填充。文件地址从到之间为)函数的指令代码;文件地址从到之间为第一个函数与第二个函数之间的填充字节。文件地址从到之间为函数的指令代码。实验表明在e程序中填充字节多达个字节可隐藏信息达到多个字节。图5He代码节函数间的填充字节

·3·LTL/公式。本文研究为开发更为高效的并发系统验证工具提供了新思路。下一步除了不断完善本文提出的验证框架之外还将进一步通过更多的实验对该方法的效率进行测试和对比研究在待验证的性质不满足时给出反例及基于所给反例进行系统诊断的技术。参考文献]gs]ca]s4]hdl-5]nc

so6]张兆庆蒋昌俊等并行程序验证系统的原理与实现[J].计算机学报7]Mze8]ede49]oggrn&]iM,ic]∥1mon上接第93页性能分析与讨论隐蔽性分析采用基于增量链接的隐藏算法将隐秘信息嵌入到函数指令代码之间的填充字节中使得隐藏的信息与原程序中函数的指令代码融合在一起其隐蔽性高。同时在此方法中不需要修改文件结构中的其它数据,不会增加文件长度,也不会影响程序性能大大提高了隐蔽性嵌入容量分析窗口应用程序,编译器将自动添加众多的初始化函数和窗口框架函数函数指令代码之间的填充空间多隐藏容量大。隐藏容量与应用程序功能有关一般来说程序功能越复杂程序中的函数包括用户自定函数和静态链接库函数越多填充空间越大隐藏容量也就越大。表1为基于增量链接的信息隐藏方案隐藏容量分析表1基于增量链接的信息隐藏方案隐藏容量分析

中没有与程序指令代码结合在一起安全性不高等问题。本文利用编译器增量链接的特性将隐秘信息隐藏在函数代码之间的填充字节中使得隐藏的信息与程序指令代码紧密结合在一起极大地提高了抗攻击性。由于对s窗口应用程序编译器将自动添加众多的初始化函数和窗口框架函数因此函数指令代码之间的填充空间多隐藏容量大。隐藏信息后的文件的长度不会增加程序性能不受影响隐蔽性好。参考文献1]佳黄春沈志宇译北京人民邮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论