CN106022125A - 一种客户端的修复方法及装置 - Google Patents

一种客户端的修复方法及装置 Download PDF

Info

Publication number
CN106022125A
CN106022125A CN201610286627.7A CN201610286627A CN106022125A CN 106022125 A CN106022125 A CN 106022125A CN 201610286627 A CN201610286627 A CN 201610286627A CN 106022125 A CN106022125 A CN 106022125A
Authority
CN
China
Prior art keywords
service
file
repaired
destination service
client
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
Application number
CN201610286627.7A
Other languages
English (en)
Other versions
CN106022125B (zh
Inventor
李文靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Baoqu Technology Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Internet Security Software Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201610286627.7A priority Critical patent/CN106022125B/zh
Publication of CN106022125A publication Critical patent/CN106022125A/zh
Application granted granted Critical
Publication of CN106022125B publication Critical patent/CN106022125B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种客户端的修复方法及装置。所述方法的具体实施方式包括:获取待修复客户端的待修复信息;通过调用目标服务修复所述待修复信息;其中,所述目标服务为所述待修复客户端的服务,所述目标服务采用以下方式获得:根据所述目标服务的注册表项,调用加载程序加载所述目标服务的启动文件,进而创建所述目标服务;所述启动文件为通过系统程序加载的文件。应用本发明实施例提供的方案修复客户端,能够提高客户端被成功修复的可能性。

Description

一种客户端的修复方法及装置
技术领域
本发明涉及计算机软件技术领域,特别涉及一种客户端的修复方法及装置。
背景技术
随着互联网行业技术发展,各种应用客户端也层出不穷,各应用客户端之间有合作共赢的,也有竟争关系的。应用客户端的竞争对手或者一些恶意程序为了自身利益,可能会采用多种方式故意破坏客户端,使客户端无法正常使用,具体方式包括利用特殊代码删除客户端的关键文件,修改客户端注册表信息等。
例如,对于毒霸安全软件,其关键文件可以包括托盘程序、核心服务程序、驱动程序和升级程序等,其注册表项可以包括注册表启动项、核心服务注册表项和驱动程序注册表项等,这些关键文件和注册表项被其竞争对手或恶意程序破坏之后,毒霸安全软件将无法正常运行。
现有技术中,当客户端的关键文件或注册表文件等被竞争对手或者恶意程序破坏掉之后,常常采用特定的服务来修复被破坏的客户端。上述用于修复客户端的服务,通常是由客户端通过调用系统函数来创建的,例如CreateService、OpenService、ControlService API函数。但是,以这种方式创建服务时,要求服务的启动文件是特殊类型的文件,例如以.exe为后缀的文件等,并且服务创建完成之后,可以在任务管理器中出现该.exe文件的进程。可见应用上述方式创建的服务隐蔽性不高,容易被竞争对手的客户端检测到进而卸载相应服务。因此,应用上述方式创建的服务修复客户端时成功率较低。
发明内容
本发明实施例的目的在于提供了一种客户端的修复方法及装置,能够提高客户端被成功修复的可能性。
为了达到上述目的,本发明公开了一种客户端的修复方法,应用于终端,所述方法包括:
获取待修复客户端的待修复信息;
通过调用目标服务修复所述待修复信息;
其中,所述目标服务为所述待修复客户端的服务,所述目标服务采用以下方式获得:
根据所述目标服务的注册表项,调用加载程序加载所述目标服务的启动文件,进而创建所述目标服务;
所述启动文件为通过系统程序加载的文件。
较佳的,所述通过调用目标服务修复所述待修复信息,包括:
当所述待修复信息包括关键注册表项时,通过调用所述目标服务,获取所述待修复客户端的配置文件,根据所述配置文件中的信息,修复所述关键注册表项。
较佳的,所述通过调用目标服务修复所述待修复信息,包括:
当所述待修复信息包括文件时,通过调用所述目标服务,访问所述待修复客户端的升级程序,以使所述升级程序从所述待修复客户端的升级服务器中下载所述文件,进而修复所述文件。
较佳的,所述通过调用目标服务修复所述待修复信息,包括:
当所述待修复信息包括关键文件时,通过调用所述目标服务,从所述目标服务的安装目录中获取所述关键文件的备份文件,并以所述备份文件替换所述关键文件。
较佳的,在通过调用目标服务修复所述待修复信息之前,所述方法还包括:
接收针对所述目标服务的服务创建指令;
根据所述目标服务的注册表项,确定用于加载所述目标服务的启动文件的加载程序和所述启动文件的路径,其中,所述启动文件为通过系统程序加载的文件;
调用所述加载程序加载所述启动文件,进而创建所述目标服务。
较佳的,所述方法还包括:
判断所述目标服务的注册表项中的启动类型是否为自启动类型;
如果是,则将所述目标服务的注册表项中的启动类型设置为非自启动类型。
较佳的,所述方法还包括:
接收针对所述目标服务的服务停止指令;
停止所述目标服务,并将所述目标服务的注册表项中的启动类型设置为自启动类型。
较佳的,所述方法还包括:
按照预设时间间隔,获取所述目标服务的当前服务名和其启动文件的当前路径;其中,按照不同的预设时间间隔,获取的所述目标服务的当前服务名不同,获取的所述目标服务的启动文件的当前路径不同;
根据获取的当前服务名和当前路径,重新生成或更新所述目标服务的注册表项。
为了达到上述目的,本发明公开了一种客户端的修复装置,应用于终端,所述装置包括:
获取模块,用于获取待修复客户端的待修复信息;
修复模块,用于通过调用目标服务修复所述待修复信息;其中,所述目标服务为所述待修复客户端的服务,所述目标服务采用以下方式获得:根据所述目标服务的注册表项,调用加载程序加载所述目标服务的启动文件,进而创建所述目标服务;所述启动文件为通过系统程序加载的文件。
较佳的,所述修复模块具体用于:
当所述待修复信息包括关键注册表项时,通过调用所述目标服务,获取所述待修复客户端的配置文件,根据所述配置文件中的信息,修复所述关键注册表项。
较佳的,所述修复模块具体用于:
当所述待修复信息包括文件时,通过调用所述目标服务,访问所述待修复客户端的升级程序,以使所述升级程序从所述待修复客户端的升级服务器中下载所述文件,进而修复所述文件。
较佳的,所述修复模块具体用于:
当所述待修复信息包括关键文件时,通过调用所述目标服务,从所述目标服务的安装目录中获取所述关键文件的备份文件,并以所述备份文件替换所述关键文件。
较佳的,所述装置还包括:
接收模块,用于在通过调用目标服务修复所述待修复信息之前,接收针对所述目标服务的服务创建指令;
确定模块,用于根据所述目标服务的注册表项,确定用于加载所述目标服务的启动文件的加载程序和所述启动文件的路径,其中,所述启动文件为通过系统程序加载的文件;
创建模块,用于调用所述加载程序加载所述启动文件,进而创建所述目标服务。
较佳的,所述装置还包括:
判断模块,用于判断所述目标服务的注册表项中的启动类型是否为自启动类型;
设置模块,用于当所述目标服务的注册表项中的启动类型为自启动类型时,将所述目标服务的注册表项中的启动类型设置为非自启动类型。
较佳的,所述装置还包括停止模块;
所述接收模块,还用于接收针对所述目标服务的服务停止指令;
所述停止模块,用于在接收到针对所述目标服务的服务停止指令时,停止所述目标服务;
所述设置模块,还用于在接收到针对所述目标服务的服务停止指令时,将所述目标服务的注册表项中的启动类型设置为自启动类型。
较佳的,所述装置还包括生成模块;
所述获取模块,还用于按照预设时间间隔,获取所述目标服务的当前服务名和其启动文件的当前路径;其中,按照不同的预设时间间隔,获取的所述目标服务的当前服务名不同,获取的所述目标服务的启动文件的当前路径不同;
所述生成模块,用于根据获取的当前服务名和当前路径,重新生成或更新所述目标服务的注册表项。
由上述技术方案可见,本发明实施例在获取到待修复客户端的待修复信息时,通过调用待修复客户端的目标服务修复该待修复信息。该目标服务为根据该目标服务的注册表项,通过调用加载程序加载所述目标服务的启动文件来创建的服务,以这种创建方式创建的服务不容易被检测到,使服务的隐蔽性更高。当调用以这种方式创建的目标服务来修复客户端时,能够提高客户端被成功修复的可能性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的客户端的修复方法的一种流程示意图;
图2为图1所示实施例中步骤S102之前的服务创建过程的一种流程示意图;
图3为本发明实施例提供的客户端的修复装置的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种客户端的修复方法及装置,能够提高客户端被成功修复的可能性。
下面通过具体实施例,对本发明进行详细说明。
图1为本发明实施例提供的客户端的修复方法的一种流程示意图,应用于终端,所述方法包括如下步骤:
步骤S101:获取待修复客户端的待修复信息。
待修复信息包括待修复客户端的注册表项和文件等。其中,注册表项包括关键注册表项和普通注册表项,关键注册表项包括待修复客户端的主界面启动注册表项即托盘启动项、核心服务注册表项和驱动程序注册表项等,待修复客户端的注册表项中除关键注册表项以外的注册表项可以称之为普通注册表项。文件包括待修复客户端的普通文件和关键文件。关键文件包括主界面程序即托盘程序、核心服务程序、驱动程序以及升级程序等,待修复客户端的文件中除了关键文件以外的文件可以普通文件。
待修复信息可以是预先设定的,也可以是采用待修复客户端中的检测模块检测到的。具体的,该检测模块检测到客户端的哪些信息被修改或破坏,则将该信息确定为待修复信息并发送给目标服务。也可以是,目标服务主动检测客户端的哪些信息被修改或破坏,并获取该信息。
步骤S102:通过调用目标服务修复所述待修复信息。
其中,所述目标服务为所述待修复客户端的服务。所述目标服务采用以下方式获得:根据所述目标服务的注册表项,调用加载程序加载所述目标服务的启动文件,进而创建所述目标服务,所述启动文件为通过系统程序加载的文件。该目标服务是用来修复待修复客户端的。
在实际应用中,可以按照设定的时间间隔修复待修复信息。该设定的时间间隔可以为5分钟或其他值,本发明对此不做限定。
现有技术中,目标服务的启动文件通常为可执行程序,当服务创建完成后,在任务管理器中出现的是该可执行程序对应的应用程序进程,这种进程容易被恶意程序发现,所创建的服务的隐蔽性不高,容易被恶意程序检测到并破坏。
在本实施例中,目标服务的启动文件需要通过系统程序加载。当需要创建目标服务时,根据目标服务的注册表项,调用系统加载程序加载目标服务的启动文件,即实现该目标服务的创建。当服务创建完成之后,任务管理器中出现的是该系统程序对应的进程,由于该进程属于系统进程,并且该系统加载程序也可以用于加载其他的文件,故任务管理器中可能存在不止一个这样的系统进程,因此恶意程序或竞争对手不容易检测到该服务的进程,以这种方式创建的服务的隐蔽性更高。当用来修复客户端的目标服务隐蔽性更高、不容易被破坏时,客户端被成功修复的可能性也提高了。
由上述内容可知,本发明实施例在获取到待修复客户端的待修复信息时,调用待修复客户端的目标服务修复该待修复信息。该目标服务为根据该目标服务的注册表项,通过调用加载程序加载所述目标服务的启动文件来创建的服务,以这种创建方式创建的服务不容易被检测到,使服务的隐蔽性更高。当调用以这种方式创建的目标服务来修复客户端时,能够提高客户端被成功修复的可能性。
在本发明的另一实施例中,在图1所示实施例的基础上,通过调用目标服务修复所述待修复信息,可以包括:当所述待修复信息包括关键注册表项时,通过调用所述目标服务,获取所述待修复客户端的配置文件,根据所述配置文件中的信息,修复所述关键注册表项。
关键注册表项可以包括待修复客户端的主界面启动注册表项即托盘启动项、核心服务注册表项、驱动程序注册表项以及目标服务的注册表项等。
假设,待修复信息为毒霸托盘启动项,其注册表项的位置在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run。调用目标服务检测该注册表项中的kxesc键值项的值是否与配置文件中预设的值一致,不一致时调用注册表RegSetValueKey函数实现改写,修复为预设的值,如“"C:\program files\kingsoft\kingsoft antivirus\kxetray.exe"–autorun”。
假设,待修复信息为毒霸核心服务注册表项,其位置在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\kxescore。调用目标服务检测该注册表项的ImagePath键值项是否和配置文件中预设的值一致,检测启动类型Start是否被改为非自启动类型,不一致时均调用相应的注册表函数将其修复为预设值。
假设,待修复信息为毒霸驱动程序注册表项,注册表项的位置在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\kisknl。调用目标服务检测该注册表项的ImagePath键值项是否和配置文件中预设的值一致,检测启动类型Start是否被改为非自启动类型,不一致时均调用相应的注册表函数将其修复为预设值。
假设,待修复信息为目标服务自身的注册表项,获取自身的隐藏启动文件名和服务名,例如当前的启动文件名和服务名均是Lfbwj,那么检测SYSTEM\\CurrentControlSet\\services\\Lfbwj注册表项的键值数据是否完整,不完整则进行修复,最关键要修复的是写注册表项中的ImagePath键值项,即%%SystemRoot%%\\System32\\svchost.exe-kC:\Windows\System32\lfbwj\lfbwj.dll,这些数据也都是从配置文件中获取到的。
在本发明的另一实施例中,在图1所示实施例的基础上,通过调用目标服务修复所述待修复信息,还可以包括:
当所述待修复信息包括文件时,通过调用所述目标服务,访问所述待修复客户端的升级程序,以使所述升级程序从所述待修复客户端的升级服务器中下载所述文件,进而修复所述文件。
本实施例中的文件包括普通文件和关键文件。在终端能够连接待修复客户端的服务器的情况下,即能够联网时,升级程序被调用后,会检测待修复客户端安装目录下所有文件的完整性以及损失的文件,发现存在文件损失或者文件过旧,都会从升级服务器中下载相应的文件,并替换现有文件,这样便实现了对文件的修复。
在本发明的另一实施例中,在图1所示实施例的基础上,通过调用目标服务修复所述待修复信息,还可以包括:
当所述待修复信息包括关键文件时,通过调用所述目标服务,从所述目标服务的安装目录中获取所述关键文件的备份文件,并以所述备份文件替换所述关键文件。
其中,备份文件可以是在目标服务创建时存储在其安装目录下的。
本实施例可以实现对关键文件的修复。当包括升级程序在内的关键文件被破坏时,无法通过调用升级程序实现对待修复客户端的文件进行修复,而应用本实施例可以实现对包括升级程序在内的关键文件的修复,当升级程序被修复时,可以继续调用升级程序修复除关键文件之外的普通文件。较佳的,当终端无法联网,无法调用升级程序修复相应的文件时,应用本实施例也能够实现对关键文件的修复。这样,即便终端无法联网,也能够保证对关键文件的修复,从而提高客户端被成功修复的可能性。
以上实施例中,所述目标服务是用于修复待修复客户端的,类似的,目标服务还可以用于升级待升级客户端,该方法可以包括:获取待升级客户端的待升级信息;调用所述待升级客户端的目标服务升级所述待升级信息;其中,所述目标服务为根据所述目标服务的注册表项创建的服务。
类似的,目标服务还可以用于推广待推广客户端,该方法可以包括:获取待推广客户端的待推广信息;调用所述待推广客户端的目标服务推广所述待推广信息;其中,所述目标服务为根据所述目标服务的注册表项调用加载程序加载所述目标服务的启动文件创建的服务,所述启动文件为通过系统程序加载的文件。
在本发明的另一实施例中,在图1所示实施例的基础上,在通过调用目标服务修复所述待修复信息之前,所述方法还可以包括目标服务的创建过程,该过程可以按照图2所示的流程示意图进行,其可以包括步骤:
步骤S201:接收针对所述目标服务的服务创建指令。
目标服务包括能够实现对待修复客户端进行修复的功能。
服务创建指令可以是终端操作系统启动后由操作系统生成的,具体的,可以是操作系统启动后,读取注册表中的每个注册表项,当读取到目标服务的注册表项时,生成的针对目标服务的服务创建指令。
上述服务创建指令还可以是待修复客户端在使用过程中根据实际需求生成的。
步骤S202:根据所述目标服务的注册表项,确定用于加载所述目标服务的启动文件的加载程序和所述启动文件的路径。
其中,所述启动文件为通过系统程序加载的文件。
步骤S203:调用所述加载程序加载所述启动文件,进而创建所述目标服务。
具体的,注册表项中记录了创建服务时所需要的加载程序以及启动文件的路径。当启动文件为需要通过系统程序加载的文件时,需要调用相应的系统加载程序加载该启动文件,当目标服务的启动文件被加载完成后,所述目标服务便创建完成。当所述目标服务创建完成时,在终端操作系统的任务管理器中会出现该系统加载程序对应的系统进程。由于该进程属于系统进程,并且该系统加载程序也可以用于加载其他的文件,故任务管理器中可能存在不止一个这样的系统进程,故而采用这种方式创建的服务的隐蔽性更高,不容易被恶意程序检测到。而现有技术中,目标服务的启动文件通常为可执行程序,当服务创建完成后,在任务管理器中出现的是该可执行程序对应的应用程序进程,这种进程容易被恶意程序发现,所创建的服务的隐蔽性不高,容易被恶意程序检测到并破坏。
假设,本实施例中的目标服务的启动文件为动态链接库.dll文件,对应的该系统加载程序可以为svchost.exe。也就是说,该目标服务可以由系统加载程序svchost.exe加载启动,当服务创建完成之后,终端操作系统的任务管理器中会出现svchost.exe进程,由于svchost.exe进程在系统中存在不止一个,并且其属于系统进程,因此恶意程序或竞争对手不容易检测到该目标服务。
在本实施例中,所述目标服务的注册表项可以采用以下方式生成:
在安装所述待修复客户端时,获取所述待修复客户端的目标服务的服务名和其启动文件的路径;根据所述目标服务的服务名和其启动文件的路径,生成所述目标服务的注册表项。
具体的,目标服务的服务名和其启动文件的路径可以从该待修复客户端的配置文件中获取,也可以以其他方式获取,本发明对此不做限定。
在安装待修复客户端时,安装程序会根据配置文件中的配置信息安装各个文件,其中包括将目标服务的启动文件保存在相应的目录下。假设,从配置文件中获得的目标服务的服务名为lfbwj,启动文件为lfbwj.dll,并且安装函程序可以将该启动文件保存在C:\Windows\System32\lfbwj目录下。对应的,该启动文件的路径为C:\Windows\System32\lfbwj\lfbwj.dll。
在实际应用中,生成目标服务的注册表项时,可以首先根据获取的目标服务的服务名拼接注册表项的名称,然后根据获取的目标服务的启动文件的路径,写入该注册表项中的服务程序键值ImagePath,并且在该注册表项中写入该服务的描述,设置启动类型等。
沿用上述例子,根据获取的目标服务的服务名lfbwj,可以通过拼接得到注册表项的名称,即SYSTEM\\CurrentControlSet\\services\\Lfbwj,然后调用注册表函数RegCreateKeyEx和RegSetValueEx,根据获取的启动文件的路径C:\Windows\System32\lfbwj\lfbwj.dll,创建键值ImagePath,并将其写为:
%%SystemRoot%%\\System32\\svchost.exe-k C:\Windows\System32\lfbwj\lfbwj.dll
上述ImagePath的内容即表示,采用系统加载程序svchost.exe加载C:\Windows\System32\lfbwj目录下的lfbwj.dll文件启动。然后,创建服务的描述和启动类型等键值,并分别设置为指定值和类型。启动类型包括自启动类型(SERVICE_AUTO_START)和非自启动类型(SERVICE_DEMAND_START)。
该注册表项中的启动类型可以设置为自启动类型,也可以设置为非自启动类型。优选的,在生成目标服务的注册表项时,将启动类型设置为自启动类型,这样,在下一次系统启动过程中,可以及时地创建目标服务,从而保证目标服务能够尽可能早地被创建起来,进而发挥该服务的作用。
由上述内容可见,本发明实施例根据目标服务的注册表项,调用系统加载程序加载目标服务的启动文件,进而创建该目标服务的。当采用系统加载程序加载启动文件时,任务管理器中出现的是该系统加载程序对应的系统进程,由于这种系统进程也可以用来加载其他的文件,任务管理器中的该系统进程可能不止一个,因此恶意程序或竞争对手不容易检测到该服务。所以,应用本发明实施例提供给的方案创建的服务,能够提高服务的隐蔽性。
在另一实施例中,在图2所示实施例的基础上,恶意程序可能会检测并破坏自启动类型的注册表项,为了进一步增强服务的隐蔽性,所述方法还可以包括:
步骤1:判断所述目标服务的注册表项中的启动类型是否为自启动类型,如果是,则执行步骤2。
在检测到目标服务的创建完成时,即可实施本步骤。
步骤2:将所述目标服务的注册表项中的启动类型设置为非自启动类型。
也就是说,当目标服务创建完成之后,如果目标服务的注册表项中的启动类型为自启动类型,为了提高目标服务的隐蔽性,可以将其设置为非自启动类型。一般情况下,自启动类型的注册表项更容易被恶意程序或竞争对手检测到并破坏。在服务创建完成之后的瞬间,便将对应的注册表项设置为非自启动类型,能够避免恶意程序或竞争对手检测到该服务的注册表项,进而能够避免该注册表项被篡改。
进一步的,在服务创建完成之后,该服务的注册表项中的启动类型设置为了非自启动类型,也就是说,当终端操作系统关闭后再次启动时,该服务不能随着操作系统的启动而被创建。为了保证目标服务在系统再次启动时能够及时地被创建,图2对应的实施例还可以包括以下步骤:
步骤1:接收针对所述目标服务的服务停止指令。
服务停止指令可以是在操作系统关闭时由操作系统生成的,也可以是由目标服务在运行过程中根据实际需求生成的。
步骤2:停止所述目标服务。
步骤3:将所述目标服务的注册表项中的启动类型设置为自启动类型。
可以理解的是,步骤2和步骤3的执行不分先后顺序,也可以同时执行。在接收到针对所述目标服务的服务停止指令时,停止所述目标服务属于现有技术,其具体过程不再赘述。
在本实施例中,在目标服务将要停止的时刻,将目标服务对应的注册表项设置为自启动类型,即可以实现在系统再次启动时,将目标服务创建起来,从而保证目标服务能够随着系统的启动而被创建。
综合起来分析,当服务创建完成时,将该服务的注册表项设置为非自启动类型,当服务将要停止时,再将该服务的注册表项设置为自启动类型,既能够保证服务创建完成之后该服务的注册表项不容易被检测到,又能够保证在系统再次启动时该服务也能够被创建起来。
在本发明的另一实施例中,在图2所示实施例的基础上,当根据所述目标服务的注册表项,创建所述目标服务之后,所述方法还可以包括:注册所述目标服务的回调函数。
对应的,图2所示实施例中,将所述目标服务的注册表项中的启动类型设置为非自启动类型,可以包括:采用所述回调函数将所述目标服务的注册表项中的启动类型设置为非自启动类型;以及,将所述待创建服务的注册表项中的启动类型设置为自启动类型,可以包括:采用所述回调函数将所述目标服务的注册表项中的启动类型设置为自启动类型。
在实际应用中,可以经由ServceMain函数,调用RegisterServiceCtrlHandler函数注册目标服务的回调函数,该回调函数可以是针对服务开启和服务停止分别注册的,当检测到目标服务创建完成时,服务开启的回调函数将对应的注册表项设置为非自启动类型,当接收到针对目标服务的服务停止指令时,服务停止的回调函数将对应的注册表项设置为自启动类型。
在本实施例中,通过注册的回调函数,实现对目标服务的注册表项中的启动类型的重新设置,能够提高重置注册表项中键值的效率。
在本发明的另一实施例中,在图2所示实施例的基础上,所述方法还可以包括以下步骤:
步骤1:按照预设时间间隔,获取所述目标服务的当前服务名和其启动文件的当前路径。
其中,按照不同的预设时间间隔,获取的所述目标服务的当前服务名不同,获取的所述目标服务的启动文件的当前路径不同。当前服务名和其启动文件的当前路径,可以通过待修复客户端的配置文件获取,也可以通过其他方式获取,本发明对此不做限定。预设时间间隔可以为10分钟,也可以为2个小时,本发明对此不做限定。
在实际应用中,待修复客户端可以采用特定的模块按照某种规则设置目标服务的服务名和启动文件的名称,使服务名和启动文件的名称按照预设时间间隔变化,对应的,该特定的模块还可以修改启动文件的路径,并将当前服务名和其启动文件的当前路径发送给终端。当然,这只是获取当前服务名和其启动文件的当前路径的一种方式,还可以有其他获取方式。一般情况下,服务名和启动文件的名称是对应一致的。当启动文件的名称更改后,其存储路径对应地也需要进行修改,启动文件本身是不变的,只是修改其名称,启动文件的名称变化了,其路径也相应地不同。
步骤2:根据获取的当前服务名和当前路径,重新生成或更新所述目标服务的注册表项。
在本实施例中,不断地更换目标服务的服务名及其启动文件的路径,对应的,目标服务的注册表项也是不断变化的,这样可以更加有效地避免恶意程序或竞争对手检测到该目标服务的注册表项及目标服务的启动文件,从而提高了目标服务的隐蔽性。
图3为本发明实施例提供的客户端的修复装置的一种结构示意图,应用于终端,与图1所示方法实施例相对应,所述装置包括获取模块301和修复模块302;
其中,获取模块301,用于获取待修复客户端的待修复信息;
修复模块302,用于通过调用目标服务修复所述待修复信息;其中,所述目标服务为所述待修复客户端的服务,所述目标服务采用以下方式获得:根据所述目标服务的注册表项,调用加载程序加载所述目标服务的启动文件,进而创建所述目标服务;所述启动文件为通过系统程序加载的文件。
在本实施例中,所述修复模块302具体可以用于:
当所述待修复信息包括关键注册表项时,通过调用所述目标服务,获取所述待修复客户端的配置文件,根据所述配置文件中的信息,修复所述关键注册表项。
在本实施例中,所述修复模块302还可以用于:
当所述待修复信息包括文件时,通过调用所述目标服务,访问所述待修复客户端的升级程序,以使所述升级程序从所述待修复客户端的升级服务器中下载所述文件,进而修复所述文件。
在本实施例中,所述修复模块302还可以用于:
当所述待修复信息包括关键文件时,通过调用所述目标服务,从所述目标服务的安装目录中获取所述关键文件的备份文件,并以所述备份文件替换所述关键文件。
在本实施例中,所述装置还可以包括接收模块、确定模块和创建模块(图中未示出);
其中,所述接收模块,用于在通过调用目标服务修复所述待修复信息之前,接收针对所述目标服务的服务创建指令;
所述确定模块,用于根据所述目标服务的注册表项,确定用于加载所述目标服务的启动文件的加载程序和所述启动文件的路径,其中,所述启动文件为通过系统程序加载的文件;
所述创建模块,用于调用所述加载程序加载所述启动文件,进而创建所述目标服务。
在本实施例中,所述装置还可以包括判断模块和设置模块(图中未示出);
所述判断模块,用于判断所述目标服务的注册表项中的启动类型是否为自启动类型;
所述设置模块,用于当所述目标服务的注册表项中的启动类型为自启动类型时,将所述目标服务的注册表项中的启动类型设置为非自启动类型。
在本实施例中,所述装置还可以包括停止模块(图中未示出);
所述接收模块,还可以用于接收针对所述目标服务的服务停止指令;
所述停止模块,用于在接收到针对所述目标服务的服务停止指令时,停止所述目标服务;
所述设置模块,还可以用于在接收到针对所述目标服务的服务停止指令时,将所述目标服务的注册表项中的启动类型设置为自启动类型。
在本实施例中,所述装置还包括注册模块(图中未示出);
所述注册模块,用于在根据所述目标服务的注册表项,创建所述目标服务之后,注册所述目标服务的回调函数;
所述设置模块,具体可以用于在注册所述目标服务的回调函数之后,采用所述回调函数将所述目标服务的注册表项中的启动类型设置为非自启动类型;
所述设置模块,还可以用于在注册所述目标服务的回调函数之后,采用所述回调函数将所述目标服务的注册表项中的启动类型设置为自启动类型。
在本实施例中,所述装置还可以包括生成模块(图中未示出);
所述获取模块301,具体可以用于在安装所述待修复客户端时,获取所述待修复客户端的目标服务的服务名和其启动文件的路径;
所述生成模块,用于根据所述待创建服务的服务名和其启动文件的路径,生成所述待创建服务的注册表项。
在本实施例中,所述获取模块301,还可以用于按照预设时间间隔,获取所述目标服务的当前服务名和其启动文件的当前路径;其中,按照不同的预设时间间隔,获取的所述目标服务的当前服务名不同,获取的所述目标服务的启动文件的当前路径不同;
所述生成模块,还可以用于根据获取的当前服务名和当前路径,重新生成或更新所述目标服务的注册表项。
由于上述装置实施例是基于修复方法实施例得到的,与该方法具有相同的技术效果,因此装置实施例的技术效果在此不再赘述。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解,上述实施方式中的全部或部分步骤是能够通过程序指令相关的硬件来完成的,所述的程序可以存储于计算机可读取存储介质中。这里所称存储介质,是指ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种客户端的修复方法,其特征在于,应用于终端,所述方法包括:
获取待修复客户端的待修复信息;
通过调用目标服务修复所述待修复信息;
其中,所述目标服务为所述待修复客户端的服务,所述目标服务采用以下方式获得:
根据所述目标服务的注册表项,调用加载程序加载所述目标服务的启动文件,进而创建所述目标服务;
所述启动文件为通过系统程序加载的文件。
2.根据权利要求1所述的修复方法,其特征在于,所述通过调用目标服务修复所述待修复信息,包括:
当所述待修复信息包括关键注册表项时,通过调用所述目标服务,获取所述待修复客户端的配置文件,根据所述配置文件中的信息,修复所述关键注册表项。
3.根据权利要求1所述的修复方法,其特征在于,所述通过调用目标服务修复所述待修复信息,包括:
当所述待修复信息包括文件时,通过调用所述目标服务,访问所述待修复客户端的升级程序,以使所述升级程序从所述待修复客户端的升级服务器中下载所述文件,进而修复所述文件。
4.根据权利要求1所述的修复方法,其特征在于,所述通过调用目标服务修复所述待修复信息,包括:
当所述待修复信息包括关键文件时,通过调用所述目标服务,从所述目标服务的安装目录中获取所述关键文件的备份文件,并以所述备份文件替换所述关键文件。
5.根据权利要求1-4中任一项所述的修复方法,其特征在于,在通过调用目标服务修复所述待修复信息之前,所述方法还包括:
接收针对所述目标服务的服务创建指令;
根据所述目标服务的注册表项,确定用于加载所述目标服务的启动文件的加载程序和所述启动文件的路径,其中,所述启动文件为通过系统程序加载的文件;
调用所述加载程序加载所述启动文件,进而创建所述目标服务。
6.根据权利要求5所述的修复方法,其特征在于,所述方法还包括:
判断所述目标服务的注册表项中的启动类型是否为自启动类型;
如果是,则将所述目标服务的注册表项中的启动类型设置为非自启动类型。
7.根据权利要求5所述的修复方法,其特征在于,所述方法还包括:
接收针对所述目标服务的服务停止指令;
停止所述目标服务,并将所述目标服务的注册表项中的启动类型设置为自启动类型。
8.根据权利要求5所述的修复方法,其特征在于,所述方法还包括:
按照预设时间间隔,获取所述目标服务的当前服务名和其启动文件的当前路径;其中,按照不同的预设时间间隔,获取的所述目标服务的当前服务名不同,获取的所述目标服务的启动文件的当前路径不同;
根据获取的当前服务名和当前路径,重新生成或更新所述目标服务的注册表项。
9.一种客户端的修复装置,其特征在于,应用于终端,所述装置包括:
获取模块,用于获取待修复客户端的待修复信息;
修复模块,用于通过调用目标服务修复所述待修复信息;其中,所述目标服务为所述待修复客户端的服务,所述目标服务采用以下方式获得:根据所述目标服务的注册表项,调用加载程序加载所述目标服务的启动文件,进而创建所述目标服务;所述启动文件为通过系统程序加载的文件。
10.根据权利要求9所述的修复装置,其特征在于,所述修复模块具体用于:
当所述待修复信息包括关键注册表项时,通过调用所述目标服务,获取所述待修复客户端的配置文件,根据所述配置文件中的信息,修复所述关键注册表项。
CN201610286627.7A 2016-05-03 2016-05-03 一种客户端的修复方法及装置 Active CN106022125B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610286627.7A CN106022125B (zh) 2016-05-03 2016-05-03 一种客户端的修复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610286627.7A CN106022125B (zh) 2016-05-03 2016-05-03 一种客户端的修复方法及装置

Publications (2)

Publication Number Publication Date
CN106022125A true CN106022125A (zh) 2016-10-12
CN106022125B CN106022125B (zh) 2019-09-17

Family

ID=57082109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610286627.7A Active CN106022125B (zh) 2016-05-03 2016-05-03 一种客户端的修复方法及装置

Country Status (1)

Country Link
CN (1) CN106022125B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709346A (zh) * 2016-11-25 2017-05-24 腾讯科技(深圳)有限公司 文件处理方法及装置
CN108647114A (zh) * 2018-03-30 2018-10-12 斑马网络技术有限公司 车机操作系统及其启动方法、系统分区更新和恢复方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034560A (zh) * 2011-09-29 2013-04-10 腾讯科技(深圳)有限公司 一种修复应用软件的方法、装置及系统
CN103095698A (zh) * 2013-01-10 2013-05-08 北京奇虎科技有限公司 客户端软件的修复方法、装置和通信系统
CN103188204A (zh) * 2011-12-27 2013-07-03 腾讯科技(深圳)有限公司 开放平台中的服务控制方法及系统
US20130291131A1 (en) * 2008-08-08 2013-10-31 Absolute Software Corporation Approaches for a location aware client
CN104166609A (zh) * 2014-08-27 2014-11-26 贝壳网际(北京)安全技术有限公司 一种计算机硬件设备的修复方法及修复装置
CN105446829A (zh) * 2015-09-29 2016-03-30 网易(杭州)网络有限公司 客户端程序的修复方法、装置、系统及服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130291131A1 (en) * 2008-08-08 2013-10-31 Absolute Software Corporation Approaches for a location aware client
CN103034560A (zh) * 2011-09-29 2013-04-10 腾讯科技(深圳)有限公司 一种修复应用软件的方法、装置及系统
CN103188204A (zh) * 2011-12-27 2013-07-03 腾讯科技(深圳)有限公司 开放平台中的服务控制方法及系统
CN103095698A (zh) * 2013-01-10 2013-05-08 北京奇虎科技有限公司 客户端软件的修复方法、装置和通信系统
CN104166609A (zh) * 2014-08-27 2014-11-26 贝壳网际(北京)安全技术有限公司 一种计算机硬件设备的修复方法及修复装置
CN105446829A (zh) * 2015-09-29 2016-03-30 网易(杭州)网络有限公司 客户端程序的修复方法、装置、系统及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
文少勇: "计算机动态取证系统的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709346A (zh) * 2016-11-25 2017-05-24 腾讯科技(深圳)有限公司 文件处理方法及装置
CN108647114A (zh) * 2018-03-30 2018-10-12 斑马网络技术有限公司 车机操作系统及其启动方法、系统分区更新和恢复方法
CN108647114B (zh) * 2018-03-30 2022-03-08 斑马网络技术有限公司 车机操作系统及其启动方法、系统分区更新和恢复方法

Also Published As

Publication number Publication date
CN106022125B (zh) 2019-09-17

Similar Documents

Publication Publication Date Title
US20110041124A1 (en) Version Management System
US9645839B2 (en) Stateful applications operating in a stateless cloud computing environment
AU2005201434B2 (en) Efficient patching
US9117079B1 (en) Multiple application versions in a single virtual machine
US20050172280A1 (en) System and method for preintegration of updates to an operating system
CN109491698B (zh) 基于热补丁的系统更新方法及装置
US7735057B2 (en) Method and apparatus for packaging and streaming installation software
US8555271B2 (en) Method, software and apparatus for application upgrade during execution
CN105786538B (zh) 基于安卓系统的软件升级方法和装置
US20080148399A1 (en) Protection against stack buffer overrun exploitation
US20070113291A1 (en) Method for administrating the function access
CN109614167B (zh) 一种管理插件的方法和系统
EP1437657A2 (en) System and method for management of software applications
US10635482B2 (en) Controlling usage of virtual disks before their attachment to virtual machines
CN104731622A (zh) 一种应用程序的加载方法、装置和移动终端
CN113094210B (zh) 一种windows平台进程及文件守护方法及系统
CN105247533A (zh) 信息处理装置和确定方法
CN115062307B (zh) 基于Open POWER的程序完整性校验方法、系统、终端及存储介质
CN106022125A (zh) 一种客户端的修复方法及装置
CN117056115B (zh) 应用程序的修复方法和装置、存储介质及电子设备
US8250558B2 (en) Dynamic linked library add-on features
CN113360214A (zh) 一种应用程序功能模块的动态插拔方法及系统
US20220353341A1 (en) Efficient deployment of cloud resources
CN105930192B (zh) 一种服务创建方法及装置
CN117616389A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20181213

Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Applicant after: Zhuhai Leopard Technology Co.,Ltd.

Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing

Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

GR01 Patent grant
GR01 Patent grant