本發(fā)明涉及互聯(lián)網(wǎng)反病毒安全技術(shù)領域,尤其涉及一種藍屏的處理方法、裝置及電子設備。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)發(fā)展,包括操作系統(tǒng)在內(nèi)的計算機軟件,都需要不斷地更新?lián)Q代。微軟的windows操作系統(tǒng)一般是通過補丁的方式進行更新,找到補丁升級程序(windows update)即可以升級windows補丁。如圖1所示,在“已安裝更新”中可以找到已經(jīng)更新得到的補丁程序。
微軟以補丁的方式更新系統(tǒng)中的缺陷(簡稱BUG),反病毒軟件也可以下載更新微軟發(fā)布的補丁。但是,微軟的補丁也并不是不會存在問題,由于個別補丁可能沒有經(jīng)過嚴格測試就發(fā)布了,有可能更新后導致系統(tǒng)崩潰以及藍屏等嚴重錯誤。
反病毒安全軟件在更新微軟補丁過程中,若用戶反饋有導致系統(tǒng)崩潰以及藍屏的嚴重BUG,反病毒安全軟件會第一時間停止這一導致系統(tǒng)崩潰的補丁的更新。但是,這種導致系統(tǒng)崩潰的補丁的更新,微軟不一定會馬上處理,微軟的補丁升級程序(windows update),可能并不會及時停止,這就造成了用戶的損失。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供一種藍屏的處理方法、裝置及電子設備,以解決現(xiàn)有技術(shù)的操作系統(tǒng)無法及時停止導致系統(tǒng)崩潰以及藍屏的補丁的更新,在一定程度上造成用戶損失的問題。
第一方面,本發(fā)明實施例提供一種藍屏的處理方法,包括:
創(chuàng)建掛鉤于創(chuàng)建文件函數(shù)的鉤子函數(shù),所述創(chuàng)建文件函數(shù)用于打開文件獲取文件句柄;
判斷是否為操作系統(tǒng)的補丁觸發(fā)藍屏;
當確定為所述操作系統(tǒng)的補丁觸發(fā)藍屏時,通過所述鉤子函數(shù)攔截觸發(fā)藍屏的操作系統(tǒng)的補丁的更新。
結(jié)合第一方面,在第一方面的第一種實施方式中,所述創(chuàng)建掛鉤于創(chuàng)建文件函數(shù)的鉤子函數(shù)包括:
在系統(tǒng)服務描述符表中獲取并保存所述創(chuàng)建文件函數(shù)的原始函數(shù)地址;
定義一個鉤子函數(shù),所述鉤子函數(shù)的函數(shù)地址替換系統(tǒng)服務描述符表中所述創(chuàng)建文件函數(shù)的原始函數(shù)地址。
結(jié)合第一方面,在第一方面的第二種實施方式中,所述判斷是否為操作系統(tǒng)的補丁觸發(fā)藍屏包括:
在所述鉤子函數(shù)中,獲取保存在對象屬性參數(shù)中的文件路徑;
若所述保存在對象屬性參數(shù)中的文件路徑包含預設于反病毒安全軟件的注冊表數(shù)據(jù)中的補丁名,則確定為所述操作系統(tǒng)的補丁在觸發(fā)藍屏。
結(jié)合第一方面、第一方面的第一種實施方式或第一方面的第二種實施方式,在第一方面的第三種實施方式中,通過所述鉤子函數(shù)攔截觸發(fā)藍屏的操作系統(tǒng)的補丁的更新包括:
當確定為操作系統(tǒng)的補丁觸發(fā)藍屏時,在鉤子函數(shù)中,返回一個拒絕訪問的狀態(tài),退出執(zhí)行觸發(fā)藍屏的操作系統(tǒng)的補丁的安裝和/或下載。
第二方面,本發(fā)明實施例提供一種藍屏的處理裝置,包括:
創(chuàng)建單元,用于創(chuàng)建掛鉤于創(chuàng)建文件函數(shù)的鉤子函數(shù),所述創(chuàng)建文件函數(shù)用于打開文件獲取文件句柄;
判斷單元,用于判斷是否為操作系統(tǒng)的補丁觸發(fā)藍屏;
攔截單元,用于當確定為所述操作系統(tǒng)的補丁觸發(fā)藍屏時,通過所述鉤子函數(shù)攔截觸發(fā)藍屏的操作系統(tǒng)的補丁的更新。
結(jié)合第二方面,在第二方面的第一種實施方式中,所述創(chuàng)建單元包括:
地址獲取模塊,用于在系統(tǒng)服務描述符表中獲取并保存所述創(chuàng)建文件函數(shù)的原始函數(shù)地址;
創(chuàng)建模塊,定義一個鉤子函數(shù),所述鉤子函數(shù)的函數(shù)地址替換系統(tǒng)服務描述符表中所述創(chuàng)建文件函數(shù)的原始函數(shù)地址。
結(jié)合第二方面的第一種實施方式,在第二方面的第二種實施方式中,所述判斷單元包括:
路徑獲取模塊,用于在所述鉤子函數(shù)中,獲得保存在對象屬性參數(shù)中的文件路徑;
補丁判斷模塊,用于若所述保存在對象屬性參數(shù)中的文件路徑包含預設于反病毒安全軟件的注冊表數(shù)據(jù)中的補丁名,則確定為所述操作系統(tǒng)的補丁在觸發(fā)藍屏。
結(jié)合第二方面、第二方面的第一種實施方式或第二方面的第二種實施方式,在第二方面的第三種實施方式中,所述攔截單元具體用于當確定為操作系統(tǒng)的補丁觸發(fā)藍屏時,在鉤子函數(shù)中,返回一個拒絕訪問的狀態(tài),退出執(zhí)行觸發(fā)藍屏的操作系統(tǒng)的補丁的安裝和/或下載。
第三方面,本發(fā)明實施例提供一種電子設備,所述電子設備包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲器設置在電路板上;電源電路,用于為上述電子設備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,用于執(zhí)行以下操作:
創(chuàng)建掛鉤于創(chuàng)建文件函數(shù)的鉤子函數(shù),所述創(chuàng)建文件函數(shù)用于打開文件獲取文件句柄;
判斷是否為操作系統(tǒng)的補丁觸發(fā)藍屏;
當確定為所述操作系統(tǒng)的補丁觸發(fā)藍屏時,通過所述鉤子函數(shù)攔截觸發(fā)藍屏的操作系統(tǒng)的補丁的更新。
第四方面,本發(fā)明實施例還提供了一種存儲介質(zhì),用于存儲應用程序,所述應用程序用于執(zhí)行本發(fā)明實施例所提供的一種藍屏的處理方法。
第五方面,本發(fā)明實施例還提供了一種應用程序,用于執(zhí)行本發(fā)明實施例所提供的一種藍屏的處理方法。
本發(fā)明實施例提供的一種藍屏的處理方法、裝置及電子設備,利用掛鉤創(chuàng)建文件函數(shù),當確定為操作系統(tǒng)的補丁觸發(fā)藍屏時,執(zhí)行鉤子函數(shù)并攔截觸發(fā)藍屏的操作系統(tǒng)的補丁的更新,攔截了一些引發(fā)崩潰、藍屏的操作系統(tǒng)補丁的安裝,阻止了在用戶不熟悉的情況誤裝了補丁造成藍屏,有利于提高用戶體驗,降低用戶損失。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為現(xiàn)有技術(shù)微軟操作系統(tǒng)中已安裝更新的示意圖;
圖2為本發(fā)明實施例一種藍屏的處理方法流程圖;
圖3為本發(fā)明實施例中鉤子函數(shù)的原型數(shù)據(jù)示意圖;
圖4為本發(fā)明實施例一種藍屏的處理裝置示意圖;
圖5為本發(fā)明電子設備一個實施例的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明實施例一種藍屏的處理方法及裝置進行詳細描述。
應當明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖2為本發(fā)明實施例一種藍屏的處理方法流程圖,如圖2所示,本實施例的方法可以包括:
步驟101、創(chuàng)建掛鉤于創(chuàng)建文件函數(shù)的鉤子函數(shù),所述創(chuàng)建文件函數(shù)用于打開文件獲取文件句柄;
在本實施例中,創(chuàng)建文件函數(shù)為windows操作系統(tǒng)中的NtCreateFile,創(chuàng)建文件函數(shù)NtCreateFile用于打開文件獲取文件句柄,而掛鉤于創(chuàng)建文件函數(shù)NtCreateFile的鉤子函數(shù)即為NewNtCreateFile。
需要說明的是,windows update程序下載并安裝補丁的過程:
下載:windows update程序->調(diào)用應用層的CreateFile函數(shù)->調(diào)用內(nèi)核層的NtCreateFile函數(shù)->文件打開成功返回文件句柄->NtWriteFile寫入數(shù)據(jù)->文件下載完成
安裝:windows update程序->調(diào)用應用層的CreateFile函數(shù)->調(diào)用內(nèi)核層的NtCreateFile函數(shù)->文件打開成功返回文件句柄->NtWriteFile解壓或者復制->文件安裝完成
可以看出,不管是補丁下載或者安裝,都會執(zhí)行到內(nèi)核函數(shù):創(chuàng)建文件函數(shù)NtCreateFile。那么本技術(shù)方案可以掛鉤內(nèi)核函數(shù):創(chuàng)建文件函數(shù)NtCreateFile,實現(xiàn)操作系統(tǒng)補丁文件的下載和安裝的攔截。
掛鉤的具體方法是:在系統(tǒng)服務描述符表(System Services Descriptor Table,簡稱SSDT)中獲取并保存創(chuàng)建文件函數(shù)NtCreateFile的原始函數(shù)地址;定義一個鉤子函數(shù)NewNtCreateFile,并將鉤子函數(shù)NewNtCreateFile的函數(shù)地址替換系統(tǒng)服務描述符表(sSDT表)中創(chuàng)建文件函數(shù)NtCreateFile的原始函數(shù)地址。即是實現(xiàn)了內(nèi)核函數(shù)的掛鉤,鉤子函數(shù)就是NewNtCreateFile,本技術(shù)方案中主要邏輯實現(xiàn)是都是在鉤子函數(shù)NewNtCreateFile實現(xiàn)的。
掛鉤后的流程是:
下載:windows update程序->調(diào)用應用層的CreateFile函數(shù)->NewNtCreateFile->調(diào)用內(nèi)核層的NtCreateFile函數(shù)->文件打開成功返回文件句柄->NtWriteFile寫入數(shù)據(jù)->文件下載完成
安裝:windows update程序->調(diào)用應用層的CreateFile函數(shù)->NewNtCreateFile->調(diào)用內(nèi)核層的NtCreateFile函數(shù)->文件打開成功返回文件句柄->NtWriteFile解壓或者復制->文件安裝完成
在鉤子函數(shù)NewNtCreateFile中,調(diào)用內(nèi)核函數(shù)PsGetCurrentProcessId獲取當前操作進程標識值,由進程標識值為參數(shù),調(diào)用內(nèi)核函數(shù)ZwQueryInformationProcess獲取當前操作進程的進程名,匹配進程名是否TrustedInstaller.exe,這個進程名就是windows update下載和安裝補丁時的操作進程名。如果是TrustedInstaller.exe進程名,才是操作系統(tǒng)更新程序在下載安裝,才進行下一步。
步驟102、判斷是否為操作系統(tǒng)的補丁觸發(fā)藍屏;
圖3為本發(fā)明實施例中鉤子函數(shù)的原型數(shù)據(jù)示意圖,如圖3所示,鉤子函數(shù)NewNtCreateFile中,有一個POBJECT_ATTRIBUTES結(jié)構(gòu)的參數(shù)是保存文件路徑的,在鉤子函數(shù)NewNtCreateFile中,獲得用于保存文件路徑的對象屬性參數(shù)POBJECT_ATTRIBUTES結(jié)構(gòu);如果是一個補丁文件,這個文件路徑如:
C:\Windows\Downloaded Program Files\Windows6.1-KB3153171-x86.msu.cab
匹配預設中的補丁文件名,目前已知的操作系統(tǒng)補丁造成系統(tǒng)藍屏會有預設的這兩個:KB3153171,KB3146706,這預設的攔截的補丁名是可擴展的,是保存到反病毒安全軟件的注冊表數(shù)據(jù)中,本方案所在驅(qū)動程序在初始化的時候,會讀取注冊表數(shù)據(jù)預設這個補丁列表。若保存對象屬性參數(shù)POBJECT_ATTRIBUTES結(jié)構(gòu)中的文件路徑包含了預設于反病毒安全軟件的注冊表數(shù)據(jù)中的補丁名,則確定為操作系統(tǒng)的補丁在觸發(fā)藍屏,就可以阻止其下載和安裝了。
步驟103、當確定為操作系統(tǒng)的補丁觸發(fā)藍屏時,通過所述鉤子函數(shù)攔截觸發(fā)藍屏的操作系統(tǒng)的補丁的更新。
在本步驟中,攔截方法是,在NewNtCreateFile鉤子函數(shù)中,直接返回一個拒絕訪問的狀態(tài),退出執(zhí)行,那就不會執(zhí)行到原始的創(chuàng)建文件函數(shù)NtCreateFile,這樣就不會執(zhí)行到系統(tǒng)打開文件獲取句柄那一步,從而實現(xiàn)攔截下載或者安裝;其它情況放行文件,就會執(zhí)行到原始的創(chuàng)建文件函數(shù)NtCreateFile讓系統(tǒng)打開文件成功。
本發(fā)明實施例,運行在反病毒安全軟件的驅(qū)動程序中,利用掛鉤創(chuàng)建文件函數(shù),在鉤子函數(shù)中匹配操作進程名,匹配操作系統(tǒng)補丁名,是預設中的話就攔截,不是就放行,攔截了一些引發(fā)崩潰、藍屏的操作系統(tǒng)補丁的安裝,阻止了在用戶不熟悉的情況誤裝了補丁造成藍屏,有利于提高用戶體驗,降低用戶損失。
圖4為本發(fā)明實施例一種藍屏的處理裝置的結(jié)構(gòu)示意圖,如圖4所示,本實施例的藍屏的處理裝置包括:創(chuàng)建單元1,用于創(chuàng)建掛鉤于創(chuàng)建文件函數(shù)的鉤子函數(shù),所述創(chuàng)建文件函數(shù)用于打開文件獲取文件句柄;判斷單元2,用于判斷是否為操作系統(tǒng)的補丁觸發(fā)藍屏;攔截單元3,用于當確定為操作系統(tǒng)的補丁觸發(fā)藍屏時,通過所述鉤子函數(shù)攔截觸發(fā)藍屏的所述操作系統(tǒng)的補丁的更新。
進一步地,所述創(chuàng)建單元包括:地址獲取模塊,用于在系統(tǒng)服務描述符表中獲取并保存所述創(chuàng)建文件函數(shù)的原始函數(shù)地址;創(chuàng)建模塊,定義一個鉤子函數(shù),并替換系統(tǒng)服務描述符表中所述創(chuàng)建文件函數(shù)的原始函數(shù)地址。
進一步地,所述判斷單元包括:路徑獲取模塊,用于在所述鉤子函數(shù)中,獲取保存在對象屬性參數(shù)中的文件路徑;補丁判斷模塊,用于若所述保存在對象屬性參數(shù)中的文件路徑包含預設于反病毒安全軟件的注冊表數(shù)據(jù)中的補丁名,則確定為操作系統(tǒng)的補丁在觸發(fā)藍屏。
進一步地,所述攔截單元具體用于當確定為操作系統(tǒng)的補丁觸發(fā)藍屏時,在鉤子函數(shù)中,直接返回一個拒絕訪問的狀態(tài),退出執(zhí)行觸發(fā)藍屏的操作系統(tǒng)的補丁的安裝和/或下載。
本實施例的裝置,可以用于執(zhí)行圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
本發(fā)明實施例還提供一種電子設備。圖5為本發(fā)明電子設備一個實施例的結(jié)構(gòu)示意圖,可以實現(xiàn)本發(fā)明圖2所示實施例的流程,如圖5所示,上述電子設備可以包括:殼體31、處理器32、存儲器33、電路板34和電源電路35,其中,電路板34安置在殼體31圍成的空間內(nèi)部,處理器32和存儲器33設置在電路板34上;電源電路35,用于為上述電子設備的各個電路或器件供電;存儲器33用于存儲可執(zhí)行程序代碼;處理器32通過讀取存儲器33中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,用于執(zhí)行前述任一實施例所述的一種藍屏的處理方法。
該電子設備以多種形式存在,包括但不限于:
(1)移動通信設備:這類設備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。
(2)超移動個人計算機設備:這類設備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設備等,例如iPad。
(3)便攜式娛樂設備:這類設備可以顯示和播放多媒體內(nèi)容。該類設備包括:音頻、視頻播放模塊(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導航設備。
(4)服務器:提供計算服務的設備,服務器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務,因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
(5)其他具有數(shù)據(jù)交互功能的電子設備。
本發(fā)明實施例還提供了一種存儲介質(zhì),用于存儲應用程序,所述應用程序用于執(zhí)行本發(fā)明前述任一實施例所述的一種藍屏的處理方法。
本發(fā)明實施例還提供了一種應用程序,用于執(zhí)行本發(fā)明前述任一實施例所述的一種藍屏的處理方法。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本發(fā)明實施例,運行在反病毒安全軟件的驅(qū)動程序中,利用掛鉤創(chuàng)建文件函數(shù),在鉤子函數(shù)中匹配操作進程名,匹配操作系統(tǒng)補丁名,是預設中的話就攔截,不是就放行,攔截了一些引發(fā)崩潰、藍屏的操作系統(tǒng)補丁的安裝,阻止了在用戶不熟悉的情況誤裝了補丁造成藍屏,有利于提高用戶體驗,降低用戶損失。
本領域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以權(quán)利要求的保護范圍為準。