一種客戶端的修復(fù)方法及裝置的制造方法
【專利摘要】本發(fā)明實施例提供了一種客戶端的修復(fù)方法及裝置。所述方法的【具體實施方式】包括:獲取待修復(fù)客戶端的待修復(fù)信息;通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息;其中,所述目標(biāo)服務(wù)為所述待修復(fù)客戶端的服務(wù),所述目標(biāo)服務(wù)采用以下方式獲得:根據(jù)所述目標(biāo)服務(wù)的注冊表項,調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù);所述啟動文件為通過系統(tǒng)程序加載的文件。應(yīng)用本發(fā)明實施例提供的方案修復(fù)客戶端,能夠提高客戶端被成功修復(fù)的可能性。
【專利說明】
一種客戶端的修復(fù)方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機(jī)軟件技術(shù)領(lǐng)域,特別涉及一種客戶端的修復(fù)方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)行業(yè)技術(shù)發(fā)展,各種應(yīng)用客戶端也層出不窮,各應(yīng)用客戶端之間有合作共贏的,也有竟?fàn)庩P(guān)系的。應(yīng)用客戶端的競爭對手或者一些惡意程序為了自身利益,可能會采用多種方式故意破壞客戶端,使客戶端無法正常使用,具體方式包括利用特殊代碼刪除客戶端的關(guān)鍵文件,修改客戶端注冊表信息等。
[0003]例如,對于毒霸安全軟件,其關(guān)鍵文件可以包括托盤程序、核心服務(wù)程序、驅(qū)動程序和升級程序等,其注冊表項可以包括注冊表啟動項、核心服務(wù)注冊表項和驅(qū)動程序注冊表項等,這些關(guān)鍵文件和注冊表項被其競爭對手或惡意程序破壞之后,毒霸安全軟件將無法正常運行。
[0004]現(xiàn)有技術(shù)中,當(dāng)客戶端的關(guān)鍵文件或注冊表文件等被競爭對手或者惡意程序破壞掉之后,常常采用特定的服務(wù)來修復(fù)被破壞的客戶端。上述用于修復(fù)客戶端的服務(wù),通常是由客戶端通過調(diào)用系統(tǒng)函數(shù)來創(chuàng)建的,例如CreateService、0penService、ControlServiceAPI函數(shù)。但是,以這種方式創(chuàng)建服務(wù)時,要求服務(wù)的啟動文件是特殊類型的文件,例如以.exe為后綴的文件等,并且服務(wù)創(chuàng)建完成之后,可以在任務(wù)管理器中出現(xiàn)該.exe文件的進(jìn)程??梢姂?yīng)用上述方式創(chuàng)建的服務(wù)隱蔽性不高,容易被競爭對手的客戶端檢測到進(jìn)而卸載相應(yīng)服務(wù)。因此,應(yīng)用上述方式創(chuàng)建的服務(wù)修復(fù)客戶端時成功率較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例的目的在于提供了一種客戶端的修復(fù)方法及裝置,能夠提高客戶端被成功修復(fù)的可能性。
[0006]為了達(dá)到上述目的,本發(fā)明公開了一種客戶端的修復(fù)方法,應(yīng)用于終端,所述方法包括:
[0007]獲取待修復(fù)客戶端的待修復(fù)信息;
[0008]通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息;
[0009]其中,所述目標(biāo)服務(wù)為所述待修復(fù)客戶端的服務(wù),所述目標(biāo)服務(wù)采用以下方式獲得:
[0010]根據(jù)所述目標(biāo)服務(wù)的注冊表項,調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù);
[0011]所述啟動文件為通過系統(tǒng)程序加載的文件。
[0012]較佳的,所述通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,包括:
[0013]當(dāng)所述待修復(fù)信息包括關(guān)鍵注冊表項時,通過調(diào)用所述目標(biāo)服務(wù),獲取所述待修復(fù)客戶端的配置文件,根據(jù)所述配置文件中的信息,修復(fù)所述關(guān)鍵注冊表項。
[0014]較佳的,所述通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,包括:
[0015]當(dāng)所述待修復(fù)信息包括文件時,通過調(diào)用所述目標(biāo)服務(wù),訪問所述待修復(fù)客戶端的升級程序,以使所述升級程序從所述待修復(fù)客戶端的升級服務(wù)器中下載所述文件,進(jìn)而修復(fù)所述文件。
[0016]較佳的,所述通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,包括:
[0017]當(dāng)所述待修復(fù)信息包括關(guān)鍵文件時,通過調(diào)用所述目標(biāo)服務(wù),從所述目標(biāo)服務(wù)的安裝目錄中獲取所述關(guān)鍵文件的備份文件,并以所述備份文件替換所述關(guān)鍵文件。
[0018]較佳的,在通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息之前,所述方法還包括:
[0019]接收針對所述目標(biāo)服務(wù)的服務(wù)創(chuàng)建指令;
[0020]根據(jù)所述目標(biāo)服務(wù)的注冊表項,確定用于加載所述目標(biāo)服務(wù)的啟動文件的加載程序和所述啟動文件的路徑,其中,所述啟動文件為通過系統(tǒng)程序加載的文件;
[0021]調(diào)用所述加載程序加載所述啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù)。
[0022]較佳的,所述方法還包括:
[0023]判斷所述目標(biāo)服務(wù)的注冊表項中的啟動類型是否為自啟動類型;
[0024]如果是,則將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為非自啟動類型。
[0025]較佳的,所述方法還包括:
[0026]接收針對所述目標(biāo)服務(wù)的服務(wù)停止指令;
[0027]停止所述目標(biāo)服務(wù),并將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為自啟動類型。
[0028]較佳的,所述方法還包括:
[0029]按照預(yù)設(shè)時間間隔,獲取所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名和其啟動文件的當(dāng)前路徑;其中,按照不同的預(yù)設(shè)時間間隔,獲取的所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名不同,獲取的所述目標(biāo)服務(wù)的啟動文件的當(dāng)前路徑不同;
[0030]根據(jù)獲取的當(dāng)前服務(wù)名和當(dāng)前路徑,重新生成或更新所述目標(biāo)服務(wù)的注冊表項。
[0031]為了達(dá)到上述目的,本發(fā)明公開了一種客戶端的修復(fù)裝置,應(yīng)用于終端,所述裝置包括:
[0032]獲取模塊,用于獲取待修復(fù)客戶端的待修復(fù)信息;
[0033]修復(fù)模塊,用于通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息;其中,所述目標(biāo)服務(wù)為所述待修復(fù)客戶端的服務(wù),所述目標(biāo)服務(wù)采用以下方式獲得:根據(jù)所述目標(biāo)服務(wù)的注冊表項,調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù);所述啟動文件為通過系統(tǒng)程序加載的文件。
[0034]較佳的,所述修復(fù)模塊具體用于:
[0035]當(dāng)所述待修復(fù)信息包括關(guān)鍵注冊表項時,通過調(diào)用所述目標(biāo)服務(wù),獲取所述待修復(fù)客戶端的配置文件,根據(jù)所述配置文件中的信息,修復(fù)所述關(guān)鍵注冊表項。
[0036]較佳的,所述修復(fù)模塊具體用于:
[0037]當(dāng)所述待修復(fù)信息包括文件時,通過調(diào)用所述目標(biāo)服務(wù),訪問所述待修復(fù)客戶端的升級程序,以使所述升級程序從所述待修復(fù)客戶端的升級服務(wù)器中下載所述文件,進(jìn)而修復(fù)所述文件。
[0038]較佳的,所述修復(fù)模塊具體用于:
[0039]當(dāng)所述待修復(fù)信息包括關(guān)鍵文件時,通過調(diào)用所述目標(biāo)服務(wù),從所述目標(biāo)服務(wù)的安裝目錄中獲取所述關(guān)鍵文件的備份文件,并以所述備份文件替換所述關(guān)鍵文件。
[0040]較佳的,所述裝置還包括:
[0041 ]接收模塊,用于在通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息之前,接收針對所述目標(biāo)服務(wù)的服務(wù)創(chuàng)建指令;
[0042]確定模塊,用于根據(jù)所述目標(biāo)服務(wù)的注冊表項,確定用于加載所述目標(biāo)服務(wù)的啟動文件的加載程序和所述啟動文件的路徑,其中,所述啟動文件為通過系統(tǒng)程序加載的文件;
[0043]創(chuàng)建模塊,用于調(diào)用所述加載程序加載所述啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù)。
[0044]較佳的,所述裝置還包括:
[0045]判斷模塊,用于判斷所述目標(biāo)服務(wù)的注冊表項中的啟動類型是否為自啟動類型;
[0046]設(shè)置模塊,用于當(dāng)所述目標(biāo)服務(wù)的注冊表項中的啟動類型為自啟動類型時,將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為非自啟動類型。
[0047]較佳的,所述裝置還包括停止模塊;
[0048]所述接收模塊,還用于接收針對所述目標(biāo)服務(wù)的服務(wù)停止指令;
[0049]所述停止模塊,用于在接收到針對所述目標(biāo)服務(wù)的服務(wù)停止指令時,停止所述目標(biāo)服務(wù);
[0050]所述設(shè)置模塊,還用于在接收到針對所述目標(biāo)服務(wù)的服務(wù)停止指令時,將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為自啟動類型。
[0051 ]較佳的,所述裝置還包括生成模塊;
[0052]所述獲取模塊,還用于按照預(yù)設(shè)時間間隔,獲取所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名和其啟動文件的當(dāng)前路徑;其中,按照不同的預(yù)設(shè)時間間隔,獲取的所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名不同,獲取的所述目標(biāo)服務(wù)的啟動文件的當(dāng)前路徑不同;
[0053]所述生成模塊,用于根據(jù)獲取的當(dāng)前服務(wù)名和當(dāng)前路徑,重新生成或更新所述目標(biāo)服務(wù)的注冊表項。
[0054]由上述技術(shù)方案可見,本發(fā)明實施例在獲取到待修復(fù)客戶端的待修復(fù)信息時,通過調(diào)用待修復(fù)客戶端的目標(biāo)服務(wù)修復(fù)該待修復(fù)信息。該目標(biāo)服務(wù)為根據(jù)該目標(biāo)服務(wù)的注冊表項,通過調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件來創(chuàng)建的服務(wù),以這種創(chuàng)建方式創(chuàng)建的服務(wù)不容易被檢測到,使服務(wù)的隱蔽性更高。當(dāng)調(diào)用以這種方式創(chuàng)建的目標(biāo)服務(wù)來修復(fù)客戶端時,能夠提高客戶端被成功修復(fù)的可能性。
【附圖說明】
[0055]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0056]圖1為本發(fā)明實施例提供的客戶端的修復(fù)方法的一種流程示意圖;
[0057]圖2為圖1所示實施例中步驟S102之前的服務(wù)創(chuàng)建過程的一種流程示意圖;
[0058]圖3為本發(fā)明實施例提供的客戶端的修復(fù)裝置的一種結(jié)構(gòu)示意圖。
【具體實施方式】
[0059]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整的描述。顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0060]本發(fā)明實施例提供了一種客戶端的修復(fù)方法及裝置,能夠提高客戶端被成功修復(fù)的可能性。
[0061 ]下面通過具體實施例,對本發(fā)明進(jìn)行詳細(xì)說明。
[0062]圖1為本發(fā)明實施例提供的客戶端的修復(fù)方法的一種流程示意圖,應(yīng)用于終端,所述方法包括如下步驟:
[0063]步驟SlOl:獲取待修復(fù)客戶端的待修復(fù)信息。
[0064]待修復(fù)信息包括待修復(fù)客戶端的注冊表項和文件等。其中,注冊表項包括關(guān)鍵注冊表項和普通注冊表項,關(guān)鍵注冊表項包括待修復(fù)客戶端的主界面啟動注冊表項即托盤啟動項、核心服務(wù)注冊表項和驅(qū)動程序注冊表項等,待修復(fù)客戶端的注冊表項中除關(guān)鍵注冊表項以外的注冊表項可以稱之為普通注冊表項。文件包括待修復(fù)客戶端的普通文件和關(guān)鍵文件。關(guān)鍵文件包括主界面程序即托盤程序、核心服務(wù)程序、驅(qū)動程序以及升級程序等,待修復(fù)客戶端的文件中除了關(guān)鍵文件以外的文件可以普通文件。
[0065]待修復(fù)信息可以是預(yù)先設(shè)定的,也可以是采用待修復(fù)客戶端中的檢測模塊檢測到的。具體的,該檢測模塊檢測到客戶端的哪些信息被修改或破壞,則將該信息確定為待修復(fù)信息并發(fā)送給目標(biāo)服務(wù)。也可以是,目標(biāo)服務(wù)主動檢測客戶端的哪些信息被修改或破壞,并獲取該ig息。
[0066]步驟S102:通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息。
[0067]其中,所述目標(biāo)服務(wù)為所述待修復(fù)客戶端的服務(wù)。所述目標(biāo)服務(wù)采用以下方式獲得:根據(jù)所述目標(biāo)服務(wù)的注冊表項,調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù),所述啟動文件為通過系統(tǒng)程序加載的文件。該目標(biāo)服務(wù)是用來修復(fù)待修復(fù)客戶端的。
[0068]在實際應(yīng)用中,可以按照設(shè)定的時間間隔修復(fù)待修復(fù)信息。該設(shè)定的時間間隔可以為5分鐘或其他值,本發(fā)明對此不做限定。
[0069]現(xiàn)有技術(shù)中,目標(biāo)服務(wù)的啟動文件通常為可執(zhí)行程序,當(dāng)服務(wù)創(chuàng)建完成后,在任務(wù)管理器中出現(xiàn)的是該可執(zhí)行程序?qū)?yīng)的應(yīng)用程序進(jìn)程,這種進(jìn)程容易被惡意程序發(fā)現(xiàn),所創(chuàng)建的服務(wù)的隱蔽性不高,容易被惡意程序檢測到并破壞。
[0070]在本實施例中,目標(biāo)服務(wù)的啟動文件需要通過系統(tǒng)程序加載。當(dāng)需要創(chuàng)建目標(biāo)服務(wù)時,根據(jù)目標(biāo)服務(wù)的注冊表項,調(diào)用系統(tǒng)加載程序加載目標(biāo)服務(wù)的啟動文件,即實現(xiàn)該目標(biāo)服務(wù)的創(chuàng)建。當(dāng)服務(wù)創(chuàng)建完成之后,任務(wù)管理器中出現(xiàn)的是該系統(tǒng)程序?qū)?yīng)的進(jìn)程,由于該進(jìn)程屬于系統(tǒng)進(jìn)程,并且該系統(tǒng)加載程序也可以用于加載其他的文件,故任務(wù)管理器中可能存在不止一個這樣的系統(tǒng)進(jìn)程,因此惡意程序或競爭對手不容易檢測到該服務(wù)的進(jìn)程,以這種方式創(chuàng)建的服務(wù)的隱蔽性更高。當(dāng)用來修復(fù)客戶端的目標(biāo)服務(wù)隱蔽性更高、不容易被破壞時,客戶端被成功修復(fù)的可能性也提尚了。[0071 ]由上述內(nèi)容可知,本發(fā)明實施例在獲取到待修復(fù)客戶端的待修復(fù)信息時,調(diào)用待修復(fù)客戶端的目標(biāo)服務(wù)修復(fù)該待修復(fù)信息。該目標(biāo)服務(wù)為根據(jù)該目標(biāo)服務(wù)的注冊表項,通過調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件來創(chuàng)建的服務(wù),以這種創(chuàng)建方式創(chuàng)建的服務(wù)不容易被檢測到,使服務(wù)的隱蔽性更高。當(dāng)調(diào)用以這種方式創(chuàng)建的目標(biāo)服務(wù)來修復(fù)客戶端時,能夠提尚客戶端被成功修復(fù)的可能性。
[0072]在本發(fā)明的另一實施例中,在圖1所示實施例的基礎(chǔ)上,通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,可以包括:當(dāng)所述待修復(fù)信息包括關(guān)鍵注冊表項時,通過調(diào)用所述目標(biāo)服務(wù),獲取所述待修復(fù)客戶端的配置文件,根據(jù)所述配置文件中的信息,修復(fù)所述關(guān)鍵注冊表項。
[0073 ]關(guān)鍵注冊表項可以包括待修復(fù)客戶端的主界面啟動注冊表項即托盤啟動項、核心服務(wù)注冊表項、驅(qū)動程序注冊表項以及目標(biāo)服務(wù)的注冊表項等。
[0074]假設(shè),待修復(fù)信息為毒霸托盤啟動項,其注冊表項的位置在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVers1n\Run。調(diào)用目標(biāo)服務(wù)檢測該注冊表項中的kxesc鍵值項的值是否與配置文件中預(yù)設(shè)的值一致,不一致時調(diào)用注冊表RegSetValueKey函數(shù)實現(xiàn)改寫,修復(fù)為預(yù)設(shè)的值,如 “〃C: \program files\kingsoft\kingsoft antivirus\kxetray.exe〃-autorun” ο
[0075]假設(shè),待修復(fù)信息為毒霸核心服務(wù)注冊表項,其位置在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\kxescore。調(diào)用目標(biāo)服務(wù)檢測該注冊表項的ImagePath鍵值項是否和配置文件中預(yù)設(shè)的值一致,檢測啟動類型Start是否被改為非自啟動類型,不一致時均調(diào)用相應(yīng)的注冊表函數(shù)將其修復(fù)為預(yù)設(shè)值。
[0076]假設(shè),待修復(fù)信息為毒霸驅(qū)動程序注冊表項,注冊表項的位置在HKEY_L0CAL_MACHINE\SYSTEM\CurrentControlSet\services\kisknl。調(diào)用目標(biāo)服務(wù)檢測該注冊表項的ImagePath鍵值項是否和配置文件中預(yù)設(shè)的值一致,檢測啟動類型Start是否被改為非自啟動類型,不一致時均調(diào)用相應(yīng)的注冊表函數(shù)將其修復(fù)為預(yù)設(shè)值。
[0077]假設(shè),待修復(fù)信息為目標(biāo)服務(wù)自身的注冊表項,獲取自身的隱藏啟動文件名和服務(wù)名,例如當(dāng)前的啟動文件名和服務(wù)名均是L f b w j,那么檢測S Y S T E M \ \CurrentContro I Set\\servi ces\\Lfbwj注冊表項的鍵值數(shù)據(jù)是否完整,不完整則進(jìn)行修復(fù),最關(guān)鍵要修復(fù)的是寫注冊表項中的ImagePath鍵值項,即% % SystemRoot % % \\System32\\svchost.exe_k C: \ffindows\System32\lfbwj\lfbwj.dll,這些數(shù)據(jù)也都是從配置文件中獲取到的。
[0078]在本發(fā)明的另一實施例中,在圖1所示實施例的基礎(chǔ)上,通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,還可以包括:
[0079]當(dāng)所述待修復(fù)信息包括文件時,通過調(diào)用所述目標(biāo)服務(wù),訪問所述待修復(fù)客戶端的升級程序,以使所述升級程序從所述待修復(fù)客戶端的升級服務(wù)器中下載所述文件,進(jìn)而修復(fù)所述文件。
[0080]本實施例中的文件包括普通文件和關(guān)鍵文件。在終端能夠連接待修復(fù)客戶端的服務(wù)器的情況下,即能夠聯(lián)網(wǎng)時,升級程序被調(diào)用后,會檢測待修復(fù)客戶端安裝目錄下所有文件的完整性以及損失的文件,發(fā)現(xiàn)存在文件損失或者文件過舊,都會從升級服務(wù)器中下載相應(yīng)的文件,并替換現(xiàn)有文件,這樣便實現(xiàn)了對文件的修復(fù)。
[0081]在本發(fā)明的另一實施例中,在圖1所示實施例的基礎(chǔ)上,通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,還可以包括:
[0082]當(dāng)所述待修復(fù)信息包括關(guān)鍵文件時,通過調(diào)用所述目標(biāo)服務(wù),從所述目標(biāo)服務(wù)的安裝目錄中獲取所述關(guān)鍵文件的備份文件,并以所述備份文件替換所述關(guān)鍵文件。
[0083]其中,備份文件可以是在目標(biāo)服務(wù)創(chuàng)建時存儲在其安裝目錄下的。
[0084]本實施例可以實現(xiàn)對關(guān)鍵文件的修復(fù)。當(dāng)包括升級程序在內(nèi)的關(guān)鍵文件被破壞時,無法通過調(diào)用升級程序?qū)崿F(xiàn)對待修復(fù)客戶端的文件進(jìn)行修復(fù),而應(yīng)用本實施例可以實現(xiàn)對包括升級程序在內(nèi)的關(guān)鍵文件的修復(fù),當(dāng)升級程序被修復(fù)時,可以繼續(xù)調(diào)用升級程序修復(fù)除關(guān)鍵文件之外的普通文件。較佳的,當(dāng)終端無法聯(lián)網(wǎng),無法調(diào)用升級程序修復(fù)相應(yīng)的文件時,應(yīng)用本實施例也能夠?qū)崿F(xiàn)對關(guān)鍵文件的修復(fù)。這樣,即便終端無法聯(lián)網(wǎng),也能夠保證對關(guān)鍵文件的修復(fù),從而提高客戶端被成功修復(fù)的可能性。
[0085]以上實施例中,所述目標(biāo)服務(wù)是用于修復(fù)待修復(fù)客戶端的,類似的,目標(biāo)服務(wù)還可以用于升級待升級客戶端,該方法可以包括:獲取待升級客戶端的待升級信息;調(diào)用所述待升級客戶端的目標(biāo)服務(wù)升級所述待升級信息;其中,所述目標(biāo)服務(wù)為根據(jù)所述目標(biāo)服務(wù)的注冊表項創(chuàng)建的服務(wù)。
[0086]類似的,目標(biāo)服務(wù)還可以用于推廣待推廣客戶端,該方法可以包括:獲取待推廣客戶端的待推廣信息;調(diào)用所述待推廣客戶端的目標(biāo)服務(wù)推廣所述待推廣信息;其中,所述目標(biāo)服務(wù)為根據(jù)所述目標(biāo)服務(wù)的注冊表項調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件創(chuàng)建的服務(wù),所述啟動文件為通過系統(tǒng)程序加載的文件。
[0087]在本發(fā)明的另一實施例中,在圖1所示實施例的基礎(chǔ)上,在通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息之前,所述方法還可以包括目標(biāo)服務(wù)的創(chuàng)建過程,該過程可以按照圖2所示的流程示意圖進(jìn)行,其可以包括步驟:
[0088]步驟S201:接收針對所述目標(biāo)服務(wù)的服務(wù)創(chuàng)建指令。
[0089]目標(biāo)服務(wù)包括能夠?qū)崿F(xiàn)對待修復(fù)客戶端進(jìn)行修復(fù)的功能。
[0090]服務(wù)創(chuàng)建指令可以是終端操作系統(tǒng)啟動后由操作系統(tǒng)生成的,具體的,可以是操作系統(tǒng)啟動后,讀取注冊表中的每個注冊表項,當(dāng)讀取到目標(biāo)服務(wù)的注冊表項時,生成的針對目標(biāo)服務(wù)的服務(wù)創(chuàng)建指令。
[0091]上述服務(wù)創(chuàng)建指令還可以是待修復(fù)客戶端在使用過程中根據(jù)實際需求生成的。
[0092]步驟S202:根據(jù)所述目標(biāo)服務(wù)的注冊表項,確定用于加載所述目標(biāo)服務(wù)的啟動文件的加載程序和所述啟動文件的路徑。
[0093]其中,所述啟動文件為通過系統(tǒng)程序加載的文件。
[0094]步驟S203:調(diào)用所述加載程序加載所述啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù)。
[0095]具體的,注冊表項中記錄了創(chuàng)建服務(wù)時所需要的加載程序以及啟動文件的路徑。當(dāng)啟動文件為需要通過系統(tǒng)程序加載的文件時,需要調(diào)用相應(yīng)的系統(tǒng)加載程序加載該啟動文件,當(dāng)目標(biāo)服務(wù)的啟動文件被加載完成后,所述目標(biāo)服務(wù)便創(chuàng)建完成。當(dāng)所述目標(biāo)服務(wù)創(chuàng)建完成時,在終端操作系統(tǒng)的任務(wù)管理器中會出現(xiàn)該系統(tǒng)加載程序?qū)?yīng)的系統(tǒng)進(jìn)程。由于該進(jìn)程屬于系統(tǒng)進(jìn)程,并且該系統(tǒng)加載程序也可以用于加載其他的文件,故任務(wù)管理器中可能存在不止一個這樣的系統(tǒng)進(jìn)程,故而采用這種方式創(chuàng)建的服務(wù)的隱蔽性更高,不容易被惡意程序檢測到。而現(xiàn)有技術(shù)中,目標(biāo)服務(wù)的啟動文件通常為可執(zhí)行程序,當(dāng)服務(wù)創(chuàng)建完成后,在任務(wù)管理器中出現(xiàn)的是該可執(zhí)行程序?qū)?yīng)的應(yīng)用程序進(jìn)程,這種進(jìn)程容易被惡意程序發(fā)現(xiàn),所創(chuàng)建的服務(wù)的隱蔽性不高,容易被惡意程序檢測到并破壞。
[0096]假設(shè),本實施例中的目標(biāo)服務(wù)的啟動文件為動態(tài)鏈接庫.dll文件,對應(yīng)的該系統(tǒng)加載程序可以為svchost.exe。也就是說,該目標(biāo)服務(wù)可以由系統(tǒng)加載程序svchost.exe加載啟動,當(dāng)服務(wù)創(chuàng)建完成之后,終端操作系統(tǒng)的任務(wù)管理器中會出現(xiàn)svchost.exe進(jìn)程,由于svchost.exe進(jìn)程在系統(tǒng)中存在不止一個,并且其屬于系統(tǒng)進(jìn)程,因此惡意程序或競爭對手不容易檢測到該目標(biāo)服務(wù)。
[0097]在本實施例中,所述目標(biāo)服務(wù)的注冊表項可以采用以下方式生成:
[0098]在安裝所述待修復(fù)客戶端時,獲取所述待修復(fù)客戶端的目標(biāo)服務(wù)的服務(wù)名和其啟動文件的路徑;根據(jù)所述目標(biāo)服務(wù)的服務(wù)名和其啟動文件的路徑,生成所述目標(biāo)服務(wù)的注冊表項。
[0099]具體的,目標(biāo)服務(wù)的服務(wù)名和其啟動文件的路徑可以從該待修復(fù)客戶端的配置文件中獲取,也可以以其他方式獲取,本發(fā)明對此不做限定。
[0100]在安裝待修復(fù)客戶端時,安裝程序會根據(jù)配置文件中的配置信息安裝各個文件,其中包括將目標(biāo)服務(wù)的啟動文件保存在相應(yīng)的目錄下。假設(shè),從配置文件中獲得的目標(biāo)服務(wù)的服務(wù)名為lfbwj,啟動文件為lfbwj.dll,并且安裝函程序可以將該啟動文件保存在C:\Windows\System32\lfbwj目錄下。對應(yīng)的,該啟動文件的路徑為C: \Windows\System32\lfbwj\lfbwj.dll。
[0101]在實際應(yīng)用中,生成目標(biāo)服務(wù)的注冊表項時,可以首先根據(jù)獲取的目標(biāo)服務(wù)的服務(wù)名拼接注冊表項的名稱,然后根據(jù)獲取的目標(biāo)服務(wù)的啟動文件的路徑,寫入該注冊表項中的服務(wù)程序鍵值IrnagePath,并且在該注冊表項中寫入該服務(wù)的描述,設(shè)置啟動類型等。
[0102]沿用上述例子,根據(jù)獲取的目標(biāo)服務(wù)的服務(wù)名Ifbwj,可以通過拼接得到注冊表項的名稱,即SYSTEM\\CurrentControISet\\services\\Lfbwj,然后調(diào)用注冊表函數(shù)RegCreateKeyEx和RegSetValueEx,根據(jù)獲取的啟動文件的路徑C: \ffindows\System32\Ifbwj\lfbwj.dll,創(chuàng)建鍵值ImagePath,并將其寫為:
[0103]% % SystemRoot % %\\System32\\svchost.exe_k C:\ffindows\System32\lfbwj\lfbwj.dll
[0104]上述ImagePath的內(nèi)容即表示,采用系統(tǒng)加載程序svchost.exe加載C: \Windows\System32\lfbwj目錄下的lfbwj.dll文件啟動。然后,倉ll建服務(wù)的描述和啟動類型等鍵值,并分別設(shè)置為指定值和類型。啟動類型包括自啟動類型(SERVICE_AUT0_START)和非自啟動類型(SERVICE_DEMAND_START)。
[0105]該注冊表項中的啟動類型可以設(shè)置為自啟動類型,也可以設(shè)置為非自啟動類型。優(yōu)選的,在生成目標(biāo)服務(wù)的注冊表項時,將啟動類型設(shè)置為自啟動類型,這樣,在下一次系統(tǒng)啟動過程中,可以及時地創(chuàng)建目標(biāo)服務(wù),從而保證目標(biāo)服務(wù)能夠盡可能早地被創(chuàng)建起來,進(jìn)而發(fā)揮該服務(wù)的作用。
[0106]由上述內(nèi)容可見,本發(fā)明實施例根據(jù)目標(biāo)服務(wù)的注冊表項,調(diào)用系統(tǒng)加載程序加載目標(biāo)服務(wù)的啟動文件,進(jìn)而創(chuàng)建該目標(biāo)服務(wù)的。當(dāng)采用系統(tǒng)加載程序加載啟動文件時,任務(wù)管理器中出現(xiàn)的是該系統(tǒng)加載程序?qū)?yīng)的系統(tǒng)進(jìn)程,由于這種系統(tǒng)進(jìn)程也可以用來加載其他的文件,任務(wù)管理器中的該系統(tǒng)進(jìn)程可能不止一個,因此惡意程序或競爭對手不容易檢測到該服務(wù)。所以,應(yīng)用本發(fā)明實施例提供給的方案創(chuàng)建的服務(wù),能夠提高服務(wù)的隱蔽性。
[0107]在另一實施例中,在圖2所示實施例的基礎(chǔ)上,惡意程序可能會檢測并破壞自啟動類型的注冊表項,為了進(jìn)一步增強(qiáng)服務(wù)的隱蔽性,所述方法還可以包括:
[0108]步驟1:判斷所述目標(biāo)服務(wù)的注冊表項中的啟動類型是否為自啟動類型,如果是,則執(zhí)行步驟2。
[0109]在檢測到目標(biāo)服務(wù)的創(chuàng)建完成時,即可實施本步驟。
[0110]步驟2:將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為非自啟動類型。
[0111]也就是說,當(dāng)目標(biāo)服務(wù)創(chuàng)建完成之后,如果目標(biāo)服務(wù)的注冊表項中的啟動類型為自啟動類型,為了提高目標(biāo)服務(wù)的隱蔽性,可以將其設(shè)置為非自啟動類型。一般情況下,自啟動類型的注冊表項更容易被惡意程序或競爭對手檢測到并破壞。在服務(wù)創(chuàng)建完成之后的瞬間,便將對應(yīng)的注冊表項設(shè)置為非自啟動類型,能夠避免惡意程序或競爭對手檢測到該服務(wù)的注冊表項,進(jìn)而能夠避免該注冊表項被篡改。
[0112]進(jìn)一步的,在服務(wù)創(chuàng)建完成之后,該服務(wù)的注冊表項中的啟動類型設(shè)置為了非自啟動類型,也就是說,當(dāng)終端操作系統(tǒng)關(guān)閉后再次啟動時,該服務(wù)不能隨著操作系統(tǒng)的啟動而被創(chuàng)建。為了保證目標(biāo)服務(wù)在系統(tǒng)再次啟動時能夠及時地被創(chuàng)建,圖2對應(yīng)的實施例還可以包括以下步驟:
[0113]步驟I:接收針對所述目標(biāo)服務(wù)的服務(wù)停止指令。
[0114]服務(wù)停止指令可以是在操作系統(tǒng)關(guān)閉時由操作系統(tǒng)生成的,也可以是由目標(biāo)服務(wù)在運行過程中根據(jù)實際需求生成的。
[0115]步驟2:停止所述目標(biāo)服務(wù)。
[0116]步驟3:將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為自啟動類型。
[0117]可以理解的是,步驟2和步驟3的執(zhí)行不分先后順序,也可以同時執(zhí)行。在接收到針對所述目標(biāo)服務(wù)的服務(wù)停止指令時,停止所述目標(biāo)服務(wù)屬于現(xiàn)有技術(shù),其具體過程不再贅述。
[0118]在本實施例中,在目標(biāo)服務(wù)將要停止的時刻,將目標(biāo)服務(wù)對應(yīng)的注冊表項設(shè)置為自啟動類型,即可以實現(xiàn)在系統(tǒng)再次啟動時,將目標(biāo)服務(wù)創(chuàng)建起來,從而保證目標(biāo)服務(wù)能夠隨著系統(tǒng)的啟動而被創(chuàng)建。
[0119]綜合起來分析,當(dāng)服務(wù)創(chuàng)建完成時,將該服務(wù)的注冊表項設(shè)置為非自啟動類型,當(dāng)服務(wù)將要停止時,再將該服務(wù)的注冊表項設(shè)置為自啟動類型,既能夠保證服務(wù)創(chuàng)建完成之后該服務(wù)的注冊表項不容易被檢測到,又能夠保證在系統(tǒng)再次啟動時該服務(wù)也能夠被創(chuàng)建起來。
[0120]在本發(fā)明的另一實施例中,在圖2所示實施例的基礎(chǔ)上,當(dāng)根據(jù)所述目標(biāo)服務(wù)的注冊表項,創(chuàng)建所述目標(biāo)服務(wù)之后,所述方法還可以包括:注冊所述目標(biāo)服務(wù)的回調(diào)函數(shù)。
[0121]對應(yīng)的,圖2所示實施例中,將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為非自啟動類型,可以包括:采用所述回調(diào)函數(shù)將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為非自啟動類型;以及,將所述待創(chuàng)建服務(wù)的注冊表項中的啟動類型設(shè)置為自啟動類型,可以包括:采用所述回調(diào)函數(shù)將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為自啟動類型。
[0122]在實際應(yīng)用中,可以經(jīng)由ServceMain函數(shù),調(diào)用Regis ter ServiceCtr IHandler函數(shù)注冊目標(biāo)服務(wù)的回調(diào)函數(shù),該回調(diào)函數(shù)可以是針對服務(wù)開啟和服務(wù)停止分別注冊的,當(dāng)檢測到目標(biāo)服務(wù)創(chuàng)建完成時,服務(wù)開啟的回調(diào)函數(shù)將對應(yīng)的注冊表項設(shè)置為非自啟動類型,當(dāng)接收到針對目標(biāo)服務(wù)的服務(wù)停止指令時,服務(wù)停止的回調(diào)函數(shù)將對應(yīng)的注冊表項設(shè)置為自啟動類型。
[0123]在本實施例中,通過注冊的回調(diào)函數(shù),實現(xiàn)對目標(biāo)服務(wù)的注冊表項中的啟動類型的重新設(shè)置,能夠提高重置注冊表項中鍵值的效率。
[0124]在本發(fā)明的另一實施例中,在圖2所示實施例的基礎(chǔ)上,所述方法還可以包括以下步驟:
[0125]步驟1:按照預(yù)設(shè)時間間隔,獲取所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名和其啟動文件的當(dāng)前路徑。
[0126]其中,按照不同的預(yù)設(shè)時間間隔,獲取的所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名不同,獲取的所述目標(biāo)服務(wù)的啟動文件的當(dāng)前路徑不同。當(dāng)前服務(wù)名和其啟動文件的當(dāng)前路徑,可以通過待修復(fù)客戶端的配置文件獲取,也可以通過其他方式獲取,本發(fā)明對此不做限定。預(yù)設(shè)時間間隔可以為1分鐘,也可以為2個小時,本發(fā)明對此不做限定。
[0127]在實際應(yīng)用中,待修復(fù)客戶端可以采用特定的模塊按照某種規(guī)則設(shè)置目標(biāo)服務(wù)的服務(wù)名和啟動文件的名稱,使服務(wù)名和啟動文件的名稱按照預(yù)設(shè)時間間隔變化,對應(yīng)的,該特定的模塊還可以修改啟動文件的路徑,并將當(dāng)前服務(wù)名和其啟動文件的當(dāng)前路徑發(fā)送給終端。當(dāng)然,這只是獲取當(dāng)前服務(wù)名和其啟動文件的當(dāng)前路徑的一種方式,還可以有其他獲取方式。一般情況下,服務(wù)名和啟動文件的名稱是對應(yīng)一致的。當(dāng)啟動文件的名稱更改后,其存儲路徑對應(yīng)地也需要進(jìn)行修改,啟動文件本身是不變的,只是修改其名稱,啟動文件的名稱變化了,其路徑也相應(yīng)地不同。
[0128]步驟2:根據(jù)獲取的當(dāng)前服務(wù)名和當(dāng)前路徑,重新生成或更新所述目標(biāo)服務(wù)的注冊表項。
[0129]在本實施例中,不斷地更換目標(biāo)服務(wù)的服務(wù)名及其啟動文件的路徑,對應(yīng)的,目標(biāo)服務(wù)的注冊表項也是不斷變化的,這樣可以更加有效地避免惡意程序或競爭對手檢測到該目標(biāo)服務(wù)的注冊表項及目標(biāo)服務(wù)的啟動文件,從而提高了目標(biāo)服務(wù)的隱蔽性。
[0130]圖3為本發(fā)明實施例提供的客戶端的修復(fù)裝置的一種結(jié)構(gòu)示意圖,應(yīng)用于終端,與圖1所示方法實施例相對應(yīng),所述裝置包括獲取模塊301和修復(fù)模塊302;
[0131 ]其中,獲取模塊301,用于獲取待修復(fù)客戶端的待修復(fù)信息;
[0132]修復(fù)模塊302,用于通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息;其中,所述目標(biāo)服務(wù)為所述待修復(fù)客戶端的服務(wù),所述目標(biāo)服務(wù)采用以下方式獲得:根據(jù)所述目標(biāo)服務(wù)的注冊表項,調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù);所述啟動文件為通過系統(tǒng)程序加載的文件。
[0133]在本實施例中,所述修復(fù)模塊302具體可以用于:
[0134]當(dāng)所述待修復(fù)信息包括關(guān)鍵注冊表項時,通過調(diào)用所述目標(biāo)服務(wù),獲取所述待修復(fù)客戶端的配置文件,根據(jù)所述配置文件中的信息,修復(fù)所述關(guān)鍵注冊表項。
[0135]在本實施例中,所述修復(fù)模塊302還可以用于:
[0136]當(dāng)所述待修復(fù)信息包括文件時,通過調(diào)用所述目標(biāo)服務(wù),訪問所述待修復(fù)客戶端的升級程序,以使所述升級程序從所述待修復(fù)客戶端的升級服務(wù)器中下載所述文件,進(jìn)而修復(fù)所述文件。
[0137]在本實施例中,所述修復(fù)模塊302還可以用于:
[0138]當(dāng)所述待修復(fù)信息包括關(guān)鍵文件時,通過調(diào)用所述目標(biāo)服務(wù),從所述目標(biāo)服務(wù)的安裝目錄中獲取所述關(guān)鍵文件的備份文件,并以所述備份文件替換所述關(guān)鍵文件。
[0139]在本實施例中,所述裝置還可以包括接收模塊、確定模塊和創(chuàng)建模塊(圖中未示出);
[0140]其中,所述接收模塊,用于在通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息之前,接收針對所述目標(biāo)服務(wù)的服務(wù)創(chuàng)建指令;
[0141 ]所述確定模塊,用于根據(jù)所述目標(biāo)服務(wù)的注冊表項,確定用于加載所述目標(biāo)服務(wù)的啟動文件的加載程序和所述啟動文件的路徑,其中,所述啟動文件為通過系統(tǒng)程序加載的文件;
[0142]所述創(chuàng)建模塊,用于調(diào)用所述加載程序加載所述啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù)。
[0143]在本實施例中,所述裝置還可以包括判斷模塊和設(shè)置模塊(圖中未示出);
[0144]所述判斷模塊,用于判斷所述目標(biāo)服務(wù)的注冊表項中的啟動類型是否為自啟動類型;
[0145]所述設(shè)置模塊,用于當(dāng)所述目標(biāo)服務(wù)的注冊表項中的啟動類型為自啟動類型時,將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為非自啟動類型。
[0146]在本實施例中,所述裝置還可以包括停止模塊(圖中未示出);
[0147]所述接收模塊,還可以用于接收針對所述目標(biāo)服務(wù)的服務(wù)停止指令;
[0148]所述停止模塊,用于在接收到針對所述目標(biāo)服務(wù)的服務(wù)停止指令時,停止所述目標(biāo)服務(wù);
[0149]所述設(shè)置模塊,還可以用于在接收到針對所述目標(biāo)服務(wù)的服務(wù)停止指令時,將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為自啟動類型。
[0150]在本實施例中,所述裝置還包括注冊模塊(圖中未示出);
[0151 ]所述注冊模塊,用于在根據(jù)所述目標(biāo)服務(wù)的注冊表項,創(chuàng)建所述目標(biāo)服務(wù)之后,注冊所述目標(biāo)服務(wù)的回調(diào)函數(shù);
[0152]所述設(shè)置模塊,具體可以用于在注冊所述目標(biāo)服務(wù)的回調(diào)函數(shù)之后,采用所述回調(diào)函數(shù)將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為非自啟動類型;
[0153]所述設(shè)置模塊,還可以用于在注冊所述目標(biāo)服務(wù)的回調(diào)函數(shù)之后,采用所述回調(diào)函數(shù)將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為自啟動類型。
[0154]在本實施例中,所述裝置還可以包括生成模塊(圖中未示出);
[0155]所述獲取模塊301,具體可以用于在安裝所述待修復(fù)客戶端時,獲取所述待修復(fù)客戶端的目標(biāo)服務(wù)的服務(wù)名和其啟動文件的路徑;
[0156]所述生成模塊,用于根據(jù)所述待創(chuàng)建服務(wù)的服務(wù)名和其啟動文件的路徑,生成所述待創(chuàng)建服務(wù)的注冊表項。
[0157]在本實施例中,所述獲取模塊301,還可以用于按照預(yù)設(shè)時間間隔,獲取所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名和其啟動文件的當(dāng)前路徑;其中,按照不同的預(yù)設(shè)時間間隔,獲取的所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名不同,獲取的所述目標(biāo)服務(wù)的啟動文件的當(dāng)前路徑不同;
[0158]所述生成模塊,還可以用于根據(jù)獲取的當(dāng)前服務(wù)名和當(dāng)前路徑,重新生成或更新所述目標(biāo)服務(wù)的注冊表項。
[0159]由于上述裝置實施例是基于修復(fù)方法實施例得到的,與該方法具有相同的技術(shù)效果,因此裝置實施例的技術(shù)效果在此不再贅述。
[0160]對于裝置實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0161]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0162]本領(lǐng)域普通技術(shù)人員可以理解,上述實施方式中的全部或部分步驟是能夠通過程序指令相關(guān)的硬件來完成的,所述的程序可以存儲于計算機(jī)可讀取存儲介質(zhì)中。這里所稱存儲介質(zhì),是指R0M/RAM、磁碟、光盤等。
[0163]以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項】
1.一種客戶端的修復(fù)方法,其特征在于,應(yīng)用于終端,所述方法包括: 獲取待修復(fù)客戶端的待修復(fù)信息; 通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息; 其中,所述目標(biāo)服務(wù)為所述待修復(fù)客戶端的服務(wù),所述目標(biāo)服務(wù)采用以下方式獲得: 根據(jù)所述目標(biāo)服務(wù)的注冊表項,調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù); 所述啟動文件為通過系統(tǒng)程序加載的文件。2.根據(jù)權(quán)利要求1所述的修復(fù)方法,其特征在于,所述通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,包括: 當(dāng)所述待修復(fù)信息包括關(guān)鍵注冊表項時,通過調(diào)用所述目標(biāo)服務(wù),獲取所述待修復(fù)客戶端的配置文件,根據(jù)所述配置文件中的信息,修復(fù)所述關(guān)鍵注冊表項。3.根據(jù)權(quán)利要求1所述的修復(fù)方法,其特征在于,所述通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,包括: 當(dāng)所述待修復(fù)信息包括文件時,通過調(diào)用所述目標(biāo)服務(wù),訪問所述待修復(fù)客戶端的升級程序,以使所述升級程序從所述待修復(fù)客戶端的升級服務(wù)器中下載所述文件,進(jìn)而修復(fù)所述文件。4.根據(jù)權(quán)利要求1所述的修復(fù)方法,其特征在于,所述通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息,包括: 當(dāng)所述待修復(fù)信息包括關(guān)鍵文件時,通過調(diào)用所述目標(biāo)服務(wù),從所述目標(biāo)服務(wù)的安裝目錄中獲取所述關(guān)鍵文件的備份文件,并以所述備份文件替換所述關(guān)鍵文件。5.根據(jù)權(quán)利要求1-4中任一項所述的修復(fù)方法,其特征在于,在通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息之前,所述方法還包括: 接收針對所述目標(biāo)服務(wù)的服務(wù)創(chuàng)建指令; 根據(jù)所述目標(biāo)服務(wù)的注冊表項,確定用于加載所述目標(biāo)服務(wù)的啟動文件的加載程序和所述啟動文件的路徑,其中,所述啟動文件為通過系統(tǒng)程序加載的文件; 調(diào)用所述加載程序加載所述啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù)。6.根據(jù)權(quán)利要求5所述的修復(fù)方法,其特征在于,所述方法還包括: 判斷所述目標(biāo)服務(wù)的注冊表項中的啟動類型是否為自啟動類型; 如果是,則將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為非自啟動類型。7.根據(jù)權(quán)利要求5所述的修復(fù)方法,其特征在于,所述方法還包括: 接收針對所述目標(biāo)服務(wù)的服務(wù)停止指令; 停止所述目標(biāo)服務(wù),并將所述目標(biāo)服務(wù)的注冊表項中的啟動類型設(shè)置為自啟動類型。8.根據(jù)權(quán)利要求5所述的修復(fù)方法,其特征在于,所述方法還包括: 按照預(yù)設(shè)時間間隔,獲取所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名和其啟動文件的當(dāng)前路徑;其中,按照不同的預(yù)設(shè)時間間隔,獲取的所述目標(biāo)服務(wù)的當(dāng)前服務(wù)名不同,獲取的所述目標(biāo)服務(wù)的啟動文件的當(dāng)前路徑不同; 根據(jù)獲取的當(dāng)前服務(wù)名和當(dāng)前路徑,重新生成或更新所述目標(biāo)服務(wù)的注冊表項。9.一種客戶端的修復(fù)裝置,其特征在于,應(yīng)用于終端,所述裝置包括: 獲取模塊,用于獲取待修復(fù)客戶端的待修復(fù)信息; 修復(fù)模塊,用于通過調(diào)用目標(biāo)服務(wù)修復(fù)所述待修復(fù)信息;其中,所述目標(biāo)服務(wù)為所述待修復(fù)客戶端的服務(wù),所述目標(biāo)服務(wù)采用以下方式獲得:根據(jù)所述目標(biāo)服務(wù)的注冊表項,調(diào)用加載程序加載所述目標(biāo)服務(wù)的啟動文件,進(jìn)而創(chuàng)建所述目標(biāo)服務(wù);所述啟動文件為通過系統(tǒng)程序加載的文件。10.根據(jù)權(quán)利要求9所述的修復(fù)裝置,其特征在于,所述修復(fù)模塊具體用于: 當(dāng)所述待修復(fù)信息包括關(guān)鍵注冊表項時,通過調(diào)用所述目標(biāo)服務(wù),獲取所述待修復(fù)客戶端的配置文件,根據(jù)所述配置文件中的信息,修復(fù)所述關(guān)鍵注冊表項。
【文檔編號】G06F21/56GK106022125SQ201610286627
【公開日】2016年10月12日
【申請日】2016年5月3日
【發(fā)明人】李文靖
【申請人】北京金山安全軟件有限公司