一種軟件的安裝方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種軟件的安裝方法及裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,人們?cè)谑褂糜?jì)算機(jī)時(shí),越來(lái)越多地依賴應(yīng)用程序進(jìn)行各種工作和活動(dòng),因此,人們對(duì)應(yīng)用程序的使用也越來(lái)越多。
[0003]目前,可以利用第三方壓縮工具將軟件源文件進(jìn)行壓縮,并在安裝時(shí)進(jìn)行解壓縮,通過(guò)將解壓縮后的源文件拷貝到安裝位置,以實(shí)現(xiàn)軟件的安裝。
[0004]然而,第三方壓縮工具具有固定的特征碼,且在安裝時(shí)計(jì)算機(jī)會(huì)根據(jù)特征庫(kù)里存儲(chǔ)的惡意工具的特征碼,對(duì)該第三方壓縮工具的特征碼進(jìn)行識(shí)別,若識(shí)別出該第三方壓縮工具為惡意工具,則會(huì)對(duì)該軟件的安裝造成攔截,從而無(wú)法實(shí)現(xiàn)軟件的正常安裝。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供一種軟件的安裝方法及裝置,以實(shí)現(xiàn)軟件的正常安裝。
[0006]第一方面,本發(fā)明提供了一種軟件的安裝方法,包括:
[0007]確定待安裝目標(biāo)軟件的源文件所對(duì)應(yīng)的目錄結(jié)構(gòu),根據(jù)所述目錄結(jié)構(gòu)將所述源文件抽取出來(lái)并進(jìn)行自定義形式的壓縮,在自定義形式的壓縮過(guò)程中,隨機(jī)生成特征碼添加到壓縮包上;
[0008]在接收到所述目標(biāo)軟件的安裝指令時(shí),確定為所述目標(biāo)軟件配置的安裝路徑;
[0009]對(duì)所述壓縮包上的特征碼進(jìn)行識(shí)別,在惡意特征碼庫(kù)中不包括所述壓縮包上的特征碼時(shí),啟動(dòng)所述目標(biāo)軟件的安裝主進(jìn)程,以將所述壓縮包內(nèi)的源文件解壓縮到所述安裝路徑上。
[0010]優(yōu)選地,
[0011]進(jìn)一步包括:將確定的待安裝目標(biāo)軟件的源文件所對(duì)應(yīng)的目錄結(jié)構(gòu)存儲(chǔ)到ini配置文件中;
[0012]所述將所述壓縮包內(nèi)的源文件解壓縮到所述安裝路徑上,包括:在所述壓縮包中抽出所述源文件,并根據(jù)所述ini配置文件在所述安裝路徑上還原所述目錄結(jié)構(gòu)。
[0013]優(yōu)選地,進(jìn)一步包括:
[0014]在接收到針對(duì)所述目標(biāo)軟件的卸載指令時(shí),啟動(dòng)所述目標(biāo)軟件的卸載主進(jìn)程,以對(duì)所述目標(biāo)軟件的安裝路徑上除與所述卸載主進(jìn)程相關(guān)的文件以外的文件刪除,并在提示卸載結(jié)束后,判斷所述卸載主進(jìn)程是否處于運(yùn)行狀態(tài),若所述卸載主進(jìn)程處于運(yùn)行狀態(tài),則等待所述卸載主進(jìn)程運(yùn)行結(jié)束,在所述卸載主進(jìn)程運(yùn)行結(jié)束后,刪除與所述卸載主進(jìn)程相關(guān)的文件。
[0015]優(yōu)選地,所述等待所述卸載主進(jìn)程運(yùn)行結(jié)束,包括:
[0016]在設(shè)定時(shí)間段內(nèi),所述卸載主進(jìn)程依然處于運(yùn)行狀態(tài)時(shí),則向所述卸載主進(jìn)程發(fā)送停止指令,以強(qiáng)制關(guān)閉所述卸載主進(jìn)程。
[0017]優(yōu)選地,進(jìn)一步包括:
[0018]對(duì)安裝主進(jìn)程或卸載主進(jìn)程所需要執(zhí)行的操作分別進(jìn)行編碼,并將分別進(jìn)行的編碼存儲(chǔ)至boost庫(kù)中,在啟動(dòng)所述安裝主進(jìn)程或所述卸載主進(jìn)程時(shí),根據(jù)當(dāng)前操作系統(tǒng)所支持的語(yǔ)言,從所述boost庫(kù)中調(diào)用相應(yīng)函數(shù),以執(zhí)行所述安裝主進(jìn)程的操作或所述卸載主進(jìn)程的操作。
[0019]第二方面,本發(fā)明提供了一種軟件的安裝裝置,包括:
[0020]壓縮單元,用于確定待安裝目標(biāo)軟件的源文件所對(duì)應(yīng)的目錄結(jié)構(gòu),根據(jù)所述目錄結(jié)構(gòu)將所述源文件抽取出來(lái)并進(jìn)行自定義形式的壓縮,在自定義形式的壓縮過(guò)程中,隨機(jī)生成特征碼添加到壓縮包上;
[0021]確定單元,用于在接收到所述目標(biāo)軟件的安裝指令時(shí),確定為所述目標(biāo)軟件配置的安裝路徑;
[0022]安裝單元,用于對(duì)所述壓縮包上的特征碼進(jìn)行識(shí)別,在惡意特征碼庫(kù)中不包括所述壓縮包上的特征碼時(shí),啟動(dòng)所述目標(biāo)軟件的安裝主進(jìn)程,以將所述壓縮包內(nèi)的源文件解壓縮到所述安裝路徑上。
[0023]優(yōu)選地,
[0024]進(jìn)一步包括:存儲(chǔ)單元,用于將確定的待安裝目標(biāo)軟件的源文件所對(duì)應(yīng)的目錄結(jié)構(gòu)存儲(chǔ)到ini配置文件中;
[0025]所述安裝單元,具體用于在所述壓縮包中抽出所述源文件,并根據(jù)所述ini配置文件在所述安裝路徑上還原所述目錄結(jié)構(gòu)。
[0026]優(yōu)選地,進(jìn)一步包括:
[0027]卸載單元,用于在接收到針對(duì)所述目標(biāo)軟件的卸載指令時(shí),啟動(dòng)所述目標(biāo)軟件的卸載主進(jìn)程,以對(duì)所述目標(biāo)軟件的安裝路徑上除與所述卸載主進(jìn)程相關(guān)的文件以外的文件刪除,并在提示卸載結(jié)束后,判斷所述卸載主進(jìn)程是否處于運(yùn)行狀態(tài),若所述卸載主進(jìn)程處于運(yùn)行狀態(tài),則等待所述卸載主進(jìn)程運(yùn)行結(jié)束,在所述卸載主進(jìn)程運(yùn)行結(jié)束后,刪除與所述卸載主進(jìn)程相關(guān)的文件。
[0028]優(yōu)選地,
[0029]所述卸載單元,具體用于在設(shè)定時(shí)間段內(nèi),所述卸載主進(jìn)程依然處于運(yùn)行狀態(tài)時(shí),則向所述卸載主進(jìn)程發(fā)送停止指令,以強(qiáng)制關(guān)閉所述卸載主進(jìn)程。
[0030]優(yōu)選地,進(jìn)一步包括:
[0031]處理單元,用于對(duì)安裝主進(jìn)程或卸載主進(jìn)程所需要執(zhí)行的操作分別進(jìn)行編碼,并將分別進(jìn)行的編碼存儲(chǔ)至boost庫(kù)中,在啟動(dòng)所述安裝主進(jìn)程或所述卸載主進(jìn)程時(shí),根據(jù)當(dāng)前操作系統(tǒng)所支持的語(yǔ)言,從所述boost庫(kù)中調(diào)用相應(yīng)函數(shù),以執(zhí)行所述安裝主進(jìn)程的操作或所述卸載主進(jìn)程的操作。
[0032]本發(fā)明實(shí)施例提供了一種軟件的安裝方法及裝置,通過(guò)對(duì)目標(biāo)軟件的源文件進(jìn)行自定義形式的壓縮,在壓縮過(guò)程中將隨機(jī)生成的特征碼添加到壓縮包上,從而可以保證在對(duì)特征碼進(jìn)行識(shí)別時(shí),惡意特征碼庫(kù)中出現(xiàn)該隨機(jī)生成的特征碼的概率較小,從而可以實(shí)現(xiàn)軟件的正常安裝。
【附圖說(shuō)明】
[0033]圖1是本發(fā)明實(shí)施例提供的方法流程圖;
[0034]圖2是本發(fā)明另一實(shí)施例提供的方法流程圖;
[0035]圖3是本發(fā)明實(shí)施例提供的源文件及目錄結(jié)構(gòu)示意圖;
[0036]圖4是本發(fā)明實(shí)施例提供的裝置所在設(shè)備的硬件架構(gòu)圖;
[0037]圖5是本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)示意圖;
[0038]圖6是本發(fā)明另一實(shí)施例提供的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040]如圖1所示,本發(fā)明實(shí)施例提供了一種軟件的安裝方法,該方法可以包括以下步驟:
[0041]步驟101:確定待安裝目標(biāo)軟件的源文件所對(duì)應(yīng)的目錄結(jié)構(gòu),根據(jù)目錄結(jié)構(gòu)將源文件抽取出來(lái)并進(jìn)行自定義形式的壓縮,在自定義形式的壓縮過(guò)程中,隨機(jī)生成特征碼添加到壓縮包上。
[0042]步驟102:在接收到目標(biāo)軟件的安裝指令時(shí),確定為目標(biāo)軟件配置的安裝路徑。
[0043]步驟103:對(duì)壓縮包上的特征碼進(jìn)行識(shí)別,在惡意特征碼庫(kù)中不包括壓縮包上的特征碼時(shí),啟動(dòng)目標(biāo)軟件的安裝主進(jìn)程,以將壓縮包內(nèi)的源文件解壓縮到安裝路徑上。
[0044]根據(jù)本方案,通過(guò)對(duì)目標(biāo)軟件的源文件進(jìn)行自定義形式的壓縮,在壓縮過(guò)程中將隨機(jī)生成的特征碼添加到壓縮包上,從而可以保證在對(duì)特征碼進(jìn)行識(shí)別時(shí),惡意特征碼庫(kù)中出現(xiàn)該隨機(jī)生成的特征碼的概率較小,從而可以實(shí)現(xiàn)軟件的正常安裝。
[0045]由于在安裝軟件的過(guò)程中,需要對(duì)軟件的源文件進(jìn)行壓縮以實(shí)現(xiàn)對(duì)源文件的加密,使得其他程序無(wú)法獲知到該源文件,相應(yīng)的,在安裝軟件時(shí),需要對(duì)壓縮包進(jìn)行解壓縮,因此,需要記錄壓縮前源文件的目錄結(jié)構(gòu),在本發(fā)明一個(gè)優(yōu)選實(shí)施例中,進(jìn)一步包括:將確定的待安裝目標(biāo)軟件的源文件所對(duì)應(yīng)的目錄結(jié)構(gòu)存儲(chǔ)到ini配置文件中;將壓縮包內(nèi)的源文件解壓縮到安裝路徑上,包括:在壓縮包中抽出源文件,并根據(jù)ini配置文件在安裝路徑上還原目錄結(jié)構(gòu)。從而可以保證解壓縮得到的源文件以及目錄結(jié)構(gòu)的正確性。
[0046]由于現(xiàn)有技術(shù)的軟件卸載過(guò)程中,卸載主進(jìn)程是無(wú)法將自身以及自身所在文件夾刪除的,因此在卸載結(jié)束后會(huì)有文件殘留,本發(fā)明一個(gè)優(yōu)選實(shí)施例中,在接收到針對(duì)目標(biāo)軟件的卸載指令時(shí),啟動(dòng)目標(biāo)軟件的卸載主進(jìn)程,以對(duì)目標(biāo)軟件的安裝路徑上除與卸載主進(jìn)程相關(guān)的文件以外的文件刪除,并在提示卸載結(jié)束后,判斷卸載主進(jìn)程是否處于運(yùn)行狀態(tài),若卸載主進(jìn)程處于運(yùn)行狀態(tài),則等待卸載主進(jìn)程運(yùn)行結(jié)束,在卸載主進(jìn)程運(yùn)行結(jié)束后,刪除與卸載主進(jìn)程相關(guān)的文件,從而可以