一種保護(hù)操作系統(tǒng)的方法、裝置及電子設(shè)備的制造方法
【專(zhuān)利摘要】本發(fā)明的實(shí)施例公開(kāi)一種保護(hù)操作系統(tǒng)的方法、裝置及電子設(shè)備。方法包括:在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù);獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序;如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。應(yīng)用本發(fā)明,可以提升操作系統(tǒng)的安全防護(hù)效率。
【專(zhuān)利說(shuō)明】
一種保護(hù)操作系統(tǒng)的方法、裝置及電子設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù),尤其涉及一種保護(hù)操作系統(tǒng)的方法、裝置及電子設(shè)備。
【背景技術(shù)】
[0002]隨著Windows操作系統(tǒng)內(nèi)核層技術(shù)細(xì)節(jié)的逐漸公開(kāi),越來(lái)越多的木馬病毒等惡意應(yīng)用程序開(kāi)始使用內(nèi)核層驅(qū)動(dòng)程序來(lái)保護(hù)自身的進(jìn)程,受內(nèi)核層驅(qū)動(dòng)程序保護(hù)的惡意應(yīng)用程序的進(jìn)程,可以結(jié)束(殺死Windows操作系統(tǒng)中的其它進(jìn)程,從而使得惡意應(yīng)用程序的進(jìn)程可以根據(jù)惡意應(yīng)用程序提供者的意圖,對(duì)用戶(hù)的進(jìn)程或系統(tǒng)進(jìn)程進(jìn)行惡意攻擊,可能造成計(jì)算機(jī)運(yùn)行不穩(wěn)定,甚至可能給用戶(hù)帶來(lái)非常大的經(jīng)濟(jì)損失,例如,惡意關(guān)閉或重啟計(jì)算機(jī)系統(tǒng),從而破壞計(jì)算機(jī)戶(hù)系統(tǒng),導(dǎo)致用戶(hù)數(shù)據(jù)被損壞。其中,進(jìn)程(Process)是計(jì)算機(jī)中的應(yīng)用程序關(guān)于數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是Windows操作系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是Windows操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。在早期面向進(jìn)程設(shè)計(jì)的計(jì)算機(jī)結(jié)構(gòu)中,進(jìn)程是應(yīng)用程序的基本執(zhí)行實(shí)體;在當(dāng)代面向線(xiàn)程設(shè)計(jì)的計(jì)算機(jī)結(jié)構(gòu)中,進(jìn)程是線(xiàn)程的容器。也就是說(shuō),應(yīng)用程序是指令、數(shù)據(jù)及其組織形式的描述,進(jìn)程是應(yīng)用程序的實(shí)體。
[0003]目前,保護(hù)Windows操作系統(tǒng)不被非法關(guān)機(jī)或重啟的方法是利用鉤子(HOOK)技術(shù),通過(guò)對(duì)關(guān)機(jī)或重啟Windows操作系統(tǒng)的關(guān)機(jī)函數(shù)進(jìn)行鉤子處理,從而實(shí)現(xiàn)對(duì)進(jìn)程的過(guò)濾、監(jiān)控,可以防止應(yīng)用層進(jìn)程被惡意應(yīng)用程序的進(jìn)程結(jié)束,從而有效防控惡意進(jìn)程對(duì)關(guān)閉和重啟操作系統(tǒng)的惡意攻擊。
[0004]在Windows操作系統(tǒng)中,應(yīng)用層進(jìn)程關(guān)閉和重啟操作系統(tǒng)將會(huì)調(diào)用ExitWindows函數(shù)或ExitWindowsEx函數(shù)來(lái)實(shí)現(xiàn)。因而,為了保護(hù)操作系統(tǒng)不被惡意關(guān)閉和重啟,現(xiàn)有防止操作系統(tǒng)被惡意關(guān)機(jī)或重啟的方法是通過(guò)Hook應(yīng)用層進(jìn)程的關(guān)機(jī)函數(shù)ExitWindows函數(shù)和ExitWindowsEx函數(shù),在監(jiān)測(cè)到有進(jìn)程調(diào)用關(guān)機(jī)函數(shù)ExitWindows函數(shù)或ExitWindowsEx函數(shù)時(shí),進(jìn)行攔截處理以保護(hù)操作系統(tǒng)被惡意關(guān)機(jī)或重啟。
[0005]但該防止操作系統(tǒng)被惡意關(guān)機(jī)或重啟的方法,由于關(guān)機(jī)函數(shù)ExitWindows函數(shù)或ExitWindowsEx函數(shù)對(duì)應(yīng)于內(nèi)核的函數(shù)是NtShutdownSystem,因而,在應(yīng)用層進(jìn)程調(diào)用ExitWindows函數(shù)或ExitWindowsEx函數(shù)關(guān)閉和重啟操作系統(tǒng)時(shí),ExitWindows函數(shù)或ExitWindowsEx函數(shù)需要再調(diào)用內(nèi)核NtShutdownSystem函數(shù)來(lái)關(guān)閉和重啟操作系統(tǒng),使得真正完成關(guān)閉和重啟操作系統(tǒng)的函數(shù)是內(nèi)核NtShutdownSystem函數(shù),從而使得惡意應(yīng)用程序可以通過(guò)直接調(diào)用內(nèi)核NtShutdownSystem函數(shù)來(lái)實(shí)現(xiàn)對(duì)操作系統(tǒng)的惡意關(guān)機(jī)或重啟操作,導(dǎo)致用戶(hù)數(shù)據(jù)未及時(shí)存儲(chǔ)而被損壞,不能有效防止操作系統(tǒng)的惡意關(guān)機(jī)或重啟,導(dǎo)致Windows操作系統(tǒng)的安全防護(hù)效率較低,安全性不高。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明實(shí)施例提供一種保護(hù)操作系統(tǒng)的方法、裝置及電子設(shè)備,提升操作系統(tǒng)的安全防護(hù)效率。
[0007]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0008]第一方面,本發(fā)明實(shí)施例提供一種保護(hù)操作系統(tǒng)的方法,包括:
[0009]在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù);
[0010]獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序;
[0011]如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。
[0012]可選的,所述應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)包括:
[0013]應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。
[0014]可選的,所述應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)包括:
[0015]應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)退出函數(shù),所述操作系統(tǒng)退出函數(shù)調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。
[0016]可選的,所述獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息包括:
[0017]獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí)的內(nèi)存地址;
[0018]解析所述內(nèi)存地址,得到調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程句柄;
[0019]利用所述進(jìn)程句柄的內(nèi)核對(duì)象獲取進(jìn)程路徑信息。
[0020]可選的,所述方法還包括:
[0021]如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序不相同,通知所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)執(zhí)行操作系統(tǒng)關(guān)機(jī)或重啟操作。
[0022]可選的,所述應(yīng)用程序特征庫(kù)由用戶(hù)在本地進(jìn)行設(shè)置,所述方法還包括:
[0023]將拒絕的應(yīng)用程序信息上報(bào)至預(yù)先設(shè)置的網(wǎng)絡(luò)服務(wù)器。
[0024]第二方面,本發(fā)明實(shí)施例提供一種保護(hù)操作系統(tǒng)的裝置,包括:鉤子模塊、應(yīng)用程序提取模塊以及操作處理模塊,其中,
[0025]鉤子模塊,用于在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù);
[0026]應(yīng)用程序提取模塊,用于獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序;
[0027]操作處理模塊,如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。
[0028]可選的,所述鉤子模塊包括:鉤子函數(shù)注入單元、操作請(qǐng)求單元、進(jìn)程創(chuàng)建單元、第一監(jiān)測(cè)單元以及鉤子單元,其中,
[0029]鉤子函數(shù)注入單元,用于在內(nèi)核層中注入預(yù)先設(shè)置的鉤子函數(shù),在操作系統(tǒng)啟動(dòng)后,激活所述鉤子函數(shù);
[0030]操作請(qǐng)求單元,用于接收應(yīng)用程序向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求;
[0031]進(jìn)程創(chuàng)建單元,用于依據(jù)所述關(guān)機(jī)或重啟請(qǐng)求為所述應(yīng)用程序創(chuàng)建應(yīng)用層進(jìn)程;
[0032]第一監(jiān)測(cè)單元,用于利用所述鉤子函數(shù)監(jiān)測(cè)所述應(yīng)用層進(jìn)程是否調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù),在監(jiān)測(cè)到應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),通知鉤子單元;
[0033]鉤子單元,用戶(hù)鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。
[0034]可選的,所述鉤子模塊包括:鉤子函數(shù)注入單元、操作請(qǐng)求單元、進(jìn)程創(chuàng)建單元、第二監(jiān)測(cè)單元、第三監(jiān)測(cè)單元以及鉤子單元,其中,
[0035]鉤子函數(shù)注入單元,用于在內(nèi)核層中注入預(yù)先設(shè)置的鉤子函數(shù),在操作系統(tǒng)啟動(dòng)后,激活所述鉤子函數(shù);
[0036]操作請(qǐng)求單元,用于接收應(yīng)用程序向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求;
[0037]進(jìn)程創(chuàng)建單元,用于依據(jù)所述關(guān)機(jī)或重啟請(qǐng)求為所述應(yīng)用程序創(chuàng)建應(yīng)用層進(jìn)程;
[0038]第二監(jiān)測(cè)單元,用于利用所述鉤子函數(shù)監(jiān)測(cè)所述應(yīng)用層進(jìn)程是否調(diào)用操作系統(tǒng)退出函數(shù),如果是,通知第三監(jiān)測(cè)單元;
[0039]第三監(jiān)測(cè)單元,用于監(jiān)測(cè)操作系統(tǒng)退出函數(shù)是否調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù),在監(jiān)測(cè)到應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),通知鉤子單元;
[0040]鉤子單元,用戶(hù)鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。
[0041]可選的,所述應(yīng)用程序提取模塊包括:內(nèi)存地址獲取單元、進(jìn)程句柄獲取單元、進(jìn)程路徑信息獲取單元以及應(yīng)用程序提取單元,其中,
[0042]內(nèi)存地址獲取單元,用于獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí)的內(nèi)存地址;
[0043]進(jìn)程句柄獲取單元,用于解析所述內(nèi)存地址,得到調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程句柄;
[0044]進(jìn)程路徑信息獲取單元,用于利用所述進(jìn)程句柄的內(nèi)核對(duì)象獲取進(jìn)程路徑信息;
[0045]應(yīng)用程序提取單元,用于提取所述進(jìn)程路徑信息映射的應(yīng)用程序。
[0046]可選的,所述操作處理模塊還用于如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序不相同,通知所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)執(zhí)行操作系統(tǒng)關(guān)機(jī)或重啟操作。
[0047]可選的,所述應(yīng)用程序特征庫(kù)由用戶(hù)在本地進(jìn)行設(shè)置,所述裝置還包括:
[0048]上報(bào)模塊,用于將拒絕的應(yīng)用程序信息上報(bào)至預(yù)先設(shè)置的網(wǎng)絡(luò)服務(wù)器。
[0049]第三方面,本發(fā)明實(shí)施例提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存儲(chǔ)器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲(chǔ)器設(shè)置在電路板上;電源電路,用于為上述電子設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器用于存儲(chǔ)可執(zhí)行程序代碼;處理器通過(guò)讀取存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來(lái)運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序,用于執(zhí)行前述任一所述的保護(hù)操作系統(tǒng)的方法。
[0050]本發(fā)明實(shí)施例提供的保護(hù)操作系統(tǒng)的方法、裝置及電子設(shè)備,在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù);獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序;如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。這樣,通過(guò)Hook操作系統(tǒng)關(guān)機(jī)或重啟函數(shù),當(dāng)應(yīng)用程序關(guān)閉和重啟操作系統(tǒng)時(shí),能夠及時(shí)攔截應(yīng)用程序通過(guò)內(nèi)核的方式關(guān)閉和重啟操作系統(tǒng)的行為,能夠有效防止操作系統(tǒng)被關(guān)機(jī)或重啟,提升了操作系統(tǒng)的安全防護(hù)效率,增強(qiáng)了操作系統(tǒng)的安全性。
【附圖說(shuō)明】
[0051]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0052]圖1為本發(fā)明實(shí)施例保護(hù)操作系統(tǒng)的方法流程示意圖;
[0053]圖2為本發(fā)明實(shí)施例保護(hù)操作系統(tǒng)的裝置結(jié)構(gòu)示意圖;
[0054]圖3為本發(fā)明電子設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0055]下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
[0056]應(yīng)當(dāng)明確,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0057]圖1為本發(fā)明實(shí)施例保護(hù)操作系統(tǒng)的方法流程示意圖。參見(jiàn)圖1,該方法包括:
[0058]步驟11,在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù);
[0059]本步驟中,操作系統(tǒng)被惡意操作包括:操作系統(tǒng)被惡意關(guān)機(jī),或,操作系統(tǒng)被惡意重啟。
[0000]作為一可選實(shí)施例,操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)為內(nèi)核NtShutdownSystem函數(shù)。
[0061]本發(fā)明實(shí)施例中,注入的鉤子(Hook)函數(shù)用于監(jiān)聽(tīng)?wèi)?yīng)用層進(jìn)程的函數(shù)調(diào)用相關(guān)操作,并在應(yīng)用層進(jìn)程調(diào)用的相關(guān)函數(shù)與預(yù)先設(shè)置的函數(shù)相匹配時(shí),攔截該調(diào)用的函數(shù),轉(zhuǎn)由注入的鉤子函數(shù)替換該調(diào)用函數(shù)進(jìn)行處理,并返回相應(yīng)處理結(jié)果。
[0062]作為一可選實(shí)施例,可在金山毒霸防御驅(qū)動(dòng)應(yīng)用程序加載時(shí)注入Hook函數(shù),其中,
[0063]Hook函數(shù)是Windows操作系統(tǒng)中消息處理機(jī)制的一段程序代碼段,驅(qū)動(dòng)應(yīng)用程序可以通過(guò)該程序代碼段,設(shè)置子程序代碼段以監(jiān)視指定窗口的某種消息(操作),而且所監(jiān)視的指定窗口可以是其他進(jìn)程所創(chuàng)建的c^Hook函數(shù)具有的鉤子機(jī)制通過(guò)Windows操作系統(tǒng)調(diào)用,將具有優(yōu)先控制權(quán)的Hook函數(shù)掛入Windows操作系統(tǒng),允許Hook函數(shù)截獲Windows操作系統(tǒng)發(fā)出的消息或特定事件,每當(dāng)Windows操作系統(tǒng)中消息或特定事件發(fā)出,在沒(méi)有到達(dá)目的窗口前,Hook函數(shù)能夠先捕獲該消息或特定事件,從而可以加工處理(改變)該消息或特定事件,也可以不作處理而繼續(xù)傳遞,還可以強(qiáng)制結(jié)束消息或特定事件的傳遞。
[0064]本發(fā)明實(shí)施例中,通過(guò)防御驅(qū)動(dòng)應(yīng)用程序中Hook內(nèi)核NtShutdownSystem函數(shù),在應(yīng)用層進(jìn)程,例如,應(yīng)用程序通過(guò)向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求,所述操作系統(tǒng)依據(jù)接收的關(guān)機(jī)或重啟請(qǐng)求創(chuàng)建相應(yīng)的應(yīng)用層進(jìn)程,該應(yīng)用層進(jìn)程調(diào)用內(nèi)核NtShutdownSystem函數(shù)以關(guān)閉或重啟操作系統(tǒng)時(shí),就會(huì)先調(diào)用本發(fā)明實(shí)施例的Hook函數(shù),從而依據(jù)預(yù)先設(shè)置在Hook函數(shù)中的攔截規(guī)則進(jìn)行相應(yīng)處理。
[0065]本發(fā)明實(shí)施例中,作為一可選實(shí)施例,所述應(yīng)用層進(jìn)程為一應(yīng)用程序向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求時(shí),所述操作系統(tǒng)依據(jù)所述關(guān)機(jī)或重啟請(qǐng)求為所述應(yīng)用程序創(chuàng)建的進(jìn)程。
[0066]作為一可選實(shí)施例,應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)包括:
[0067]應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。
[0068]作為另一可選實(shí)施例,應(yīng)用層進(jìn)程調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)包括:
[0069]應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)退出函數(shù),所述操作系統(tǒng)退出函數(shù)調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。
[0070]本步驟中,作為一可選實(shí)施例,操作系統(tǒng)退出函數(shù)包括:ExitWindows函數(shù)、和/或,ExitWindowsEx函數(shù)。其中,Ex i tWi ndowsEx函數(shù)應(yīng)用于較高版本的操作系統(tǒng)中,ExitWindows函數(shù)應(yīng)用于較低以及較高版本的操作系統(tǒng)中,均用于執(zhí)行退出、重啟或注銷(xiāo)操作系統(tǒng)操作。通過(guò)設(shè)置不同的參數(shù)值,用以表明是關(guān)閉操作系統(tǒng)還是重啟操作系統(tǒng),例如,作為一可選實(shí)施例,ExitWindowsEx(0,0)表示執(zhí)行操作系統(tǒng)關(guān)機(jī)操作,ExitWindowsEx( I,O)表示執(zhí)行操作系統(tǒng)重啟操作等。
[0071]在操作系統(tǒng)進(jìn)行關(guān)機(jī)或重啟時(shí),在應(yīng)用層進(jìn)程調(diào)用內(nèi)核NtShutdownSystem函數(shù)后,內(nèi)核NtShutdownSystem函數(shù)通知硬件驅(qū)動(dòng)設(shè)備保存內(nèi)核數(shù)據(jù),并將注冊(cè)表和文件的緩存刷新到磁盤(pán)上,然后立即進(jìn)行操作系統(tǒng)關(guān)機(jī)或重啟操作,由于內(nèi)核NtShutdownSystem函數(shù)通知硬件驅(qū)動(dòng)后是瞬間關(guān)機(jī)的,因而,使得一些未來(lái)得及存儲(chǔ)的數(shù)據(jù)丟失,如果是預(yù)先設(shè)置的應(yīng)用程序發(fā)起的關(guān)機(jī)或重啟請(qǐng)求,將會(huì)給用戶(hù)帶來(lái)安全隱患。本發(fā)明實(shí)施例中,利用Hook函數(shù)鉤住操作系統(tǒng)關(guān)機(jī)或重啟函數(shù),終止其執(zhí)行的操作,并由Hook函數(shù)進(jìn)行處理。
[0072]步驟12,獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序;
[0073]本步驟中,作為一可選實(shí)施例,獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息包括:
[0074]Al,獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí)的內(nèi)存地址;
[0075]A2,解析所述內(nèi)存地址,得到調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程句柄;
[0076]A3,利用所述進(jìn)程句柄的內(nèi)核對(duì)象獲取進(jìn)程路徑信息。
[0077]本發(fā)明實(shí)施例中,步驟Al至步驟A3為公知技術(shù),在此略去詳述。
[0078]本發(fā)明實(shí)施例中,通過(guò)獲取進(jìn)行關(guān)閉和重啟操作系統(tǒng)的操作進(jìn)程路徑信息,可以獲知進(jìn)程對(duì)應(yīng)的應(yīng)用程序,即可以獲知向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求的應(yīng)用程序信息。
[0079]步驟13,如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。
[0080]本步驟中,將提取的應(yīng)用程序在應(yīng)用程序特征庫(kù)中進(jìn)行搜索匹配,判斷調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程對(duì)應(yīng)的應(yīng)用程序是否是應(yīng)用程序,如果與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序不相同,則可以確定發(fā)起請(qǐng)求的應(yīng)用程序是正常應(yīng)用程序。
[0081 ]因而,作為一可選實(shí)施例,該方法還可以包括:
[0082]如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序不相同,通知所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)執(zhí)行操作系統(tǒng)關(guān)機(jī)或重啟操作。
[0083]本發(fā)明實(shí)施例中,如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,則認(rèn)為該應(yīng)用層進(jìn)程為應(yīng)用程序進(jìn)程,需要進(jìn)行攔截,則結(jié)束本次操作,返回拒絕,從而拒絕該應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求,使得應(yīng)用程序關(guān)閉和重啟操作系統(tǒng)的請(qǐng)求失敗。例如,在用戶(hù)電腦環(huán)境中,存在一應(yīng)用程序A。假設(shè)通過(guò)在金山毒霸的防御驅(qū)動(dòng)中注入Hook函數(shù),Hook用以執(zhí)行操作系統(tǒng)關(guān)機(jī)或重啟的內(nèi)核NtShutdownSystem函數(shù),這樣,當(dāng)應(yīng)用程序A的進(jìn)程通知該應(yīng)用程序?qū)?yīng)的驅(qū)動(dòng)應(yīng)用程序調(diào)用內(nèi)核NtShutdownSystem函數(shù),以關(guān)閉和重啟操作系統(tǒng)時(shí),注入在金山毒霸的防御驅(qū)動(dòng)中的Hook函數(shù)對(duì)該關(guān)閉和重啟操作系統(tǒng)的行為進(jìn)行攔截,并返回拒絕,使得應(yīng)用程序A不能關(guān)閉和重啟操作系統(tǒng),從而更好地保護(hù)操作系統(tǒng)環(huán)境不被破壞。
[0084]本發(fā)明實(shí)施例中,作為一可選實(shí)施例,應(yīng)用程序特征庫(kù)可通過(guò)相關(guān)技術(shù)人員在網(wǎng)絡(luò)服務(wù)器通過(guò)對(duì)各應(yīng)用程序運(yùn)行的分析,選取能夠自動(dòng)關(guān)閉或重啟操作系統(tǒng)的應(yīng)用程序形成應(yīng)用程序特征庫(kù),并將形成的應(yīng)用程序特征庫(kù)下發(fā)至各應(yīng)用終端,應(yīng)用終端接收網(wǎng)絡(luò)服務(wù)器下發(fā)的應(yīng)用程序特征庫(kù)進(jìn)行保存。當(dāng)然,實(shí)際應(yīng)用中,也可以由用戶(hù)在本地設(shè)置應(yīng)用程序特征庫(kù),本發(fā)明實(shí)施例對(duì)此不作限定。
[0085]作為另一可選實(shí)施例,如果由用戶(hù)在本地設(shè)置應(yīng)用程序特征庫(kù),該方法還可以包括:
[0086]將拒絕的應(yīng)用程序信息上報(bào)至預(yù)先設(shè)置的網(wǎng)絡(luò)服務(wù)器。
[0087]本步驟中,用戶(hù)設(shè)置或由操作系統(tǒng)自動(dòng)將拒絕的應(yīng)用程序的相關(guān)信息進(jìn)行上報(bào),可以便于網(wǎng)絡(luò)服務(wù)器統(tǒng)計(jì)各應(yīng)用終端上報(bào)的應(yīng)用程序信息,并依據(jù)統(tǒng)計(jì),確定哪些應(yīng)用程序?yàn)閼?yīng)用程序,并設(shè)置該應(yīng)用程序的風(fēng)險(xiǎn)提示,從而在用戶(hù)下載該應(yīng)用程序時(shí),提示相應(yīng)的風(fēng)險(xiǎn),例如,提示該應(yīng)用程序會(huì)自動(dòng)進(jìn)行操作系統(tǒng)關(guān)機(jī)或重啟,使得用戶(hù)能夠慎重考慮是否下載該應(yīng)用程序,以避免對(duì)用戶(hù)的應(yīng)用終端帶來(lái)的安全隱患。
[0088]由上述可見(jiàn),本發(fā)明實(shí)施例保護(hù)操作系統(tǒng)(關(guān)機(jī)或重啟)的方法,在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù);獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序;如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。這樣,通過(guò)Hook內(nèi)核NtShutdownSystem函數(shù),當(dāng)應(yīng)用程序關(guān)閉和重啟操作系統(tǒng)時(shí),能夠及時(shí)攔截應(yīng)用程序通過(guò)內(nèi)核的方式關(guān)閉和重啟操作系統(tǒng)的行為,從而更好地保護(hù)操作系統(tǒng)的安全,避免了應(yīng)用程序可以通過(guò)直接調(diào)用內(nèi)核NtShutdownSystem函數(shù)來(lái)實(shí)現(xiàn)對(duì)操作系統(tǒng)的關(guān)機(jī)或重啟操作,能夠有效防止操作系統(tǒng)被關(guān)機(jī)或重啟,提升了操作系統(tǒng)的安全防護(hù)效率,增強(qiáng)了操作系統(tǒng)的安全性。
[0089]圖2為本發(fā)明實(shí)施例保護(hù)操作系統(tǒng)的裝置結(jié)構(gòu)示意圖。參見(jiàn)圖2,該裝置包括:鉤子模塊21、應(yīng)用程序提取模塊22以及操作處理模塊23,其中,
[0090]鉤子模塊21,用于在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù);
[0091]本發(fā)明實(shí)施例中,操作系統(tǒng)被惡意操作包括:操作系統(tǒng)被惡意關(guān)機(jī),或,操作系統(tǒng)被惡意重啟。
[0092]作為一可選實(shí)施例,操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)為內(nèi)核NtShutdownSystem函數(shù)。
[0093]本發(fā)明實(shí)施例中,作為一可選實(shí)施例,所述應(yīng)用層進(jìn)程為一應(yīng)用程序向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求時(shí),所述操作系統(tǒng)依據(jù)所述關(guān)機(jī)或重啟請(qǐng)求為所述應(yīng)用程序創(chuàng)建的進(jìn)程。
[0094]作為一可選實(shí)施例,鉤子模塊21包括:鉤子函數(shù)注入單元、操作請(qǐng)求單元、進(jìn)程創(chuàng)建單元、第一監(jiān)測(cè)單元以及鉤子單元(圖中未示出),其中,
[0095]鉤子函數(shù)注入單元,用于在內(nèi)核層中注入預(yù)先設(shè)置的鉤子函數(shù),在操作系統(tǒng)啟動(dòng)后,激活所述鉤子函數(shù);
[0096]操作請(qǐng)求單元,用于接收應(yīng)用程序向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求;
[0097]進(jìn)程創(chuàng)建單元,用于依據(jù)所述關(guān)機(jī)或重啟請(qǐng)求為所述應(yīng)用程序創(chuàng)建應(yīng)用層進(jìn)程;
[0098]第一監(jiān)測(cè)單元,用于利用所述鉤子函數(shù)監(jiān)測(cè)所述應(yīng)用層進(jìn)程是否調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù),在監(jiān)測(cè)到應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),通知鉤子單元;
[0099]鉤子單元,用戶(hù)鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。
[0100]作為另一可選實(shí)施例,鉤子模塊21包括:鉤子函數(shù)注入單元、操作請(qǐng)求單元、進(jìn)程創(chuàng)建單元、第二監(jiān)測(cè)單元、第三監(jiān)測(cè)單元以及鉤子單元,其中,
[0101]鉤子函數(shù)注入單元,用于在內(nèi)核層中注入預(yù)先設(shè)置的鉤子函數(shù),在操作系統(tǒng)啟動(dòng)后,激活所述鉤子函數(shù);
[0102]操作請(qǐng)求單元,用于接收應(yīng)用程序向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求;
[0103]進(jìn)程創(chuàng)建單元,用于依據(jù)所述關(guān)機(jī)或重啟請(qǐng)求為所述應(yīng)用程序創(chuàng)建應(yīng)用層進(jìn)程;
[0104]第二監(jiān)測(cè)單元,用于利用所述鉤子函數(shù)監(jiān)測(cè)所述應(yīng)用層進(jìn)程是否調(diào)用操作系統(tǒng)退出函數(shù),如果是,通知第三監(jiān)測(cè)單元;
[0105]本發(fā)明實(shí)施例中,作為一可選實(shí)施例,操作系統(tǒng)退出函數(shù)包括:ExitWindows函數(shù)、和/或,ExitWindowsEx 函數(shù)。
[0106]第三監(jiān)測(cè)單元,用于監(jiān)測(cè)操作系統(tǒng)退出函數(shù)是否調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù),在監(jiān)測(cè)到應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),通知鉤子單元;
[0107]鉤子單元,用戶(hù)鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。
[0108]應(yīng)用程序提取模塊22,用于獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序;
[0109]本發(fā)明實(shí)施例中,作為一可選實(shí)施例,應(yīng)用程序提取模塊22包括:內(nèi)存地址獲取單元、進(jìn)程句柄獲取單元、進(jìn)程路徑信息獲取單元以及應(yīng)用程序提取單元(圖中未示出),其中,
[0110]內(nèi)存地址獲取單元,用于獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí)的內(nèi)存地址;
[0111]進(jìn)程句柄獲取單元,用于解析所述內(nèi)存地址,得到調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程句柄;
[0112]進(jìn)程路徑信息獲取單元,用于利用所述進(jìn)程句柄的內(nèi)核對(duì)象獲取進(jìn)程路徑信息;
[0113]應(yīng)用程序提取單元,用于提取所述進(jìn)程路徑信息映射的應(yīng)用程序。
[0114]操作處理模塊23,如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。
[0115]本發(fā)明實(shí)施例中,操作處理模塊23將提取的應(yīng)用程序在應(yīng)用程序特征庫(kù)中進(jìn)行搜索匹配,判斷調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程對(duì)應(yīng)的應(yīng)用程序是否是應(yīng)用程序,如果與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序不相同,則可以確定發(fā)起請(qǐng)求的應(yīng)用程序是正常應(yīng)用程序。
[0116]本發(fā)明實(shí)施例中,作為一可選實(shí)施例,述操作處理模塊23還用于如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序不相同,通知所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)執(zhí)行操作系統(tǒng)關(guān)機(jī)或重啟操作。
[0117]本發(fā)明實(shí)施例中,作為一可選實(shí)施例,所述應(yīng)用程序特征庫(kù)由用戶(hù)在本地進(jìn)行設(shè)置,該裝置還包括:
[0118]上報(bào)模塊24,用于將拒絕的應(yīng)用程序信息上報(bào)至預(yù)先設(shè)置的網(wǎng)絡(luò)服務(wù)器。
[0119]本發(fā)明實(shí)施例還提供一種電子設(shè)備,所述電子設(shè)備包含前述任一實(shí)施例所述的裝置。
[0120]圖3為本發(fā)明電子設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,可以實(shí)現(xiàn)本發(fā)明圖1-2所示實(shí)施例的流程,如圖3所示,上述電子設(shè)備可以包括:殼體31、處理器32、存儲(chǔ)器33、電路板34和電源電路35,其中,電路板34安置在殼體31圍成的空間內(nèi)部,處理器32和存儲(chǔ)器33設(shè)置在電路板34上;電源電路35,用于為上述電子設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器33用于存儲(chǔ)可執(zhí)行程序代碼;處理器32通過(guò)讀取存儲(chǔ)器33中存儲(chǔ)的可執(zhí)行程序代碼來(lái)運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序,用于執(zhí)行前述任一實(shí)施例所述的保護(hù)操作系統(tǒng)的方法。
[0121]處理器32對(duì)上述步驟的具體執(zhí)行過(guò)程以及處理器32通過(guò)運(yùn)行可執(zhí)行程序代碼來(lái)進(jìn)一步執(zhí)行的步驟,可以參見(jiàn)本發(fā)明圖1-2所示實(shí)施例的描述,在此不再贅述。
[0122]該電子設(shè)備以多種形式存在,包括但不限于:
[0123](I)移動(dòng)通信設(shè)備:這類(lèi)設(shè)備的特點(diǎn)是具備移動(dòng)通信功能,并且以提供話(huà)音、數(shù)據(jù)通信為主要目標(biāo)。這類(lèi)終端包括:智能手機(jī)(例如iPhone)、多媒體手機(jī)、功能性手機(jī),以及低端手機(jī)等。
[0124](2)超移動(dòng)個(gè)人計(jì)算機(jī)設(shè)備:這類(lèi)設(shè)備屬于個(gè)人計(jì)算機(jī)的范疇,有計(jì)算和處理功能,一般也具備移動(dòng)上網(wǎng)特性。這類(lèi)終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
[0125](3)便攜式娛樂(lè)設(shè)備:這類(lèi)設(shè)備可以顯示和播放多媒體內(nèi)容。該類(lèi)設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機(jī),電子書(shū),以及智能玩具和便攜式車(chē)載導(dǎo)航設(shè)備。
[0126](4)服務(wù)器:提供計(jì)算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤(pán)、內(nèi)存、系統(tǒng)總線(xiàn)等,服務(wù)器和通用的計(jì)算機(jī)架構(gòu)類(lèi)似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。
[0127](5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。
[0128]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory,RAM)等。
[0129]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種保護(hù)操作系統(tǒng)的方法,其特征在于,該方法包括: 在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù); 獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序; 如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)包括: 應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)包括: 應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)退出函數(shù),所述操作系統(tǒng)退出函數(shù)調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息包括: 獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí)的內(nèi)存地址; 解析所述內(nèi)存地址,得到調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程句柄; 利用所述進(jìn)程句柄的內(nèi)核對(duì)象獲取進(jìn)程路徑信息。5.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序不相同,通知所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)執(zhí)行操作系統(tǒng)關(guān)機(jī)或重啟操作。6.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述應(yīng)用程序特征庫(kù)由用戶(hù)在本地進(jìn)行設(shè)置,所述方法還包括: 將拒絕的應(yīng)用程序信息上報(bào)至預(yù)先設(shè)置的網(wǎng)絡(luò)服務(wù)器。7.—種保護(hù)操作系統(tǒng)的裝置,其特征在于,該裝置包括:鉤子模塊、應(yīng)用程序提取模塊以及操作處理模塊,其中, 鉤子模塊,用于在預(yù)先注入到內(nèi)核層中的鉤子函數(shù)監(jiān)測(cè)到應(yīng)用層進(jìn)程調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù); 應(yīng)用程序提取模塊,用于獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程路徑信息,提取所述進(jìn)程路徑信息映射的應(yīng)用程序; 操作處理模塊,如果提取的所述應(yīng)用程序與預(yù)先設(shè)置的應(yīng)用程序特征庫(kù)中的任一應(yīng)用程序相同,拒絕所述應(yīng)用程序的關(guān)機(jī)或重啟請(qǐng)求。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述鉤子模塊包括:鉤子函數(shù)注入單元、操作請(qǐng)求單元、進(jìn)程創(chuàng)建單元、第一監(jiān)測(cè)單元以及鉤子單元,其中, 鉤子函數(shù)注入單元,用于在內(nèi)核層中注入預(yù)先設(shè)置的鉤子函數(shù),在操作系統(tǒng)啟動(dòng)后,激活所述鉤子函數(shù); 操作請(qǐng)求單元,用于接收應(yīng)用程序向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求; 進(jìn)程創(chuàng)建單元,用于依據(jù)所述關(guān)機(jī)或重啟請(qǐng)求為所述應(yīng)用程序創(chuàng)建應(yīng)用層進(jìn)程; 第一監(jiān)測(cè)單元,用于利用所述鉤子函數(shù)監(jiān)測(cè)所述應(yīng)用層進(jìn)程是否調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù),在監(jiān)測(cè)到應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),通知鉤子單元; 鉤子單元,用戶(hù)鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述鉤子模塊包括:鉤子函數(shù)注入單元、操作請(qǐng)求單元、進(jìn)程創(chuàng)建單元、第二監(jiān)測(cè)單元、第三監(jiān)測(cè)單元以及鉤子單元,其中, 鉤子函數(shù)注入單元,用于在內(nèi)核層中注入預(yù)先設(shè)置的鉤子函數(shù),在操作系統(tǒng)啟動(dòng)后,激活所述鉤子函數(shù); 操作請(qǐng)求單元,用于接收應(yīng)用程序向操作系統(tǒng)發(fā)送關(guān)機(jī)或重啟請(qǐng)求; 進(jìn)程創(chuàng)建單元,用于依據(jù)所述關(guān)機(jī)或重啟請(qǐng)求為所述應(yīng)用程序創(chuàng)建應(yīng)用層進(jìn)程; 第二監(jiān)測(cè)單元,用于利用所述鉤子函數(shù)監(jiān)測(cè)所述應(yīng)用層進(jìn)程是否調(diào)用操作系統(tǒng)退出函數(shù),如果是,通知第三監(jiān)測(cè)單元; 第三監(jiān)測(cè)單元,用于監(jiān)測(cè)操作系統(tǒng)退出函數(shù)是否調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù),在監(jiān)測(cè)到應(yīng)用層進(jìn)程直接調(diào)用操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí),通知鉤子單元; 鉤子單元,用戶(hù)鉤住所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)。10.根據(jù)權(quán)利要求7至9任一項(xiàng)所述的裝置,其特征在于,所述應(yīng)用程序提取模塊包括:內(nèi)存地址獲取單元、進(jìn)程句柄獲取單元、進(jìn)程路徑信息獲取單元以及應(yīng)用程序提取單元,其中, 內(nèi)存地址獲取單元,用于獲取調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)時(shí)的內(nèi)存地址; 進(jìn)程句柄獲取單元,用于解析所述內(nèi)存地址,得到調(diào)用所述操作系統(tǒng)關(guān)機(jī)或重啟函數(shù)的應(yīng)用層進(jìn)程的進(jìn)程句柄; 進(jìn)程路徑信息獲取單元,用于利用所述進(jìn)程句柄的內(nèi)核對(duì)象獲取進(jìn)程路徑信息; 應(yīng)用程序提取單元,用于提取所述進(jìn)程路徑信息映射的應(yīng)用程序。
【文檔編號(hào)】G06F21/52GK105844148SQ201610149613
【公開(kāi)日】2016年8月10日
【申請(qǐng)日】2016年3月16日
【發(fā)明人】楊峰
【申請(qǐng)人】北京金山安全軟件有限公司