首页> 中国专利> 网络中动态合并及分别执行合并PE文件的方法及其系统

网络中动态合并及分别执行合并PE文件的方法及其系统

摘要

本发明公开了一种网络中动态合并及分别执行合并PE文件的方法及其系统,属于网络通信领域。本发明方法:1)在网关内设一解密头文件;2)将解密头文件的长度和全部要参与合并的PE文件长度分别写入解密头文件的指定字段中;3)将要参与合并的PE文件数据直接拼接在解密头文件末尾,形成一个新PE文件,并将该新PE文件传输给该接收主机;4)继续发送该接收主机将要接收的PE文件数据,依次保存在该新PE文件的末尾,形成一最终合并的PE文件;5)在接收方解密头文件定位文件位置,释放并运行待执行的PE文件。本系统包括解密运行装置和网络PE文件数据流合并装置。本发明可动态合并PE文件且不会对网络的数据流通造成阻塞。

著录项

  • 公开/公告号CN101651678A

    专利类型发明专利

  • 公开/公告日2010-02-17

    原文格式PDF

  • 申请/专利权人 北京锐安科技有限公司;

    申请/专利号CN200910092414.0

  • 发明设计人 姚晓宇;

    申请日2009-09-11

  • 分类号

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人余功勋

  • 地址 100044 北京市海淀区中关村南大街乙56号方圆大厦9层

  • 入库时间 2023-12-17 23:31:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-11-09

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20120725 终止日期:20150911 申请日:20090911

    专利权的终止

  • 2012-07-25

    授权

    授权

  • 2010-04-21

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20090911

    实质审查的生效

  • 2010-02-17

    公开

    公开

说明书

技术领域

本发明属于网络数据通信领域,涉及一种网络中动态合并及分别执行合并PE文件的方法及其系统。

背景技术

PE(“portable executable”,可移植的可执行文件)文件格式,是微软WindwosNT,Windows95和Win32子集中的可执行的二进制文件的格式;在WindowsNT中,驱动程序也是这种格式。它还能被应用于各种目标文件和库文件中。合并PE可执行文件多被用来满足一些特殊的需求,例如用户想只通过一次运行操作运行多个PE文件,或者用户想把自己的程序附着在其他程序上一起运行,或者在已有的PE文件程序上增加其他程序功能等等。传统的PE可执行文件合并技术都是在磁盘中进行的,首先将多个要合并的文件都读进内存,然后通过PE文件结构的特性将多个文件的执行体进行关联,来达到一次运行多个PE可执行文件的目的。由于磁盘中的文件数据都是静态存储的,并且预先都能获得多个文件的数据,所以合并操作不会有太大困难。但是在网络数据流中合并PE文件仍然是业界的一个难题,由于网络数据流一直处于流动状态,不能像在磁盘中一样随时可以取得指定位置的数据,并且在进行合并操作的过程中不能对网络的数据流通造成阻塞,甚至有些情况我们无法在进行合并操作的时候将多个PE文件的数据都预先获取到,这些难题使得在网络中动态合并PE文件这样的技术一直没能得以实现,也无法满足我们在网络中对指定PE文件动态添加功能、动态添加自己程序模块的需求。

发明内容

本发明针对PE文件在网络动态中合并的多种难题,提出了一种网络中动态合并及分别执行合并PE文件的方法及其系统,实现了网络数据流中合并PE文件,并且在合并后的PE文件执行过程中执行被合并的各个文件的方法。

本发明的主要技术内容为:

1)获取负责执行被合并文件的装置(这个装置也是PE文件,在本文档中命名为:“解密头”);

2)将解密头文件的长度和全部要参与合并的PE文件的长度,依次分别写入解密头PE文件结构的指定字段中;

3)将要参与合并的PE文件1的数据直接拼接在解密头文件的末尾,形成一个新PE文件(新PE文件在本文档中命名为:“结合体”);

4)首先将结合体的数据发送到将要接收文件数据的一方,并且继续保持网络连接状态;

5)在网络中获取某接收主机将要接收的PE文件(在本文档中命名为:“PE文件2”)数据;

6)将获取到的PE文件2的数据直接拼接在结合体的末尾进行发送,形成整个合并文件的网络数据流;

7)所有文件在网络中传输结束后,在接收数据方形成一个文件,该文件在运行过程中由解密头负责根据记录的文件位置释放并运行PE文件1和PE文件2。

所述步骤1)解密头文件的功能是,根据文件长度的记录,在磁盘中还原被合并的各个文件,然后逐一运行。

所述步骤3)长度即是文件的大小,以字节为单位。

所述步骤3)具体写入哪2个字段可以依据实际情况自行选择,最好选择PE头结构保留的字段。

所述步骤3)写入长度的目的是为了记录被合并各个文件的位置,以便运行过程中可以还原各个被合并文件并且逐个运行。

所述步骤4)结合体文件数据先行发送到网络中接收文件的一方,并且此时的网络数据传输还没有结束。

所述步骤4)由于在此步骤之前的操作运行时间很短所以不会对网络中接收文件一方的网络造成阻塞。

所述步骤6)此时网络数据传输结束,结合体和PE文件2在接收文件一方的磁盘中形成一个合并后的PE文件。

所述步骤7)解密头负责在磁盘中释放PE文件1和PE文件2,并且逐个运行。

一种在网络中合并PE文件的系统,包括解密运行装置和网络PE文件数据流合并装置。

所述解密运行装置是用来负责释放被合并的各个PE文件并且逐一运行的。它依据记录到自身PE结构中的文件长度,来找到原始文件在整个合并后文件的位置,根据位置依次读出原始文件并运行。合并后的文件的结构如图1所示,size1、size2是我们事先写入解密头中的,size0的长度可以在运行过程中计算出来,size3的计算公式如下:

size3=size0-size1-size2

所述网络PE文件数据流合并装置是负责在网络中对PE文件数据进行合并和转发的,它首先对网络中的PE文件数据传输进行检测控制,当识别出有PE文件传输的时候就进行文件的合并。

纵上所述,本发明的技术方案概述如下:

一种网络中动态合并PE文件的方法,其步骤为:

1)在网关内设置一解密头文件;所述解密头文件为一PE文件,用于执行被合并的PE文件;

2)将所述解密头文件的文件信息和全部要参与合并的PE文件的文件信息依次分别保存在所述解密头文件的指定字段中;

3)网关检测发往某接收主机的数据,识别出该接收主机要接收的PE文件数据;

4)将要参与合并的PE文件数据依次保存在所述解密头文件的末尾,形成一新PE文件;

同时将该新PE文件传输给所述接收主机;

5)继续将该接收主机将要接收的PE文件数据发送给该接收主机,依次保存在该新PE文件的末尾,形成一最终合并的PE文件。

所述指定字段为所述解密头文件结构保留的字段;所述文件信息为文件长度、或文件属性、或者文件特征数据;所述长度以字节为单位。

所述识别出该接收主机所要接收的PE文件的方法为:首先依据文件后缀名称判断文件类型,然后根据文件类型识别出PE文件。

所述识别出该接收主机所要接收的PE文件的方法为:根据PE文件的特征识别出PE文件;所述PE文件特征为PE头的固定特征码。

所述网关能够部分或全部的、直接或间接的获取若干主机的数据;所述网关包括传输网关、应用网关、中继网关、接入网关、安全网关。

一种网络中分别执行合并PE文件的方法,其步骤为:

1)运行合并PE文件中的解密头文件;所述解密头文件为一PE文件,用于执行被合并的PE文件;

2)所述解密头文件定位待执行PE文件的位置;

3)将待执行PE文件的数据转存到磁盘中,形成新文件后运行。

所述定位待执行PE文件的位置方法为:所述解密头文件依据记录的各PE文件长度和所述合并PE文件的总长度及被合并文件数据的次序定位待执行PE文件的位置;或者依据各个被合并PE文件的数据特征定位文件的位置。

所述合并PE文件的总长度通过各种程序语言的I/O操作库函数获得;所述库函数包括windows的API函数、C语言库函数、java的API函数。

一种网络中动态合并及分别执行合并PE文件的系统,包括网关和若干主机,所述网关与主机通过网络连接;所述网关包括解密运行装置和网络PE文件数据流合并装置;

所述解密运行装置,用于负责释放被合并的各个PE文件并且逐一运行;

所述网络PE文件数据流合并装置,用于负责在网络中对PE文件数据进行合并和转发。

所述解密运行装置为一解密头文件,所述解密头文件为一PE文件,用于依据记录到自身PE结构中的各个被合并文件的长度或者特征信息,来执行被合并的PE文件;所述网关可以部分或全部的、直接或间接的获取若干主机的数据。

本发明的有益效果是:

传统的PE文件合并技术只适用于在本地磁盘中对PE文件进行静态的合并,本发明所述方法不但适用于本地磁盘对PE文件的合并,而且克服了因网络数据流一直处于流动状态、不能像在磁盘中一样随时可以取得指定位置的数据、在进行合并操作的过程中不能对网络的数据流通造成阻塞、有些情况无法在进行合并操作的时候将多个PE文件的数据预先都获取到等原因所造成的,无法在网络环境下进行动态的合并PE文件的缺陷。利用本发明,可以满足一些需要在网络环境下对PE文件进行动态合并的需求。

附图说明

图1为本发明合并后的PE文件结构图;

图2为本发明网络PE文件数据流合并装置流程图;

图3为本发明解密运行装置流程图。

具体实施方式

下面结合附图,进一步详细描述本发明的实施例:

在网关内设有一个网络数据控制系统(即网络PE文件数据流合并装置所在系统,网络PE文件数据流合并装置可以作为其他系统的一个模块,也可以独立工作),其数据控制范围内有一台B机器,网关可以部分或者全部的获得B机器的网络传输数据。数据控制系统需要使传输到B机器的每一个PE文件都与另一个PE文件(实施例中命名为“PE文件1”,与上文中的“PE文件1”意义相同)进行合并,并且在B机器运行合并后的文件时,PE文件1和其他PE文件也需要同时被运行。实施过程需要如下步骤:

(1)、将解密头文件的文件信息和全部要参与合并的PE文件(比如PE文件1和PE文件2)的文件信息依次分别保存在所述解密头文件的指定字段中

读取解密头文件和全部参与合并的PE文件的长度保存在解密头文件的PE结构中,以备解密头还原原始文件并且执行之用,长度写好后进行(2)步骤。长度以字节为单位,可以保存在解密头文件的任意PE结构数据字段中,但是为了不影响windows操作系统加载运行解密头文件,最好是将解密头文件和PE文件的长度保存在PE头结构中保留未用的字段中,如DOS头中的e_res2数组中,即将文件的长度以长整形的类型写入解密头文件起始偏移0x28字节处,或者是解密头文件预留的文件地址空间中。

(2)、检测B机器的传输数据

网络数据控制系统对传输到B机器的网络数据流进行监控,如果检测到B机器将要收取PE文件数据了,执行下一步(3)。识别PE文件数据流的方法有很多,例如利用某些协议的特征,如HTTP协议在传输文件过程中会传输文件名,依据后缀名来判断文件类型;也可以使用PE文件的特征进行判断,如判断PE头的固定特征码,“MZ”(16进制为0x4d,0x5a)、“PE”(16进制为0x50,0x45)等。

(3)、将PE文件1直接拼接在解密头文件的末尾形成一个新文件

读取PE文件1并且将文件数据直接写在解密头文件的末尾,解密头文件追加了PE文件1的数据后形成了一个新的PE文件(实施例中命名为“结合体”,与上文所述“结合体”意义相同)。

(4)、数据控制系统将结合体文件通过B机器的文件传输链路发送到B机器中

数据控制系统将整个结合体文件的数据从B机器的文件传输链路发送到B机器中,此时B机器所要接收的文件并未结束,数据链路仍然保持打开。由于数据控制系统在B机器的网关上,所以可以对B机器的任何网络传输链路进行修改和控制,网络PE合并需要一个能够接管控制合并对象网络数据的环境。

(5)、数据控制系统将B机器要接收的PE文件继续转发给B机器

数据控制系统首先接收到了B机器最初要接收的PE文件(实施例中命名为“PE文件2”,与前文所述“PE文件2”意义相同)数据,然后直接通过刚才传输结合体文件的文件传输链路将数据转发给B机器。B机器收完PE文件2的数据后整个文件传输链路关闭,B机器会将所接收到的所有数据形成一个文件,该文件就是合并后的PE文件。

(6)、B机器的用户运行合并后的PE文件

B机器的用户运行合并后的PE文件过程中,解密头文件由于是在整个合并后PE文件的最开始处,所以实际上就是运行了解密头文件即解密运行装置被启动,解密运行装置依据之前记录在解密头文件中的长度,定位到PE文件1和PE文件2的数据,读取2个文件的数据并且在磁盘中进行还原,最后依次运行2个PE文件。定位PE文件1和PE文件2的计算方法如下,参考图1、图3:

size1、size2是我们事先写入解密头中的,size0的长度可以在运行过程中通过windows的API函数得知,size3的计算公式为size3=size0-size1-size2。

或者依据被合并PE文件中PE文件1和PE文件2的数据特征,定位PE文件1和PE文件2文件的位置,读取2个文件的数据并且在磁盘中进行还原,最后依次运行2个PE文件。

到此,网络合并PE文件并分别执行的发明实施完毕,整个过程中网络中的PE文件数据一直处于流通状态,不会对数据传输的双方造成网络超时影响,并且被合并后的PE文件在运行过程中可以将合并之前的PE文件都运行起来,达到了合并PE文件并执行的目的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号