CN101651678B - 网络中动态合并及分别执行合并pe文件的方法及其系统 - Google Patents
网络中动态合并及分别执行合并pe文件的方法及其系统 Download PDFInfo
- Publication number
- CN101651678B CN101651678B CN2009100924140A CN200910092414A CN101651678B CN 101651678 B CN101651678 B CN 101651678B CN 2009100924140 A CN2009100924140 A CN 2009100924140A CN 200910092414 A CN200910092414 A CN 200910092414A CN 101651678 B CN101651678 B CN 101651678B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- network
- gateway
- main frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种网络中动态合并及分别执行合并PE文件的方法及其系统,属于网络通信领域。本发明方法:1)在网关内设一解密头文件;2)将解密头文件的长度和全部要参与合并的PE文件长度分别写入解密头文件的指定字段中;3)将要参与合并的PE文件数据直接拼接在解密头文件末尾,形成一个新PE文件,并将该新PE文件传输给该接收主机;4)继续发送该接收主机将要接收的PE文件数据,依次保存在该新PE文件的末尾,形成一最终合并的PE文件;5)在接收方解密头文件定位文件位置,释放并运行待执行的PE文件。本系统包括解密运行装置和网络PE文件数据流合并装置。本发明可动态合并PE文件且不会对网络的数据流通造成阻塞。
Description
技术领域
本发明属于网络数据通信领域,涉及一种网络中动态合并及分别执行合并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文件并执行的目的。
Claims (9)
1.一种网络中动态合并PE文件的方法,其步骤为:
1)在网关内设置一解密头文件;所述解密头文件为一PE文件,用于执行被合并的PE文件;
2)将所述解密头文件的长度和全部要参与合并的PE文件的长度依次分别保存在所述解密头文件的指定字段中;
3)网关检测发往某接收主机的数据,识别出该接收主机要接收的PE文件数据;
4)将要参与合并的PE文件数据依次保存在所述解密头文件的末尾,形成一新PE文件;同时将该新PE文件传输给所述接收主机;
5)继续将该接收主机将要接收的PE文件数据发送给该接收主机,依次保存在该新PE文件的末尾,形成一最终合并的PE文件。
2.如权利要求1所述的方法,其特征在于所述识别出该接收主机所要接收的PE文件的方法为:首先依据文件后缀名称判断文件类型,然后根据文件类型识别出PE文件。
3.如权利要求1所述的方法,其特征在于所述识别出该接收主机所要接收的PE文件的方法为:根据PE文件的特征识别出PE文件。
4.如权利要求1所述的方法,其特征在于所述网关能够部分或全部的、直接或间接的获取若干主机的数据;所述网关包括传输网关、应用网关、中继网关、接入网关、安全网关。
5.一种网络中分别执行基于权利要求1方法动态合并的PE文件的方法,其步骤为:
1)运行合并PE文件中的解密头文件;所述解密头文件为一PE文件,用于执行被合并的PE文件;
2)所述解密头文件定位待执行PE文件的位置;
3)将待执行PE文件的数据转存到磁盘中,形成新文件后运行。
6.如权利要求5所述的方法,其特征在于所述定位待执行PE文件的位置方法为:所述解密头文件依据记录的各PE文件长度和所述合并PE文件的总长度及被合并文件数据的次序定位待执行PE文件的位置;或者依据各个被合并PE文件的数据特征定位文件的位置。
7.如权利要求6所述的方法,其特征在于所述合并PE文件的总长度通过各种程序语言的I/O操作库函数获得;所述库函数包括windows的API函数、C语言库函数、java的API函数。
8.一种网络中动态合并及分别执行合并PE文件的系统,包括网关和若干主机,所述网关与主机通过网络连接;所述网关包括解密运行装置和网络PE文件数据流合并装置;
所述解密运行装置为一解密头文件,所述解密头文件为一PE文件,用于执行被合并的PE文件;所述解密头文件依据记录到自身PE结构中的各个被合并文件的长度或者特征信息,来执行被合并的PE文件;
所述网络PE文件数据流合并装置,用于负责在网络中对PE文件数据进行合并和转发;具体为:所述网络PE文件数据流合并装置首先检测发往某接收主机的数据,识别出该接收主机要接收的PE文件数据;然后将要参与合并的PE文件数据依次保存在所述解密头文件的末尾,形成一新PE文件;同时将该新PE文件传输给所述接收主机;继续将该接收主机将要接收的PE文件数据发送给该接收主机,依次保存在该新PE文件的末尾,形成一最终合并的PE文件。
9.如权利要求8所述的系统,其特征在于所述网关能够部分或全部的、直接或间接的获取若干主机的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100924140A CN101651678B (zh) | 2009-09-11 | 2009-09-11 | 网络中动态合并及分别执行合并pe文件的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100924140A CN101651678B (zh) | 2009-09-11 | 2009-09-11 | 网络中动态合并及分别执行合并pe文件的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101651678A CN101651678A (zh) | 2010-02-17 |
CN101651678B true CN101651678B (zh) | 2012-07-25 |
Family
ID=41673787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100924140A Expired - Fee Related CN101651678B (zh) | 2009-09-11 | 2009-09-11 | 网络中动态合并及分别执行合并pe文件的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101651678B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622377A (zh) * | 2011-01-28 | 2012-08-01 | 北京千橡网景科技发展有限公司 | 用于合并文件的方法和设备 |
CN102346827B (zh) * | 2011-09-19 | 2014-11-05 | 奇智软件(北京)有限公司 | 处理计算机病毒的方法及装置 |
CN104063662B (zh) * | 2011-09-19 | 2017-05-03 | 北京奇虎科技有限公司 | 处理计算机病毒的方法及装置 |
WO2013041016A1 (zh) | 2011-09-19 | 2013-03-28 | 北京奇虎科技有限公司 | 处理计算机病毒的方法和装置 |
CN102279917B (zh) * | 2011-09-19 | 2013-08-07 | 奇智软件(北京)有限公司 | 多杀毒引擎并行杀毒方法及系统 |
CN109726237B (zh) * | 2018-12-13 | 2020-02-07 | 浙江邦盛科技有限公司 | 一种针对多路实时流数据的关联补全方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1248749A (zh) * | 1998-09-18 | 2000-03-29 | 英业达股份有限公司 | 合并档案文件的方法 |
CN1627275A (zh) * | 2003-12-11 | 2005-06-15 | 甘国工 | 将文件分割存储和还原处理的方法和系统 |
CN1932826A (zh) * | 2005-09-16 | 2007-03-21 | 英业达股份有限公司 | 计算机可执行的线路图文件合并界面及其系统 |
CN101504656A (zh) * | 2009-03-26 | 2009-08-12 | 成都磐石软件有限责任公司 | 一种pe文件代码合并执行方法 |
-
2009
- 2009-09-11 CN CN2009100924140A patent/CN101651678B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1248749A (zh) * | 1998-09-18 | 2000-03-29 | 英业达股份有限公司 | 合并档案文件的方法 |
CN1627275A (zh) * | 2003-12-11 | 2005-06-15 | 甘国工 | 将文件分割存储和还原处理的方法和系统 |
CN1932826A (zh) * | 2005-09-16 | 2007-03-21 | 英业达股份有限公司 | 计算机可执行的线路图文件合并界面及其系统 |
CN101504656A (zh) * | 2009-03-26 | 2009-08-12 | 成都磐石软件有限责任公司 | 一种pe文件代码合并执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101651678A (zh) | 2010-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101651678B (zh) | 网络中动态合并及分别执行合并pe文件的方法及其系统 | |
US7685392B2 (en) | Providing indeterminate read data latency in a memory system | |
US7581015B2 (en) | Communication device having transmitting and receiving units supports RDMA communication | |
US6757768B1 (en) | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node | |
US9197520B2 (en) | Methods and computer program products for transaction analysis of network traffic in a network device | |
US6832279B1 (en) | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node | |
CN102195874B (zh) | 数据分组的预提取 | |
CN102045772B (zh) | 一种数据传输方法及装置 | |
US20070147379A1 (en) | Network interface controlling lock operation in accordance with advanced extensible interface protocol, packet data communication on-chip interconnect system including the network interface, and method of operating the network interface | |
CN100589342C (zh) | 在通信系统中发送数据的装置和方法 | |
CN103166971B (zh) | 一种多路复用串口协议转换方法 | |
US8041854B2 (en) | Steering data units to a consumer | |
CN102446087B (zh) | 指令预取方法与预取装置 | |
CN113259268A (zh) | 一种支持冗余架构的网口与串口数据转发网关及方法 | |
CN107947965B (zh) | 服务链编译器 | |
CN103179162A (zh) | 一种输出日志的方法及系统 | |
CN101453416A (zh) | 用于远程程序安装的包预取的服务节点、网络及其方法 | |
CN101355483B (zh) | 一种多网口发送数据包的方法和设备 | |
US20040236915A1 (en) | Multiple data management method, computer and storage device therefor | |
US20140032744A1 (en) | Method of comparing outputs in a plurality of information systems | |
CN101464839B (zh) | 一种访存缓冲装置及方法 | |
CN113259274B (zh) | 多核模式下处理网络报文乱序和负载均衡的方法及存储介质 | |
CN106302243B (zh) | 一种报文传输方法、cpu以及网络设备 | |
US20090271555A1 (en) | Accessing data | |
CN101997704A (zh) | 一种实现网元链路状态轮询的方法、装置及网管服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120725 Termination date: 20150911 |
|
EXPY | Termination of patent right or utility model |