CN110795128A - 一种程序漏洞修复方法、装置、存储介质及服务器 - Google Patents
一种程序漏洞修复方法、装置、存储介质及服务器 Download PDFInfo
- Publication number
- CN110795128A CN110795128A CN201911047899.1A CN201911047899A CN110795128A CN 110795128 A CN110795128 A CN 110795128A CN 201911047899 A CN201911047899 A CN 201911047899A CN 110795128 A CN110795128 A CN 110795128A
- Authority
- CN
- China
- Prior art keywords
- dynamic library
- updated
- updated dynamic
- target function
- function
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 230000008439 repair process Effects 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 124
- 238000009434 installation Methods 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种程序漏洞修复方法、装置、存储介质及服务器。其中方法包括:当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数;自适应地加载所述更新动态库;基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接,其中,所述跳转连接用于在执行任一所述目标函数时调用所述更新动态库,以对所述目标函数进行修复。本实施例的漏洞修复方法不需要服务器进行重启,同时也不存在对脚本逻辑的修改,操作简单便捷,避免了对业务逻辑的中断以及程序运行的影响。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种程序漏洞修复方法、装置、存储介质及服务器。
背景技术
随着计算机技术的不断发展,网络游戏也迅速发展,被广大用户所接受。
对于游戏服务器集群,如果系统中存在漏洞,网络游戏在运行时就可能出现故障,导致网络游戏运行错误。目前,对游戏服务器集群中漏洞的修复一般采用如下几种方式:1,设置共享内存的方式将老进程数据保存,然后停机维护,更换应用程序后重新启动新进程,新进程从共享内存中读取老进程数据,使得进程业务得以延续。这种方式使用了共享内存,对编程工作带来了很多限制,非常影响开发效率,而且重新启动过程中会造成业务短时间暂停,影响用户体验。2,使用脚本编写逻辑,因为脚本文件是解释执行的,在修复漏洞的时候把新的脚本文件重新加载到进程中,达到修复漏洞的目的,这种方案使得业务代码大部分都放在了脚本中,对大型项目非常不适合,极大的增加了项目可维护性和扩展的难度。
目前的服务器以及服务器集群的程序漏洞修复方式存在如下问题:影响开发效率、导致当前运行业务发生中断,以及增大维护难度。
发明内容
本发明提供一种程序漏洞修复方法、装置、存储介质及服务器,以实现简化消除服务器修复漏洞过程,以及消除服务器修复漏洞导致的业务中断
第一方面,本发明实施例提供了一种程序漏洞修复方法,包括:
当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数;
自适应地加载所述更新动态库;
基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接,其中,所述跳转连接用于在执行任一所述目标函数时调用所述更新动态库,以对所述目标函数进行修复。
第二方面,本发明实施例还提供了一种程序漏洞修复装置,包括:
目标函数确定模块,用于当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数;
动态库加载模块,用于自适应地加载所述更新动态库;
目标函数修复模块,用于基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接,其中,所述跳转连接用于在执行任一所述目标函数时调用所述更新动态库,以对所述目标函数进行修复。
第三方面,本发明实施例还提供了一种电子设备,该电子设备可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例所提供的程序漏洞修复方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的程序漏洞修复方法。
本发明实施例的技术方案,通过在检测到补丁目录文件包括新的动态库时,将更新动态库进行适应性加载,并通过建立更新动态库与目标函数的跳转连接,实现在不影响程序运行的前提下,对至少一个目标函数进行修复,本实施例的漏洞修复方法不需要服务器进行重启,同时也不存在对脚本逻辑的修改,操作简单便捷,避免了对业务逻辑的中断以及程序运行的影响。
附图说明
图1为本发明实施例一提供的一种程序漏洞修复方法的流程示意图;
图2是本发明实施例一提供的一种漏洞修复示意图;
图3是本发明实施例二提供的一种程序漏洞修复方法的流程示意图;
图4是本发明实施例三提供的一种程序漏洞修复装置的结构示意图;
图5为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种程序漏洞修复方法的流程示意图,本实施例可适用于对服务器集群进行程序漏洞修复的情况,该方法可以由本发明实施例提供的程序漏洞修复装置执行,程序漏洞修复装置可通过软件和/或硬件的方式实现,可集成服务器集群中的至少一个服务器中,在具体包括如下步骤:
S110、当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数。
S120、自适应地加载所述更新动态库。
S130、基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接。
本实施例中,动态库包括用于对服务器的程序漏洞进行修复的至少一个函数,其中,至少一个函数是根据漏洞原因确定的,将上述至少一种函数进行打包,生成动态库,并将动态库存在至服务器中。
可选的,服务器接收外部输入的更新动态库,将更新动态库存储至补丁目录文件中;基于更新动态库的标识信息更新补丁目录文件中的动态库索引,其中,动态库索引包括各动态库的标识信息和各动态库在补丁目录文件中的存储位置。其中,补丁目录文件中设置有动态库索引,该动态库索引包括各动态库的标识信息,动态库的标识信息可以是动态库的名称以及版本信息。当服务器接收到更新动态库,根据该更新动态库的标识信息中的名称在动态库索引中确定补丁目录文件中是否存在相同名称的动态库,若否,则将更新动态库进行存储,并将该更新动态库的标识信息添加到动态库索引中,若根据动态库索引确定包括具有相同名称,不同版本信息的动态库时,基于更新动态库替换补丁目录文件中的上述具有相同名称,不同版本信息的动态库。示例性的,动态库索引中包括动态库A.1.0,更新动态库为动态库A.2.0,则基于动态库A.2.0替换动态库A.1.0,同时更新动态库索引。
可选的,检测到补丁目录文件中存在动态库更新,包括:根据预设检测频率,对动态库索引进行更新搜索,当动态库索引中存在新的标识信息,或者,存在标识信息更新时,确定补丁目录文件中存在动态库更新。本实施例中,预设检测频率可以是1次/小时,对动态库索引进行自动地更新搜索,当检测到更新动态库,对更新动态库进行加载和安装,以及时对程序漏洞进行修复,降低了人为进行动态库搜索以及修复的工作量。可选的,服务器可以是存储上一次进行更新搜索动态库索引,将上一次的动态库索引与当前动态库索引进行比对,确定是否存在更新的动态库标识信息。可选的,若动态库进行加载安装后,对动态库设置安装标识,即在动态库索引中设置安装标识,对动态库索引进行更新搜索可以是搜索是否存在未设置安装标识的动态库,若是,则确定存在更新动态库。确定补丁目录文件中存在更新动态库时,基于动态库索引中更新动态库的存储位置,读取该更新动态库。
可选的,更新动态库包括:动态库的标识信息、用于修复的至少一个函数和被修复的至少一个函数。需要说明的是,更新动态库还可以是包括动态库的标识信息、用于修复的至少一个函数和被修复的至少一个函数的描述信息。相应的,根据更新动态库确定待修复的至少一个目标函数,包括:根据更新动态库中被修复的至少一个函数的名称确认程序中的目标函数。程序中与更新动态库中被修复的函数对应的目标函数可以是一个或多个,目标函数为程序中即将被更新动态库中用于修复函数替换的原函数。本实施例中,可基于更新动态库同时修复多个目标函数中的漏洞。示例性的,程序A包括进程1、进程2和进程3,其中,进程1包括线程1,进程2包括线程2和线程3,进程3包括线程4,每一线程中可以包括多个函数。对于更新动态库中的被修复的至少一个函数(例如函数M),根据被修复函数的名称通过进程查找程序中函数M的位置,函数M可以是同时存在与多个线程中,其中,被修复函数的名称可以通过更新动态库中被修复的至少一个函数的描述信息得到。
可选的,自适应地加载更新动态库,包括:根据更新动态库所占用的内存空间,自适应的确定更新动态库的加载位置;在更新动态库的加载位置,加载更新动态库。本实施例中,对更新动态库进行加载时,不对更新动态库的记载位置进行限定,根据服务器内存的当前使用状态,自适应地确定该更新动态库的加载位置。具体的,基于更新动态库所占用的内存空间,在服务器内存中确定与更新动态库所占用的内存空间相匹配的加载位置,对该更新动态库进行加载,提高了动态库加载的灵活性,避免固定的加载位置空间不足时,对漏洞修复的影响。
当更新动态库记载完成时,对至少一个目标函数进行漏洞修复。具体的,根据程序中目标函数的位置,建立目标函数与更新动态库的跳转连接,跳转连接用于在执行任一目标函数时调用更新动态库,以对目标函数进行修复。具体的,通过跳连接执行更新动态库中用于修复的函数,不在执行程序中的原函数,上述修复方式无需对线程以及服务器进行重启,因此业务逻辑不会产生中断,进而不会影响程序的运行。示例性的,在游戏程序的运行过程时,出现程序漏洞,当检测到补丁目录文件中存在更新动态库时,基于上述方式对更新动态库进行加载和安装,实现在不影响游戏程序运行的前提下,对出现漏洞的至少一个目标函数进行修复,避免漏洞修复对游戏用户的影响。示例性的,参见图2,图2是本发明实施例一提供的一种漏洞修复示意图。
其中,对于程序中的每一个目标函数,跳转连接包括在目标函数的位置之前,目标函数指向更新动态库的第一跳转连接,和更新动态库中用于修复的函数之后,更新动态库指向目标函数之后位置的第二跳转连接。
本实施例的技术方案,通过在检测到补丁目录文件包括新的动态库时,将更新动态库进行适应性加载,并通过建立更新动态库与目标函数的跳转连接,实现在不影响程序运行的前提下,对至少一个目标函数进行修复,本实施例的漏洞修复方法不需要服务器进行重启,同时也不存在对脚本逻辑的修改,操作简单便捷,避免了对业务逻辑的中断以及程序运行的影响。
在上述实施例的基础上,在基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接之后,还包括:在补丁目录文件中设置更新动态库的安装标识,该安装标识用于表示该更新动态库已被安装。当任一进程重启时,根据所述安装标识确定重启进程待安装的动态库,加载并安装所述待安装的动态库。当进程中的任意线程挂掉时,对进程进行重启,根据补丁目标文件中动态库的安装标识确定安装于重启进程的动态库。其中,安装标识可以是写入动态库的名称中,包括已经安装的该动态库的进程的标识信息,例如进程的标识信息可以是进程名称。对上述重启进程对应的动态库进行重新加载,并重新建立重启进程中目标函数与对应动态库的跳转连接。本实施例的技术方案,在任一进程重启时,自动确定对重启进程中目标函数进行修复的动态库,并重新加载和安装,避免线程重启时,继续执行存在漏洞的原程序的情况,实现对漏洞的全方位修复。
实施例二
图3是本发明实施例二提供的一种程序漏洞修复方法的流程示意图,在上述实施例的基础上进行了优化,该方法具体包括:
S210、当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数。
S220、自适应地加载所述更新动态库。
S230、对所述更新动态库进行校验。
S240、当校验失败时,卸载所述更新动态库,并生成所述更新动态库的提示信息。
S250、当校验成功时,将包括所述目标函数进程中各个线程的锁变量设置为锁定状态,基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接,将包括目标函数进程中各个线程的锁变量调节为解锁状态。
其中,跳转连接用于在执行任一目标函数时调用更新动态库,以对目标函数进行修复。
本实施例中,在更新动态库加载完成后,对加载的更新动态库进行校验,确定更新动态库是否与待修复的目标函数匹配,若校验成功,基于加载的更新动态库对目标函数进行修复,若校验失败,则卸载该更新动态库。
可选的,对更新动态库进行校验,包括:判断更新动态库中携带的版本号与系统程序的版本号是否一致,若版本号不一致时,确定更新动态库不适用于服务器的程序,确定校验失败。若版本号一致,确定更新动态库适用于服务器的程序,确定校验成功。可选的,对更新动态库进行校验,还包括:判断系统程序中是否包括更新动态库中被修复的至少一个函数。更新动态库包括被修复的至少一个函数,或者至少一个函数的描述信息,当系统程序不包括被修复的函数,则确定校验失败。
本实施例中,程序中每一个线程均设置有锁变量,该所变量用于控制线程是否执行,其中,当锁变量处于锁定状态时,不执行该线程,当锁变量的锁定状态释放,即处于解锁状态时,执行该线程。当对目标函数进行修复时,将包括目标函数的进程中各个线程的锁变量设置为锁定状态,建立所述至少一个目标函数与所述更新动态库的跳转连接,并在跳转连接建立完成后,将包括目标函数的进程中各个线程锁变量设置为解锁状态。
本实施例中,服务器运行64位多核多线程程序,通过在线程处于锁定状态下,对目标函数的漏洞进行修复,以保证线程安全,避免漏洞修复过程中,原函数被执行。
本实施例的技术方案,通过对更新动态库的校验,提高了漏洞修复的精确度,通过在线程的锁定状态下进行漏洞修复,提高了漏洞修复过程中线程的安全性。
实施例三
图4是本发明实施例三提供的一种程序漏洞修复装置的结构示意图,该装置包括目标函数确定模块310、动态库加载模块320和目标函数修复模块330,其中:
目标函数确定模块310,用于当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数;
动态库加载模块320,用于自适应地加载所述更新动态库;
目标函数修复模块330,用于基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接,其中,所述跳转连接用于在执行任一所述目标函数时调用所述更新动态库,以对所述目标函数进行修复。
可选的,该装置还包括:
动态库存储模块,用于接收外部输入的更新动态库,将所述更新动态库存储至所述补丁目录文件中;
动态库索引更新模块,用于基于所述更新动态库的标识信息更新所述补丁目录文件中的动态库索引,其中,所述动态库索引包括各动态库的标识信息和各动态库在所述补丁目录文件中的存储位置。
可选的,所述装置还包括:
动态库搜索模块,用于根据预设检测频率,对所述动态库索引进行更新搜索,当动态库索引中存在新的标识信息,或者,存在标识信息更新时,确定补丁目录文件中存在动态库更新。
可选的,更新动态库包括:动态库的标识信息、用于修复的至少一个函数和被修复的至少一个函数。
可选的,目标函数确定模块310用于:
遍历程序中的各个函数,根据所述被修复的至少一个函数确定目标函数。
可选的,动态库加载模块320用于:
根据所述更新动态库所占用的内存空间,自适应的确定所述更新动态库的加载位置;
在所述更新动态库的加载位置,加载所述更新动态库。
可选的,所述装置还包括:
第一锁变量调节模块,用于在所述建立所述至少一个目标函数与所述更新动态库的跳转连接之前,将包括所述目标函数进程中各个线程的锁变量调节为锁定状态;
第二锁变量调节模块,用于在所述建立所述至少一个目标函数与所述更新动态库的跳转连接之后,将包括所述目标函数进程中各个线程的锁变量调节为解锁状态。
可选的,所述装置还包括:
动态库校验模块,用于在所述自适应地加载所述更新动态库之后,对所述更新动态库进行校验,当校验失败时,卸载所述更新动态库,并生成所述更新动态库的提示信息。
可选的,动态库校验模块用于:判断所述更新动态库中携带的版本号与系统程序的版本号是否一致;和/或,判断所述系统程序中是否包括所述更新动态库中被修复的至少一个函数。
可选的,所述装置还包括:
安装标识设置模块,用于在所述建立所述至少一个目标函数与所述更新动态库的跳转连接之后,在所述补丁目录文件中设置所述更新动态库的安装标识;
动态库确定模块,用于当任一线程重启时,根据重启进程包括的函数,遍历所述补丁目录文件中各设置有所述安装标识的动态库,确定所述重启进程对应的动态库;
动态库安装模块,用于加载并按照所述重启进程对应的动态库,其中,所述重启进程对应的动态库用于对所述重启进程中目标函数进行修复。
本发明实施例提供的程序漏洞修复装置可执行本发明任意实施例所提供的程序漏洞修复方法,具备执行程序漏洞修复方法相应的功能模块和有益效果。
实施例四
图5为本发明实施例四提供的一种电子设备的结构示意图,如图5所示,该电子设备包括存储器410、处理器420、输入装置430和输出装置440。电子设备中的处理器420的数量可以是一个或多个,图5中以一个处理器420为例;电子设备中的存储器410、处理器420、输入装置430和输出装置440可以通过总线或其它方式连接,图5中以通过总线450连接为例。
存储器410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的程序漏洞修复方法对应的程序指令/模块。处理器420通过运行存储在存储器410中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的程序漏洞修复方法。
存储器410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种程序漏洞修复方法,该方法包括:
当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数;
自适应地加载所述更新动态库;
基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接,其中,所述跳转连接用于在执行任一所述目标函数时调用所述更新动态库,以对所述目标函数进行修复。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的程序漏洞修复方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (12)
1.一种程序漏洞修复方法,其特征在于,包括:
当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数;
自适应地加载所述更新动态库;
基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接,其中,所述跳转连接用于在执行任一所述目标函数时调用所述更新动态库,以对所述目标函数进行修复。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收外部输入的更新动态库,将所述更新动态库存储至所述补丁目录文件中;
基于所述更新动态库的标识信息更新所述补丁目录文件中的动态库索引,其中,所述动态库索引包括各动态库的标识信息和各动态库在所述补丁目录文件中的存储位置。
3.根据权利要求2所述的方法,其特征在于,所述检测到补丁目录文件中存在动态库更新,包括:
根据预设检测频率,对所述动态库索引进行更新搜索,当动态库索引中存在新的标识信息,或者,存在标识信息更新时,确定补丁目录文件中存在动态库更新。
4.根据权利要求1-3任一所述的方法,其特征在于,所述更新动态库包括:动态库的标识信息、用于修复的至少一个函数和被修复的至少一个函数,其中,所述根据更新动态库确定待修复的至少一个目标函数,包括:
根据所述更新动态库中被修复的至少一个函数的名称确认程序中的目标函数。
5.根据权利要求1所述的方法,其特征在于,所述自适应地加载所述更新动态库,包括:
根据所述更新动态库所占用的内存空间,自适应的确定所述更新动态库的加载位置;
在所述更新动态库的加载位置,加载所述更新动态库。
6.根据权利要求1所述的方法,其特征在于,所述在所述建立所述至少一个目标函数与所述更新动态库的跳转连接之前,还包括:
将包括所述目标函数的进程中各个线程的锁变量设置为锁定状态;
相应的,在所述建立所述至少一个目标函数与所述更新动态库的跳转连接之后,还包括:
将包括所述目标函数的进程中各个线程的锁变量调节为解锁状态。
7.根据权利要求1所述的方法,其特征在于,在所述自适应地加载所述更新动态库之后,还包括:
对所述更新动态库进行校验,当校验失败时,卸载所述更新动态库,并生成所述更新动态库的提示信息。
8.根据权利要求7所述的方法,其特征在于,所述对所述更新动态库进行校验,包括:
判断所述更新动态库中携带的版本号与系统程序的版本号是否一致;和/或,
判断所述系统程序中是否包括所述更新动态库中被修复的至少一个函数。
9.根据权利要求1所述的方法,其特征在于,在所述建立所述至少一个目标函数与所述更新动态库的跳转连接之后,还包括:
在所述补丁目录文件中设置所述更新动态库的安装标识;
当任一进程重启时,根据所述安装标识确定重启进程待安装的动态库,加载并安装所述待安装的动态库。
加载并按照所述重启进程对应的动态库,其中,所述重启进程对应的动态库用于对所述重启进程中目标函数进行修复。
10.一种程序漏洞修复装置,其特征在于,包括:
目标函数确定模块,用于当检测到补丁目录文件中存在动态库更新时,根据更新动态库确定待修复的至少一个目标函数;
动态库加载模块,用于自适应地加载所述更新动态库;
目标函数修复模块,用于基于加载后的所述更新动态库,建立所述至少一个目标函数与所述更新动态库的跳转连接,其中,所述跳转连接用于在执行任一所述目标函数时调用所述更新动态库,以对所述目标函数进行修复。
11.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的程序漏洞修复方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9中任一所述的程序漏洞修复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911047899.1A CN110795128B (zh) | 2019-10-30 | 2019-10-30 | 一种程序漏洞修复方法、装置、存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911047899.1A CN110795128B (zh) | 2019-10-30 | 2019-10-30 | 一种程序漏洞修复方法、装置、存储介质及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795128A true CN110795128A (zh) | 2020-02-14 |
CN110795128B CN110795128B (zh) | 2023-10-27 |
Family
ID=69442206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911047899.1A Active CN110795128B (zh) | 2019-10-30 | 2019-10-30 | 一种程序漏洞修复方法、装置、存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795128B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111399892A (zh) * | 2020-03-18 | 2020-07-10 | 深圳Tcl数字技术有限公司 | 中间件程序修复方法、装置及计算机可读存储介质 |
CN111552474A (zh) * | 2020-03-26 | 2020-08-18 | 平安医疗健康管理股份有限公司 | 执行分布式锁操作的处理方法及装置 |
CN112182590A (zh) * | 2020-11-16 | 2021-01-05 | 中国银联股份有限公司 | 一种Web应用的漏洞更新方法及装置 |
CN112486552A (zh) * | 2020-12-16 | 2021-03-12 | 深圳中清龙图网络技术有限公司 | 服务器热更新方法、装置、设备和存储介质 |
CN113110865A (zh) * | 2021-04-21 | 2021-07-13 | 北京字跳网络技术有限公司 | 一种服务器热更新方法及装置 |
CN114595461A (zh) * | 2022-02-15 | 2022-06-07 | 阿里云计算有限公司 | 一种数据处理的方法和装置 |
CN115640037A (zh) * | 2022-09-09 | 2023-01-24 | 北京畅游创想软件技术有限公司 | 程序更新方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982277A (zh) * | 2012-12-24 | 2013-03-20 | 广东威创视讯科技股份有限公司 | 一种实现嵌入式系统软件补丁的方法和系统 |
CN103744709A (zh) * | 2014-01-23 | 2014-04-23 | 华为技术有限公司 | 补丁加载方法及装置 |
CN107437029A (zh) * | 2017-08-23 | 2017-12-05 | 北京奇虎科技有限公司 | 漏洞修复方法、漏洞修复装置及服务器 |
CN109840105A (zh) * | 2018-12-24 | 2019-06-04 | 苏州蜗牛数字科技股份有限公司 | 一种不停服的热更新方法 |
CN110297643A (zh) * | 2019-06-04 | 2019-10-01 | 平安科技(深圳)有限公司 | 应用程序注入动态库的方法、装置、设备及存储介质 |
-
2019
- 2019-10-30 CN CN201911047899.1A patent/CN110795128B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982277A (zh) * | 2012-12-24 | 2013-03-20 | 广东威创视讯科技股份有限公司 | 一种实现嵌入式系统软件补丁的方法和系统 |
CN103744709A (zh) * | 2014-01-23 | 2014-04-23 | 华为技术有限公司 | 补丁加载方法及装置 |
CN107437029A (zh) * | 2017-08-23 | 2017-12-05 | 北京奇虎科技有限公司 | 漏洞修复方法、漏洞修复装置及服务器 |
CN109840105A (zh) * | 2018-12-24 | 2019-06-04 | 苏州蜗牛数字科技股份有限公司 | 一种不停服的热更新方法 |
CN110297643A (zh) * | 2019-06-04 | 2019-10-01 | 平安科技(深圳)有限公司 | 应用程序注入动态库的方法、装置、设备及存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111399892A (zh) * | 2020-03-18 | 2020-07-10 | 深圳Tcl数字技术有限公司 | 中间件程序修复方法、装置及计算机可读存储介质 |
CN111552474A (zh) * | 2020-03-26 | 2020-08-18 | 平安医疗健康管理股份有限公司 | 执行分布式锁操作的处理方法及装置 |
CN111552474B (zh) * | 2020-03-26 | 2022-03-18 | 平安医疗健康管理股份有限公司 | 执行分布式锁操作的处理方法及装置 |
CN112182590A (zh) * | 2020-11-16 | 2021-01-05 | 中国银联股份有限公司 | 一种Web应用的漏洞更新方法及装置 |
CN112486552A (zh) * | 2020-12-16 | 2021-03-12 | 深圳中清龙图网络技术有限公司 | 服务器热更新方法、装置、设备和存储介质 |
CN113110865A (zh) * | 2021-04-21 | 2021-07-13 | 北京字跳网络技术有限公司 | 一种服务器热更新方法及装置 |
CN114595461A (zh) * | 2022-02-15 | 2022-06-07 | 阿里云计算有限公司 | 一种数据处理的方法和装置 |
CN115640037A (zh) * | 2022-09-09 | 2023-01-24 | 北京畅游创想软件技术有限公司 | 程序更新方法和装置 |
CN115640037B (zh) * | 2022-09-09 | 2023-08-11 | 北京畅游创想软件技术有限公司 | 程序更新方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110795128B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795128A (zh) | 一种程序漏洞修复方法、装置、存储介质及服务器 | |
US10642596B2 (en) | Embedded device and program updating method | |
US11221838B2 (en) | Hot update method, operating system, terminal device, system, and computer-readable storage medium for a system process | |
US8443354B1 (en) | Detecting new or modified portions of code | |
EP2840492A1 (en) | Method and apparatus for modifying a computer program in a trusted manner | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN110995825B (zh) | 一种智能合约的发布方法、智能节点设备及存储介质 | |
CN113177001A (zh) | 一种开源组件的漏洞检测方法及装置 | |
CN111368299A (zh) | 动态链接库文件劫持检测方法、设备及存储介质 | |
CN113127011A (zh) | 电子设备及电子设备的操作方法 | |
CN111562934A (zh) | 一种基于热补丁的软件系统升级方法、终端及存储介质 | |
US20130117808A1 (en) | Apparatus and method for enhancing security in heterogeneous computing environment | |
CN108762787B (zh) | 软件修复方法、装置、计算机设备和存储介质 | |
WO2018166322A1 (zh) | 系统分区的修复方法及装置 | |
CN113076248A (zh) | 一种应用处理方法、装置、设备及可读存储介质 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
CN112241529B (zh) | 恶意代码检测方法、装置、存储介质和计算机设备 | |
US20190102541A1 (en) | Apparatus and method for defending against unauthorized modification of programs | |
CN111382016A (zh) | 测试终端与计算机的连接方法和装置 | |
CN115509691A (zh) | 一种虚拟机内部栈溢出识别方法及系统 | |
CN110059454B (zh) | Cpu程序的安全加固方法、装置 | |
CN113157543A (zh) | 一种可信度量方法及装置、服务器、计算机可读存储介质 | |
CN105512544A (zh) | 一种获取移动终端超级用户权限的方法及装置 | |
US11256492B2 (en) | Computer program trust assurance for internet of things (IoT) devices | |
CN113010199B (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 |