CN113515389B - 中间接口的调用方法及装置、系统、存储介质、电子装置 - Google Patents
中间接口的调用方法及装置、系统、存储介质、电子装置 Download PDFInfo
- Publication number
- CN113515389B CN113515389B CN202010272902.6A CN202010272902A CN113515389B CN 113515389 B CN113515389 B CN 113515389B CN 202010272902 A CN202010272902 A CN 202010272902A CN 113515389 B CN113515389 B CN 113515389B
- Authority
- CN
- China
- Prior art keywords
- capability
- interface
- pointer
- target
- calling
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000006870 function Effects 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 24
- 230000003068 static effect Effects 0.000 claims description 5
- 230000010354 integration Effects 0.000 abstract description 11
- 230000008878 coupling Effects 0.000 abstract description 5
- 238000010168 coupling process Methods 0.000 abstract description 5
- 238000005859 coupling reaction Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 14
- 230000006978 adaptation Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 241000700605 Viruses Species 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000007480 spreading Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种中间接口的调用方法及装置、系统、存储介质、电子装置,其中,该方法包括:接收来自能力需求方的能力调用请求,其中,所述能力调用请求携带能力标识符;根据所述能力标识符匹配目标接口指针,其中,所述目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;将所述目标接口指针反馈给所述能力需求方。通过本发明,解决了相关技术中代码和逻辑耦合导致业务集成难度高的技术问题。
Description
技术领域
本发明涉及网络安全领域,具体而言,涉及一种中间接口的调用方法及装置、系统、存储介质、电子装置。
背景技术
相关技术中,随着产品功能的越来越丰富,整合的场景越来越多,其需求调用的功能模块也会越来越多。
相关技术中是软件产品由模块组成,模块之间相互调用,代码和逻辑集成在一起。一方面,导致产品的体积臃肿,在一个设备内占用大量的内存和资料,一方面,产品的安全性得不到保障,只要产品被破解或感染病毒,内部的各种接口就可以被随便调用,缺乏保障。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种中间接口的调用方法及装置、系统、存储介质、电子装置。
根据本发明的一个实施例,提供了一种中间接口的调用方法,包括:接收来自能力需求方的能力调用请求,其中,所述能力调用请求携带能力标识符;根据所述能力标识符匹配目标接口指针,其中,所述目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;将所述目标接口指针反馈给所述能力需求方。
可选的,在根据所述能力标识符匹配目标接口指针之前,所述方法还包括:根据所述能力标识符识别能力类型,其中,所述能力标识符用于表征所述目标能力的属性信息;在所述能力类型为外部能力时,确定根据所述能力标识符匹配目标接口指针;在所述能力类型为内部能力时,调用与所述内部能力对应的内部接口,其中,所述内部能力通过集成在本地的功能模块实现。
可选的,根据所述能力标识符匹配目标接口指针包括:在EntManager.dll文件中导出CreateEngObject函数;通过调用所述CreateEngObject函数获取IEngFactory接口指针;调用所述IEngFactory接口指针的QueryObject函数,匹配得到所述目标接口指针。
可选的,在根据所述能力标识符匹配目标接口指针之前,所述方法还包括:导出CreateClientObject函数;通过所述CreateClientObject函数获取IEngClient接口指针;通过调用所述IEngClient接口指针设置实例指针,并配置与所述实例指针对应的指针接口。
可选的,所述目标能力包括以下至少之一:安全防护能力、静态特征扫描能力、文件格式误别能力、脱壳能力。
所述方法还包括:确定本地业务需求;根据所述本地业务需求调用外部接口;通过所述外部接口的网络访问通道获取与所述本地业务需求对应的目标文件。
根据本发明的另一个实施例,提供了一种中间接口的调用装置,包括:接收模块,用于接收来自能力需求方的能力调用请求,其中,所述能力调用请求携带能力标识符;匹配模块,用于根据所述能力标识符匹配目标接口指针,其中,所述目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;反馈模块,用于将所述目标接口指针反馈给所述能力需求方。
可选的,所述装置还包括:识别模块,用于在所述匹配模块根据所述能力标识符匹配目标接口指针之前,根据所述能力标识符识别能力类型,其中,所述能力标识符用于表征所述目标能力的属性信息;处理模块,用于在所述能力类型为外部能力时,确定根据所述能力标识符匹配目标接口指针;在所述能力类型为内部能力时,调用与所述内部能力对应的内部接口,其中,所述内部能力通过集成在本地的功能模块实现。
可选的,所述匹配模块包括:导出单元,用于在EntManager.dll文件中导出CreateEngObject函数;获取单元,用于通过调用所述CreateEngObject函数获取IEngFactory接口指针;匹配单元,用于调用所述IEngFactory接口指针的QueryObject函数,匹配得到所述目标接口指针。
可选的,所述装置还包括:导出模块,用于在所述匹配模块根据所述能力标识符匹配目标接口指针之前,导出CreateClientObject函数;第一获取模块,用于通过所述CreateClientObject函数获取IEngClient接口指针;配置模块,用于通过调用所述IEngClient接口指针设置实例指针,并配置与所述实例指针对应的指针接口。
可选的,所述目标能力包括以下至少之一:安全防护能力、静态特征扫描能力、文件格式误别能力、脱壳能力。
可选的,所述装置还包括:确定模块,用于确定本地业务需求;调用模块,用于根据所述本地业务需求调用外部接口;第二获取模块,用于通过所述外部接口的网络访问通道获取与所述本地业务需求对应的目标文件。
根据本发明的又一个实施例,提供了一种中间接口的调用系统,包括:第一终端,第二终端,第三终端,其中,所述第一终端,包括如上述实施例所描述的装置;所述第二终端,用于提供所述目标能力;所述第三终端,用于向所述第一终端发送能力调用请求。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种计算机程序产品,包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,其特征在于,当该程序指令被计算机执行时,使该计算机执行前述任一实施例所述的方法。
通过本发明,接收来自能力需求方的能力调用请求,然后根据所述能力标识符匹配目标接口指针,最后将所述目标接口指针反馈给所述能力需求方。能力需求方不关心调用的模块对象是谁,只关心是否具备这个能力,可以使结构比较松散,上层不必关心底层是如何实现的,代码和逻辑分开,将输出能力封装成简单易用的接口,简化了需要各种能力的业务集成方的集成难度。解决了相关技术中代码和逻辑耦合导致业务集成难度高的技术问题,对于各种大型的软件,也能快速调用和流程运行。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种中间接口的调用计算机的硬件结构框图;
图2是根据本发明实施例的一种中间接口的调用方法的流程图;
图3是本发明实施例中间层的网络构架图;
图4是本发明实施例能力输出接口层的查找流程图;
图5是本发明实施例的各层模块之间的调用关系示意图;
图6是本发明实施例集成能力的通用流程图;
图7是本发明实施例外部调用打点功能的流程图;
图8是本发明实施例内部使用打点功能的流程图;
图9是根据本发明实施例的一种中间接口的调用装置的结构框图;
图10是根据本发明实施例的一种中间接口的调用系统的结构框图;
图11是实施本发明实施例的一种电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本申请实施例一所提供的方法实施例可以在服务器、计算机、终端或者类似的运算装置中执行。以运行在计算机上为例,图1是本发明实施例的一种中间接口的调用计算机的硬件结构框图。如图1所示,计算机10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限定。例如,计算机10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种中间接口的调用方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种中间接口的调用方法,图2是根据本发明实施例的一种中间接口的调用方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,接收来自能力需求方的能力调用请求,其中,能力调用请求携带能力标识符;
本实施例的能力标识符可以是一个ID,key等形式的标识,本实施例的能力为一个功能、功能集、功能引擎等,如文件脱壳能力,安全防护引擎(包括病毒查杀,防渗透,补丁漏洞)等。能力需求方也是业务集成方,用于完成具体的功能业务,而一个业务可能需要调用多个能力。
步骤S204,根据能力标识符匹配目标接口指针,其中,目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;
本实施例的接口实现文件可以是一个dll(动态链接库,是Dynamic LinkLibrary)文件,设置在一个软件或者是设备中。本实施例的接口实现文件可以分布在不同的网络和不同设备中,又不同的软件配置,或者由同一个产品(软件或者平台)配置,如同一个产品包括客户端和服务器端的功能,客户端可以作为能力需求方,服务器可以作为能力提供方。
本实施例的DLL文件由DOS头,PE标识、PE头,节表,至少一个节内容及一些为了内存对齐而填充的字节,各个节内容可能是代码,也可能是数据或者符号等,具体内容可根据节的属性等因素决定。DLL文件最开始的位置就是一个DOS头。DOS头部是由IMAGE_DOS_HEADER结构体来定义的,IMAGE_DOS_HEADER结构体的大小为64B,它最后一个成员elfanew的值决定了NT头(PE标识和PE头)在PE文件中的偏移。
能力需求方在执行DLL文件时,无需将其复制到程序文件(EXE)中,而是在程序运行时由系统动态加载到内存中供程序调用,只需载入一次动态库,能力需求方所在设备中的其他程序可以得到内存中相同的动态库(DLL文件)的副本,因此可以节省内存。当设备运行某一个程序时,相应的DLL文件就会被处理器调用,一个应用程序可使用多个DLL文件,一个DLL文件也可以被多个应用程序使用,在能力需求方所在的设备可以实现DLL文件共享。
步骤S206,将目标接口指针反馈给能力需求方。
可选的,还可以根据需求将业务集成接口调用模块、云端能力配套的服务或下载接口、接口使用文档及配套实例反馈给能力需求方。
通过上述步骤,接收来自能力需求方的能力调用请求,然后根据所述能力标识符匹配目标接口指针,最后将所述目标接口指针反馈给所述能力需求方。能力需求方不关心调用的模块对象是谁,只关心是否具备这个能力,可以使结构比较松散,上层不必关心底层是如何实现的,代码和逻辑分开,将输出能力封装成简单易用的接口,简化了需要各种能力的业务集成方的集成难度。解决了相关技术中代码和逻辑耦合导致业务集成难度高的技术问题,对于各种大型的软件,也能快速调用和流程运行。
本实施例的方案在整个网络的逻辑构架中应用在中间层,能力需求方(业务集成方)应用在上层,能力提供方应用在下层。除此之外,中间层也可以是能力需求方,即实现本申请能力的调用。在根据能力标识符匹配目标接口指针之前,还包括:根据能力标识符识别能力类型,其中,所述能力标识符用于表征所述目标能力的属性信息;在能力类型为外部能力时,确定根据能力标识符匹配目标接口指针;在能力类型为内部能力时,调用与内部能力对应的内部接口,其中,内部能力通过集成在本地的功能模块实现。本实施例的外部能力为安全检测能力,内部能力为文件传输能力。
在本实施例中,外部能力可以但不限于为:安全防护能力(如防火墙,病毒查杀)、静态特征扫描能力(如,文件扫描,报文扫描等)、文件格式误别能力、脱壳能力。内部能力为一些基础能力,可以但不限于为:文件上传、文件下载、日志相关等能力。
在本实施例的一个实施方式中,根据能力标识符匹配目标接口指针包括:
S11,在EntManager.dll文件中导出CreateEngObject函数;
S12,通过调用CreateEngObject函数获取IEngFactory接口指针;
S13,调用IEngFactory接口指针的QueryObject函数,匹配得到目标接口指针。目标接口指针的对象为实现目标能力的接口实现文件。
在本实施例的一个实施方式中,在根据能力标识符匹配目标接口指针之前,方法还包括:导出CreateClientObject函数;通过CreateClientObject函数获取IEngClient接口指针;通过调用IEngClient接口指针设置实例指针,并配置与实例指针对应的指针接口。
本实施例除了接收来自上层的能力需求方的能力调用请求之外,中间层本身也可以调用外部(网络构架的上层或下层)等业务复用方的能力,以完成中间层的相关功能,包括:确定本地业务需求;根据本地业务需求调用外部接口;通过外部接口的网络访问通道获取与本地业务需求对应的目标文件。
可选的,本地业务需求可以是更新请求,配置请求等。为了适应业务使用方的各类不同的使用场景,涉及到网络访问、上传或下载的地方,在中间层间中并不缺省实现对应的网络访问通道,而是通过提供网络通道设置接口让业务集成方将适合它们自身业务场景的网络访问通道设置到中间层复用。
图3是本发明实施例中间层的网络构架图,网络构架包括:统一入口调用层、能力输出接口层、能力实现适配层。每一层会由一个或多个实现文件组成,其中,
统一入口调用层:是所有能力集成方的使用入口,集成方需求通过这个层导出的IEngFactory接口,才能进一步获取到集成目标能力对应的接口。这样的设计是为了降低集成难度,通过调用层,集成方无论要使用我们输出的任何能力,都只需要知道调用层的文件及使用方式,就可以获得对应的能力接口了。不必进一步知道这个能力对应的实现文件是那些。统一入口调用层在EntManager.dll文件中实现,该模块会导出一个CreateEngObject函数,装载DLL通过调用这个函数,可以获取到IEngFactory接口指针,通过调用IEngFactory接口指针的QueryObject函数,可以进一步获取到我们输出的所有能力的对应使用接口。
能力输出接口层:将能力封装成简单易用的接口,将各能力提供团队的实现细节与业务集成方隔离,让他们使用的能力时,并不需求了解太多能力实现对应的细节。能力输出接口层的模块,导出一个CreateClientObject函数,dll被装载之后,通过这个导出函数,可以获取到IEngClient接口指针,通过调用这个指针的函数,可以将统一入口调用层的实例指针设置入去,以便在这些模块中获取其他能力的接口使用。图4是本发明实施例能力输出接口层的查找流程图。
能力适配实现层:这个层里的文件,主要是要将内部各组提供的能力,适配转换成可按照输出接口使用。对于各输出能力的适配实现模块,主要做一些参数转换或运营信息收集等相关工作,另外,在这层里,还会包括客户端自己实现的输出能力实现模块,如通用打点模块、样本上传等能力的具体实现。能力适配实现层的模块必须通过导出接口或导出函数的方式支持将统一入口调用层的实例指针设置入去,以便在模块中使用其他能力。
图5是本发明实施例的各层模块之间的调用关系示意图,其中,引擎实现层,用于实现引擎能力,相当于能力输出接口层,包括各种能力模块,其中,天狗输出模块为一个安全防护引擎,脱壳输出模块用于提供文件脱壳能力。
图6是本发明实施例集成能力的通用流程图,针对不同的能力,前几步操作对所有集成方都一样,我们会通过事先准备好的Helper.cpp类,在实例代码中提供给使用者,让使用者更容易使用能力。下面对各个能力的调用进行举例说明:
图7是本发明实施例外部调用打点功能的流程图,实现流程包括:从EngManager.dll中获取IEngFactory的指针;设置日志上传时使用的网络回调函数;通过IEngFactory的QueryObjert的函数拿到IEngDASLog的指针对象;通过IEngDASLog的指针对象去添加需要上报的日志。
图8是本发明实施例内部使用打点功能的流程图,即中间层内部,实现流程如下:从内部拿到IEntSerivce的指针对象;通过IEntSerivce的QueryClientObject函数拿到IEngDASLog的指针对象;通过IEngDASLog的指针对象去添加需要上报的日志。本实施例的应用场景包括:外部集成方使用文件上传功能时,外部集成方使用监控引擎时,外部集成方使用文件格式识别功能时,外部集成方使用脱壳功能时,外部集成方使用升级功能时。
在本实施例的方案中,还定义了中间层各个接口。能力输出接口层相关接口定义包括:
内部使用接口:
IEngService接口:由于输出接口层及更下层的能力适配层的实现过程中,都有可能需要使用其他能力模块接口,或者在某些关键任务完成之后,需要发送消息通知统一入口调用层,所以定义了IEngService接口,用它的实例指来代表调用层实例,并在当每一个能力输出接口层的dll初始化时设置给模块,以便后续需求时使用。
IEngClient接口:每一个能力输出接口层的dll,都必须导出一个CreateClientObject函数,dll被装载之后,通过这个导出函数,可以获取到IEngClient接口,通过调用IEngClient接口的函数,完成初始化及环境参数设置等工作。
输出能力对应的接口:
每一个接口代表着一个输出的能力,外部能力使用者可以通过调用IEngFactory接口指针的QueryObject函数获取,内部模块中则可以通过IEngService的QueryClientObject获取。
内部使用的日志上传输出接口IDASlogInn(外部使用者不会看到这个接口)和外部通用打点能力接口IEngDASlog:展开源码
内部使用的文件上传输出接口IFileUploadInn和外部样本上传能力接口IFileUpload。展开源码
能力适配实现层接口定义包括:
能力适配实现层如何能使用其他能力可以通过两种方式来实现:
方式一:能力适配实现层的DLL必须支持下面的接口:
BOOL CreateObject(const XCHAR*lpKey,void**pObjet);
而且pObjet对应的对象必须从IBetweenModule继承。
方式二:支持导出函数SetEngService。
在本实施例的一个应用场景中,有两个产品(同一个终端,或者是不同终端安装的软件或操作系统),产品A和产品B,产品A的安装目录为C:\A目录,产品B的安装目录为C:\B目录,它们同时都通过中间层使用我们的输出能力,则在产品A和B的安装目录下面,都需要有一个子目录来存放一份中间层模块的文件,目录名可以任意,在这里假设都使用NewEngine目录来存放,则:
对于产品A,则中间层模块文件存放在C:\A\NewEngine目录当中,升级时产品A应该通过它们自己的下载升级通道将中间层模块文件下载并更新C:\A\NewEngine目录下的相关文件。
对于产品B,则中间层模块文件存放在C:\B\NewEngine目录当中,升级时产品B应该通过它们自己的下载升级通道将中间层模块文件下载并更新C:\B\NewEngine目录下的相关文件。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种中间接口的调用装置,系统,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图9是根据本发明实施例的一种中间接口的调用装置的结构框图,应用在客户端,如图9所示,该装置包括:接收模块90,匹配模块92,反馈模块94,其中,
接收模块90,用于接收来自能力需求方的能力调用请求,其中,所述能力调用请求携带能力标识符;
匹配模块92,用于根据所述能力标识符匹配目标接口指针,其中,所述目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;
反馈模块94,用于将所述目标接口指针反馈给所述能力需求方。
可选的,所述装置还包括:识别模块,用于在所述匹配模块根据所述能力标识符匹配目标接口指针之前,根据所述能力标识符识别能力类型,其中,所述能力标识符用于表征所述目标能力的属性信息;处理模块,用于在所述能力类型为外部能力时,确定根据所述能力标识符匹配目标接口指针;在所述能力类型为内部能力时,调用与所述内部能力对应的内部接口,其中,所述内部能力通过集成在本地的功能模块实现。
可选的,所述匹配模块包括:导出单元,用于在EntManager.dll文件中导出CreateEngObject函数;获取单元,用于通过调用所述CreateEngObject函数获取IEngFactory接口指针;匹配单元,用于调用所述IEngFactory接口指针的QueryObject函数,匹配得到所述目标接口指针。
可选的,所述装置还包括:导出模块,用于在所述匹配模块根据所述能力标识符匹配目标接口指针之前,导出CreateClientObject函数;第一获取模块,用于通过所述CreateClientObject函数获取IEngClient接口指针;配置模块,用于通过调用所述IEngClient接口指针设置实例指针,并配置与所述实例指针对应的指针接口。
可选的,所述目标能力包括以下至少之一:安全防护能力、静态特征扫描能力、文件格式误别能力、脱壳能力。
可选的,所述装置还包括:确定模块,用于确定本地业务需求;调用模块,用于根据所述本地业务需求调用外部接口;第二获取模块,用于通过所述外部接口的网络访问通道获取与所述本地业务需求对应的目标文件。
图10是根据本发明实施例的一种中间接口的调用系统的结构框图,如图10所示,该系统包括:第一终端100,第二终端102,第三终端104,其中,所述第一终端,包括如上述实施例所描述的装置;所述第二终端,用于提供所述目标能力,为能力集成终端;所述第三终端,用于向所述第一终端发送能力调用请求,为能力调用终端。其中,第一终端100,第二终端102,第三终端104可以是同一个终端,也可以是其中的两个是同一个终端,或者是不同的终端。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,接收来自能力需求方的能力调用请求,其中,所述能力调用请求携带能力标识符;
S2,根据所述能力标识符匹配目标接口指针,其中,所述目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;
S3,将所述目标接口指针反馈给所述能力需求方。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,接收来自能力需求方的能力调用请求,其中,所述能力调用请求携带能力标识符;
S2,根据所述能力标识符匹配目标接口指针,其中,所述目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;
S3,将所述目标接口指针反馈给所述能力需求方。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
图11是实施本发明实施例的一种电子设备的结构框图。如图11所示,包括处理器41和用于存储数据的存储器42,通过通信总线44连接,还包括与通信总线44连接的通信接口43,与其他部件或外部设备进行适配连接。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (9)
1.一种中间接口的调用方法,其特征在于,应用于逻辑架构的中间层,能力需求方应用在上层,能力提供方应用在下层,所述中间层包括统一入口调用层和能力输出接口层;所述方法包括:
接收来自能力需求方的能力调用请求,其中,所述能力调用请求携带能力标识符;
在能力类型为外部能力时,根据所述能力标识符匹配目标接口指针,其中,所述目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;
其中,所述根据所述能力标识符匹配目标接口指针包括:
在EntManager.dll文件中导出CreateEngObject函数;
通过调用所述CreateEngObject函数获取IEngFactory接口指针;
调用所述IEngFactory接口指针的QueryObject函数,匹配得到所述目标接口指针;所述统一入口调用层在所述EntManager.dll文件中实现;
将所述目标接口指针反馈给所述能力需求方;
在根据所述能力标识符匹配目标接口指针之前,所述方法还包括:
利用所述能力输出接口层导出CreateClientObject函数;
通过所述CreateClientObject函数获取IEngClient接口指针;
通过调用所述IEngClient接口指针设置实例指针,并配置与所述实例指针对应的指针接口。
2.根据权利要求1所述的方法,其特征在于,在根据所述能力标识符匹配目标接口指针之前,所述方法还包括:
根据所述能力标识符识别能力类型,其中,所述能力标识符用于表征所述目标能力的属性信息;
在所述能力类型为外部能力时,确定根据所述能力标识符匹配目标接口指针;在所述能力类型为内部能力时,调用与所述内部能力对应的内部接口,其中,所述内部能力通过集成在本地的功能模块实现。
3.根据权利要求1所述的方法,其特征在于,所述目标能力包括以下至少之一:安全防护能力、静态特征扫描能力、文件格式误别能力、脱壳能力。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定本地业务需求;
根据所述本地业务需求调用外部接口;
通过所述外部接口的网络访问通道获取与所述本地业务需求对应的目标文件。
5.一种中间接口的调用装置,其特征在于,应用于逻辑架构的中间层,能力需求方应用在上层,能力提供方应用在下层,所述中间层包括统一入口调用层和能力输出接口层;所述装置包括:
接收模块,用于接收来自能力需求方的能力调用请求,其中,所述能力调用请求携带能力标识符;
匹配模块,用于根据所述能力标识符匹配目标接口指针,其中,所述目标接口指针指向实现目标能力的接口实现文件,所述能力标识符与所述目标能力对应;
其中,所述匹配模型具体执行:在EntManager.dll文件中导出CreateEngObject函数;
通过调用所述CreateEngObject函数获取IEngFactory接口指针;
调用所述IEngFactory接口指针的QueryObject函数,匹配得到所述目标接口指针;所述统一入口调用层在所述EntManager.dll文件中实现;
反馈模块,用于将所述目标接口指针反馈给所述能力需求方;
匹配模块,用于在所述根据所述能力标识符匹配目标接口指针的步骤之前,利用能力输出接口层导出CreateClientObject函数;通过CreateClientObject函数获取IEngClient接口指针;通过调用IEngClient接口指针设置实例指针,并配置与实例指针对应的指针接口。
6.一种中间接口的调用系统,其特征在于,包括:第一终端,第二终端,第三终端,其中,
所述第一终端,包括如权利要求5所述的装置;
所述第二终端,用于提供目标能力;
所述第三终端,用于向所述第一终端发送能力调用请求。
7.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至4任一项中所述的方法。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至4任一项中所述的方法。
9.一种计算机程序产品,包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,其特征在于,当该程序指令被计算机执行时,使该计算机执行权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010272902.6A CN113515389B (zh) | 2020-04-09 | 2020-04-09 | 中间接口的调用方法及装置、系统、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010272902.6A CN113515389B (zh) | 2020-04-09 | 2020-04-09 | 中间接口的调用方法及装置、系统、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113515389A CN113515389A (zh) | 2021-10-19 |
CN113515389B true CN113515389B (zh) | 2024-03-01 |
Family
ID=78060406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010272902.6A Active CN113515389B (zh) | 2020-04-09 | 2020-04-09 | 中间接口的调用方法及装置、系统、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113515389B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114461293B (zh) * | 2021-12-21 | 2024-04-30 | 奇安信科技集团股份有限公司 | 配置文件式开放数据获取方法、装置及电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511197A (en) * | 1992-11-13 | 1996-04-23 | Microsoft Corporation | Method and system for network marshalling of interface pointers for remote procedure calls |
US5530858A (en) * | 1993-04-01 | 1996-06-25 | Intel Corporation | Method and apparatus for background processing for PCMCIA card services |
US6292843B1 (en) * | 1998-01-16 | 2001-09-18 | International Business Machines Corporation | Quick loading of run time dynamic link library for OS/2 |
CN1971509A (zh) * | 2006-12-13 | 2007-05-30 | 上海科泰世纪科技有限公司 | 构件化软件系统基于设备接口实现二进制兼容运行的方法 |
CN108196917A (zh) * | 2017-12-27 | 2018-06-22 | 北京交通大学 | 重载列车动力学仿真软件的数据接口适配方法 |
CN109117664A (zh) * | 2018-07-19 | 2019-01-01 | 北京明朝万达科技股份有限公司 | 应用程序的访问控制方法和装置 |
CN109711999A (zh) * | 2018-11-14 | 2019-05-03 | 平安科技(深圳)有限公司 | 基于中间平台的出单方法及装置、计算机设备、存储介质 |
CN109711169A (zh) * | 2018-05-04 | 2019-05-03 | 360企业安全技术(珠海)有限公司 | 系统文件的防护方法及装置、系统、存储介质、电子装置 |
CN109784503A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 业务运维方法、装置、设备及可读存储介质 |
CN109857569A (zh) * | 2018-11-08 | 2019-06-07 | 深圳壹账通智能科技有限公司 | 接口调用处理方法及装置、存储介质、计算机设备 |
CN110221840A (zh) * | 2019-06-05 | 2019-09-10 | 百度在线网络技术(北京)有限公司 | 应用程序的功能实现方法及装置、设备及存储介质 |
CN110244977A (zh) * | 2019-05-21 | 2019-09-17 | 深圳壹账通智能科技有限公司 | 定制化软件生成方法、系统、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098316B2 (en) * | 2008-09-22 | 2015-08-04 | International Business Machines Corporation | Routing function calls to specific-function dynamic link libraries in a general-function environment |
US20120036569A1 (en) * | 2010-04-05 | 2012-02-09 | Andrew Cottrell | Securing portable executable modules |
US8910136B2 (en) * | 2011-09-02 | 2014-12-09 | International Business Machines Corporation | Generating code that calls functions based on types of memory |
GB2543813B (en) * | 2015-10-30 | 2019-05-29 | F Secure Corp | Improved malware detection |
US10360005B2 (en) * | 2016-10-24 | 2019-07-23 | International Business Machines Corporation | Local function call tailoring for function pointer calls |
US11200070B2 (en) * | 2018-08-03 | 2021-12-14 | International Business Machines Corporation | Dynamic-link library usage based on memory size |
-
2020
- 2020-04-09 CN CN202010272902.6A patent/CN113515389B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511197A (en) * | 1992-11-13 | 1996-04-23 | Microsoft Corporation | Method and system for network marshalling of interface pointers for remote procedure calls |
US5530858A (en) * | 1993-04-01 | 1996-06-25 | Intel Corporation | Method and apparatus for background processing for PCMCIA card services |
US6292843B1 (en) * | 1998-01-16 | 2001-09-18 | International Business Machines Corporation | Quick loading of run time dynamic link library for OS/2 |
CN1971509A (zh) * | 2006-12-13 | 2007-05-30 | 上海科泰世纪科技有限公司 | 构件化软件系统基于设备接口实现二进制兼容运行的方法 |
CN108196917A (zh) * | 2017-12-27 | 2018-06-22 | 北京交通大学 | 重载列车动力学仿真软件的数据接口适配方法 |
CN109711169A (zh) * | 2018-05-04 | 2019-05-03 | 360企业安全技术(珠海)有限公司 | 系统文件的防护方法及装置、系统、存储介质、电子装置 |
CN109117664A (zh) * | 2018-07-19 | 2019-01-01 | 北京明朝万达科技股份有限公司 | 应用程序的访问控制方法和装置 |
CN109857569A (zh) * | 2018-11-08 | 2019-06-07 | 深圳壹账通智能科技有限公司 | 接口调用处理方法及装置、存储介质、计算机设备 |
CN109711999A (zh) * | 2018-11-14 | 2019-05-03 | 平安科技(深圳)有限公司 | 基于中间平台的出单方法及装置、计算机设备、存储介质 |
CN109784503A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 业务运维方法、装置、设备及可读存储介质 |
CN110244977A (zh) * | 2019-05-21 | 2019-09-17 | 深圳壹账通智能科技有限公司 | 定制化软件生成方法、系统、电子设备及存储介质 |
CN110221840A (zh) * | 2019-06-05 | 2019-09-10 | 百度在线网络技术(北京)有限公司 | 应用程序的功能实现方法及装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113515389A (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI493465B (zh) | 分配式應用程式堆疊與部署方法及系統 | |
RU2004119554A (ru) | Система и способ идентификации и доступа к услугам сети | |
CN110177154B (zh) | 一种文件交互处理方法、装置及系统 | |
CN109495433A (zh) | 数据下载方法和装置、存储介质及电子装置 | |
CN107770269A (zh) | 一种服务响应方法及其终端 | |
CN113515389B (zh) | 中间接口的调用方法及装置、系统、存储介质、电子装置 | |
CN108989422A (zh) | 一种报文及文件处理方法及系统 | |
CN113312083B (zh) | 应用生成方法、装置及设备 | |
CN103368897B (zh) | 传递应用程序的方法、装置及系统 | |
CN111367685B (zh) | 接口调用的方法及装置、计算机设备、存储介质 | |
CN101667139A (zh) | 基于集合类型对象的服务程序调用方法、装置及系统 | |
CN106936660B (zh) | 数据采集方法和装置 | |
CN114637549B (zh) | 基于服务网格的应用的数据处理方法、系统和存储介质 | |
CN112489770B (zh) | Dicom文件的传输系统及方法、装置 | |
CN104410679B (zh) | 分享文件/文件夹的提取方法、客户端、服务器以及系统 | |
CN113315801B (zh) | 存储区块链数据的方法和系统 | |
CN111367686A (zh) | 业务接口的调用方法及装置、计算机设备、存储介质 | |
CN109451016B (zh) | 数据下载管理方法、系统及相关设备 | |
CN113409425B (zh) | 一种动画文件的输出方法和装置 | |
CN110858846A (zh) | 资源配置方法、装置和存储介质 | |
CN115269117A (zh) | 一种资源创建方法、装置、计算机设备及存储介质 | |
CN113934591A (zh) | 数据监听方法及装置、存储介质、电子装置 | |
CN113434504B (zh) | 死亡医学证明表的存储方法和装置、存储介质及电子装置 | |
CN115469961A (zh) | 容器组的创建方法和装置、电子设备和存储介质 | |
CN107483424B (zh) | 远程过程调用协议的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |