專利名稱::一種程序處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及網(wǎng)絡(luò)安全
技術(shù)領(lǐng)域:
,具體涉及一種程序處理方法和系統(tǒng)。
背景技術(shù):
:惡意程序是一個概括性的術(shù)語,指任何故意創(chuàng)建用來執(zhí)行未經(jīng)授權(quán)并通常是有害行為的軟件程序。計算機病毒、后門程序、鍵盤記錄器、密碼盜取者、Word和Excel宏病毒、引導(dǎo)區(qū)病毒、腳本病毒(batch,windowsshell,java等)、木馬、犯罪軟件、間謀軟件和廣告軟件等等,都是一些可以稱之為惡意程序的例子?,F(xiàn)今全球惡意程序數(shù)量呈幾何級增長,為了適應(yīng)惡意程序的更新速度,以快速地識別和查殺惡意程序,目前普遍利用主動防御技術(shù)查殺惡意程序。主動防御技術(shù)是基于程序的行為進行自主分析判斷的實時防護技術(shù),其從最原始的定義出發(fā),直接將程序的行為作為判斷惡意程序的依據(jù),進而衍生出通過在本地使用特征庫、在本地設(shè)置行為閾值以及在本地啟發(fā)式殺毒等方式來判別、攔截惡意程序的行為,從而在一定程度上達到保護客戶端設(shè)備的目的。但是,為了盡可能減小對程序性能的影響,主動防御技術(shù)只對程序的EXE文件進行檢測,而不檢查程序加載的動態(tài)鏈接庫(DynamicLinkLibrary,DLL)文件。因此,一些惡意程序就利用這一點,通過DLL劫持技術(shù)將該惡意程序的DLL文件與可信任的白名單中的程序(例如操作系統(tǒng)自帶的程序)打包在一起,當(dāng)用戶選擇執(zhí)行該白名單中的程序時,其中的惡意程序的DLL文件就會被加載,從而使主動防御技術(shù)不能成功攔截該惡意程序。
發(fā)明內(nèi)容鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的程序處理系統(tǒng)和相應(yīng)的程序處理方法。依據(jù)本發(fā)明的一個方面,提供了一種程序處理方法,包括當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件;將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果;依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。依據(jù)本發(fā)明的另一方面,提供了一種程序處理系統(tǒng),包括客戶端和服務(wù)器,其中,客戶端包括讀取模塊,適于當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件;匹配模塊,適于將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果;確定模塊,適于依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。根據(jù)本發(fā)明的程序處理方法和系統(tǒng)可以在檢測到待執(zhí)行程序創(chuàng)建進程時,依據(jù)預(yù)先設(shè)置的本地鑒別條件檢查所述待執(zhí)行程序是否存在被劫持的DLL文件,如果待執(zhí)行程序存在被劫持的DLL文件,則通過服務(wù)器對所述被劫持的DLL文件進行查殺,然后依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。由此解決了惡意程序利用可信的白名單中的程序加載惡意DLL文件而導(dǎo)致主動防御無法正常攔截惡意程序的問題,取得了更加有效地攔截惡意程序的有益效果。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個實施例的程序處理方法的流程圖2示出了根據(jù)本發(fā)明一個實施例的程序處理方法的流程圖3示出了根據(jù)本發(fā)明一個實施例的程序處理方法的流程圖4示出了根據(jù)本發(fā)明實施例所述的本地鑒別條件的示意圖5示出了根據(jù)本發(fā)明一個實施例的程序處理系統(tǒng)的結(jié)構(gòu)框圖;以及圖6示出了根據(jù)本發(fā)明一個實施例的程序處理系統(tǒng)的結(jié)構(gòu)框圖。具體實施方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。本發(fā)明可以應(yīng)用于計算機系統(tǒng)/服務(wù)器,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。適于與計算機系統(tǒng)/服務(wù)器一起使用的眾所周知的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個人計算機系統(tǒng)、服務(wù)器計算機系統(tǒng)、瘦客戶機、厚客戶機、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)個人電腦、小型計算機系統(tǒng)、大型計算機系統(tǒng)和包括上述任何系統(tǒng)的分布式云計算技術(shù)環(huán)境,等等。計算機系統(tǒng)/服務(wù)器可以在由計算機系統(tǒng)執(zhí)行的計算機系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實現(xiàn)特定的抽象數(shù)據(jù)類型。計算機系統(tǒng)/服務(wù)器可以在分布式云計算環(huán)境中實施,分布式云計算環(huán)境中,任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備的本地或遠程計算系統(tǒng)存儲介質(zhì)上。實施例一參照圖1,示出了根據(jù)本發(fā)明一個實施例的程序處理方法的流程圖,該方法具體可以包括步驟S101,當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件。步驟S102,將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果。步驟S103,依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。對于本實施例提出的程序處理方法的具體過程,將在下面的實施例中詳細介紹。通過上述步驟SlOl-步驟S103可以利用本地鑒別條件檢測待執(zhí)行程序是否存在被劫持的DLL文件,后續(xù)可以通過檢測結(jié)果對待執(zhí)行程序進行處理。如果檢測到待執(zhí)行程序存在被劫持的DLL文件,則后續(xù)可以通過服務(wù)器對被劫持的DLL文件進行查殺,然后依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。由此解決了惡意程序利用可信的白名單中的程序加載惡意DLL文件而導(dǎo)致主動防御無法正常攔截惡意程序的問題,能夠更加有效地攔截惡意程序。實施例二參照圖2,示出了根據(jù)本發(fā)明一個實施例的程序處理方法的流程圖。為了適應(yīng)惡意程序的更新速度,以快速地識別和查殺惡意程序,目前普遍利用主動防御技術(shù)查殺惡意程序。主動防御技術(shù)是基于程序的行為進行自主分析判斷的實時防護技術(shù),通過在系統(tǒng)的關(guān)鍵位置設(shè)置攔截點對系統(tǒng)的關(guān)鍵位置進行保護。當(dāng)有程序執(zhí)行修改這些關(guān)鍵位置的行為(例如寫入注冊表、創(chuàng)建計劃任務(wù)、修改瀏覽器首頁、修改默認瀏覽器和注冊瀏覽器插件等行為)時,就會對該程序進行攔截,攔截后需要判斷此次修改行為是否為惡意的,通常對行為的判斷是通過判斷執(zhí)行此次修改行為的程序是否安全來實現(xiàn)的,如果程序是惡意的,則說明該修改行為是惡意的,因此需要攔截該程序的執(zhí)行。一般來說,主動防御技術(shù)通過對程序的文件進行檢查,以檢測程序的安全性。但是在檢查程序文件時,需要計算文件的哈希值,還需要訪問網(wǎng)絡(luò),這些都是比較耗費時間的操作,并且一般的程序會加載幾十個甚至上百個DLL文件,即使使用緩存技術(shù)進行優(yōu)化,還是會明顯延長程序的啟動時間。因此,為了盡可能減小對程序性能的影響,主動防御技術(shù)只對程序的EXE文件進行檢測,而不檢查程序加載的DLL文件。因此,一些惡意程序就利用這一點,通過DLL劫持技術(shù)將該惡意程序的DLL文件與可信任的白名單中的程序(例如操作系統(tǒng)自帶的程序)打包在一起,當(dāng)用戶選擇執(zhí)行該白名單中的程序時,其中的惡意程序的DLL文件就會被加載,從而使主動防御技術(shù)不能成功攔截該惡意程序。為了防止惡意程序利用可信任的白名單中的程序突破主動防御而成功執(zhí)行,本發(fā)明實施例提出了一種程序處理方法,具體的,該程序處理方法包括以下步驟步驟S201,當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,依據(jù)預(yù)先設(shè)置的本地鑒別條件檢查所述待執(zhí)行程序是否存在被劫持的DLL文件。需要說明的是,該步驟S201為檢查所述待執(zhí)行程序是否存在被劫持的DLL文件的過程,相對于上述實施例一來說,該步驟S201可以包括上述實施例一中的步驟SlOl-步驟S103。步驟S202,若存在,則通過服務(wù)器對所述被劫持的DLL文件進行查殺。步驟S203,依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。通過上述步驟S201-步驟S203可以在待執(zhí)行程序存在被劫持的DLL文件時,進一步通過服務(wù)器對這些被劫持的DLL文件進行查殺,然后依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。對于具體的處理過程,將在下面的實施例中詳細介紹。本發(fā)明實施例提出的程序處理方法通過對待執(zhí)行程序中被劫持的DLL文件進行檢查,能夠解決惡意程序利用可信任的白名單中的程序加載惡意DLL文件而導(dǎo)致主動防御無法正常攔截惡意程序的問題,取得了更加有效地攔截惡意程序的有益效果。實施例三下面,對于具體的程序處理方法進行詳細描述。參照圖3,示出了根據(jù)本發(fā)明一個實施例的程序處理方法的流程圖,所述方法包括步驟S301,當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,依據(jù)預(yù)先設(shè)置的本地鑒別條件檢查所述待執(zhí)行程序是否存在被劫持的DLL文件。本發(fā)明實施例主要是在待執(zhí)行程序創(chuàng)建進程時,增加對DLL文件的查詢過程,需要檢查待執(zhí)行程序是否存在被劫持的DLL文件,如果存在,則說明該待執(zhí)行程序有可能被惡意程序利用,因此要進一步檢查這些被劫持的DLL文件是否安全。在本實施例中,依據(jù)預(yù)先設(shè)置的本地鑒別條件檢查所述待執(zhí)行程序是否存在被劫持的DLL文件。本地鑒別條件存儲在客戶端本地目錄下,在本地鑒別條件中包括多個程序匹配條件和滿足該程序匹配條件后需要檢查的DLL文件信息,本實施例就是要將待執(zhí)行程序的一些特征信息與本地鑒別條件進行匹配,然后再依據(jù)匹配結(jié)果進行判斷。具體的,該步驟S301可以包括以下子步驟子步驟al,獲取所述待執(zhí)行程序的特征信息。其中,待執(zhí)行程序的特征信息包括以下信息中的至少一種待執(zhí)行程序的文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、數(shù)字簽名公司信息,以及待執(zhí)行程序創(chuàng)建的進程的命令行信息、進程路徑信息和父進程路徑信息。當(dāng)然,所述待執(zhí)行程序的特征信息還可以包括其他信息,本實施例對此并不加以限制。子步驟a2,通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL文件信息,將所述需要檢查的DLL文件信息作為匹配結(jié)果。下面,具體介紹一下與本地鑒別條件進行匹配的過程。由上述描述可知,在本地鑒別條件中包括多個程序匹配條件和滿足該程序匹配條件后需要檢查的DLL文件信息,在本發(fā)明實施例中,所述程序匹配條件包括兩種,即公共程序匹配條件和特定程序匹配條件,根據(jù)匹配條件的不同,執(zhí)行不同的匹配過程。第一種公共程序匹配條件在本地鑒別條件中,滿足公共程序匹配條件后需要檢查的DLL文件信息為公共DLL文件信息。當(dāng)進行匹配時,對于公共程序匹配條件來說,每個待執(zhí)行程序都要與該公共程序匹配條件進行匹配,并且獲取所有滿足公共程序匹配條件之后需要檢查的DLL文件信息。也即針對每個待執(zhí)行程序,都要獲取所有的公共DLL文件信息,然后進一步對這些公共DLL文件信息進行判斷。具體的,針對公共程序匹配條件的處理過程可以包括(I)獲取滿足所述公共程序匹配條件后需要檢查的公共DLL文件信息;(2)將所述公共DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。本實施例中可以在公共程序匹配條件中設(shè)置一些常用的DLL文件信息,因此對于劫持常用DLL文件的未知惡意程序也可以進行查殺,提高查殺的準確性。第二種特定程序匹配條件在本地鑒別條件中,滿足該特定程序匹配條件后需要檢查的DLL文件信息為特定DLL文件信息。當(dāng)進行匹配時,對于特定程序匹配條件來說,并不是每個待執(zhí)行程序都與特定程序匹配條件相匹配。因此,需要將待執(zhí)行程序的特征信息與所述特定程序匹配條件進行匹配,然后只獲取滿足相匹配的特定程序匹配條件后需要檢查的特定DLL文件信息,如果在特定程序匹配條件中沒有與待執(zhí)行程序的特征信息相匹配的條件,則只需對上述獲取的公共DLL文件信息進行判斷即可。由于特定程序匹配條件需要與待執(zhí)行程序的特征信息進行匹配,因此,在所述特定程序匹配條件中也需要包括一些與程序的特征信息相對應(yīng)的信息,通過這些信息即可找到與待執(zhí)行程序的特征信息相匹配的特定程序匹配條件。在本實施例中,所述特定程序匹配條件包括以下信息中的至少一種文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、公司名稱的數(shù)字簽名信息,以及進程的命令行信息、進程路徑信息和父進程路徑信息。同樣的,所述特定程序匹配條件還可以包括其他信息,本實施例對此并不加以限制。具體的,針對特定程序匹配條件的處理過程可以包括(i)將所述待執(zhí)行程序的特征信息與所述特定程序匹配條件進行匹配;(ii)獲取滿足相匹配的特定程序匹配條件后需要檢查的特定DLL文件信息;(iii)將所述特定DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。具體的,可以通過以下實例進行說明。如圖4所示,是本發(fā)明實施例所述的本地鑒別條件的示意圖。從圖中可以看出,在該本地鑒別條件中包括多個公共程序匹配條件和特定程序匹配條件。其中,DLL-HIJACK為字段名稱,單獨的DLL-HIJACK字段表示的是公共程序匹配條件,這些單獨的DLL-HIJACK字段中的DLL文件信息為公共DLL文件信息;其它一些DLL-HIJACK字段是與特定字段組合在一起的,這些特定字段(例如“FD@=360網(wǎng)絡(luò)連接查看器”)表示的是特定程序匹配條件。特定字段中的文件信息為程序的EXE文件的信息(例如文件描述信息(FD)、內(nèi)部名稱信息(IN)、公司名稱的數(shù)字簽名信息(SP)等),這些信息作為特定程序匹配條件與待執(zhí)行程序的特征信息進行匹配。與這些特定字段組合在一起的DLL-HIJACK字段中的DLL文件信息為滿足特定程序匹配條件后需要檢查的特定DLL文件信息。在本實施例中,所述DLL文件信息可以為DLL文件的名稱。例如,lpk.dll、uspl0.dll、setupap1.dll(具體參照圖3,在此不再--列舉)等單獨的DLL_HIJACK字段中的DLL文件名稱即為公共DLL文件信息,而360netview.dll、360nzp.dll、somkernl.dll等與特定字段組合在一起的DLL-HIJACK字段中DLL文件名稱即為特定DLL文件信息。對于每個待執(zhí)行程序,在將該程序與本地鑒別條件進行匹配時,首先要獲取單獨的DLL_HIJACK字段中的DLL文件名稱,然后再將該待執(zhí)行程序的特征信息與特定字段中的信息進行匹配,獲取與相匹配的特定字段組合在一起的DLL-HIJACK字段中的DLL文件名稱,最后對獲取到的所有的DLL文件名稱進行判斷。因為對于某些待執(zhí)行程序來說,其沒有明顯區(qū)別于其它程序的信息,因此對于這些待執(zhí)行程序,只能與單獨的DLL_HIJACK字段進行匹配。例如,獲取到當(dāng)前待執(zhí)行程序的特征信息為文件描述信息“360網(wǎng)絡(luò)連接查看器”,然后將該文件描述信息與本地鑒別條件進行匹配。首先獲取所有單獨的DLL_HIJACK字段中的DLL文件名稱,如“l(fā)pk.dll”、“uspl0.dll”、“setupap1.dll”等;然后將文件描述信息“360網(wǎng)絡(luò)連接查看器”與特定字段進行匹配,經(jīng)過判斷,其中的“|FD@=360網(wǎng)絡(luò)連接查看器|DLL_HIJACK=360netview.dll|”是與文件描述信息“360網(wǎng)絡(luò)連接查看器”相匹配的信息,因此,獲取與該特定字段組合在一起的DLL_HIJACK字段中的DLL文件名稱“360netview.dll”;最后將上述獲取到的“l(fā)pk.dll”、“usplO.dll”、“setupap1.dll”等單獨的DLL_HIJACK字段中的DLL文件名稱與“360netview.dll”作為待執(zhí)行程序需要檢查的DLL文件信息。子步驟a3,判斷指定目錄下是否存在所述需要檢查的DLL文件信息,若存在,則確定所述待執(zhí)行程序存在被劫持的DLL文件。一般來說,DLL文件會存儲在系統(tǒng)目錄中,如果在程序執(zhí)行時需要調(diào)用某些DLL文件,則將這些DLL文件存儲在指定目錄下,因此存儲在指定目錄下的DLL文件即為該程序所調(diào)用的DLL文件。在本實施例中,所述指定目錄為當(dāng)前目錄或者指定的相對目錄。所以,在經(jīng)過上述子步驟a2獲取到待執(zhí)行程序需要檢查的DLL文件信息之后,還需要進一步判斷指定目錄下是否存在所述需要檢查的DLL文件信息。如果指定目錄下存在所述需要檢查的DLL文件信息,說明所述待執(zhí)行程序存在被劫持的DLL文件,并且所述被劫持的DLL文件即為指定目錄下存在的DLL文件,需要對這些被劫持的DLL文件進行查殺;如果指定目錄下不存在所述需要檢查的DLL文件信息,說明這些DLL文件不會被待執(zhí)行程序加載,因此不需要對其進行查殺。例如,仍然以上述舉例進行說明,如果在步驟a2中獲取到的待執(zhí)行程序需要檢查的DLL文件信息為“l(fā)pk.dll”、“uspl0.dll”、“setupap1.dll”等單獨的DLL_HIJACK字段中的DLL文件名稱以及與特定字段組合在一起的DLL_HIJACK字段中的DLL文件名稱“360netview.dlI”,則判斷指定目錄下是否存在這些DLL文件名稱。例如,判斷出指定目錄下存在的文件名稱為“l(fā)pk.dll”、“usplO.dll”和“360netview.dll”,則將DLL文件“l(fā)pk.dll”、“uspl0.dll”和“360netview.dll”作為待執(zhí)行程序被劫持的DLL文件。需要說明的是,對應(yīng)于上述實施例一,本實施例中的子步驟al-子步驟a2為上述實施例一中的步驟S102的具體過程,子步驟a3為上述實施例一中的步驟S103的具體過程,本實施例在此不再詳細論述。步驟S302,獲取所述待執(zhí)行程序?qū)?yīng)的EXE文件。步驟S303,若指定目錄下存在所述需要檢查的DLL文件信息,則將所述待執(zhí)行程序?qū)?yīng)的EXE文件的信息和所述被劫持的DLL文件的信息上傳至服務(wù)器。其中,上傳的文件的信息可以包括文件的哈希值、文件路徑等信息,本發(fā)明實施例對此并不加以限制。由于現(xiàn)有的主動防御只對程序的EXE文件進行檢查,而不檢查程序的DLL文件,如果惡意程序利用可信的白名單中的程序加載惡意DLL文件,則惡意程序就能繞過主動防御的攔截而成功執(zhí)行。因此,本發(fā)明實施例提出不僅對程序的EXE文件進行檢查,對程序的DLL文件也進行檢查,但是并不是對所有的DLL文件進行檢查,而是通過與本地鑒別條件匹配,確定出程序中被劫持的DLL文件,然后對這些被劫持的DLL文件進行查殺。具體的,對文件進行查殺的過程由服務(wù)器執(zhí)行,因此,如果在步驟S201中判斷出待執(zhí)行程序中存在被劫持的DLL文件,并且確定出了被劫持的DLL文件,則將所述待執(zhí)行程序?qū)?yīng)的EXE文件的信息和所述被劫持的DLL文件的信息均上傳至服務(wù)器,通過服務(wù)器對這些文件進行查殺;如果判斷出待執(zhí)行程序中不存在被劫持的DLL文件,則說明該待執(zhí)行程序沒有被惡意程序利用,此時只需要將待執(zhí)行程序?qū)?yīng)的EXE文件的信息上傳至服務(wù)器即可。例如,在步驟S301中判斷出待執(zhí)行程序被劫持的DLL文件分別為“l(fā)pk.dll”、“usplO.dll”和“360netview.dll”,則將DLL文件“l(fā)pk.dll,V‘usplO.dll”和“360netview.dll”的信息和文件描述信息為“360網(wǎng)絡(luò)連接查看器”的待執(zhí)行程序?qū)?yīng)的EXE文件的信息上傳至服務(wù)器。步驟S304,通過服務(wù)器對所述被劫持的DLL文件進行查殺。服務(wù)器在接收到客戶端上傳的待執(zhí)行程序?qū)?yīng)的EXE文件的信息和所述被劫持的DLL文件的信息之后,即依據(jù)所述文件信息對相應(yīng)的文件進行查殺。該步驟S304具體可以包括子步驟bl,通過服務(wù)器獲取所述EXE文件的等級和所述被劫持的DLL文件的等級。在本實施例中,所述等級包括安全等級、未知等級、可疑/高度可疑等級、以及惡意等級。對于等級的設(shè)置,可以設(shè)置等級為10-29時為安全等級(該等級的文件為白文件),等級為30-49時為未知等級(該等級的文件為灰文件),等級為50-69時為可疑/高度可疑等級(該等級的文件為可疑文件),等級大于或等于70時為惡意等級(該等級的文件為惡意文件)。當(dāng)然,還可以設(shè)置所述等級為其他形式,本發(fā)明對此并不加以限制。子步驟b2,依據(jù)所述EXE文件的等級和所述被劫持的DLL文件的等級對所述被劫持的DLL文件進行查殺。具體的,可以通過用于查殺可移植執(zhí)行體(PortableExecute,PE)類型文件的云查殺引擎,或者人工智能引擎(QihooVirtualMachine,QVM)對所述EXE文件和被劫持的DLL文件進行查殺。其中,PE類型文件通常指Windows操作系統(tǒng)上的程序文件,常見的PE類型文件包括EXE、DLL、OCX、SYS、COM等類型文件。殺毒引擎可以根據(jù)對文件等級的識別結(jié)果,按照殺毒引擎中保存的黑名單,和/或白名單對相應(yīng)文件進行查殺。對于具體的查殺過程,本領(lǐng)域技術(shù)人員根據(jù)實際經(jīng)驗進行相應(yīng)處理即可,本實施例在此不再詳細論述。步驟S305,依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。服務(wù)器在獲取到EXE文件和被劫持的DLL文件的等級之后,將獲取到的等級下發(fā)給客戶端,客戶端依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。具體的,該步驟S305可以包括以下子步驟子步驟Cl,當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中至少一個為惡意等級時,攔截所述待執(zhí)行程序的執(zhí)行。在本實施例中,所述被劫持的DLL文件為一個或多個,如果獲取到的EXE文件的等級和被劫持的DLL文件的等級中存在惡意等級,則說明該待執(zhí)行程序是有風(fēng)險的,此時需要攔截所述待執(zhí)行程序的執(zhí)行。子步驟c2,當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級均為安全等級時,允許所述待執(zhí)行程序的執(zhí)行。子步驟c3,當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中沒有惡意等級,并且至少一個被劫持的DLL文件的等級高于所述EXE文件的等級時,獲取其中最高的等級,將所述EXE文件的等級修改為所述最高的等級,允許所述待執(zhí)行程序的執(zhí)行,并攔截待執(zhí)行程序執(zhí)行后發(fā)起的可疑操作。如果EXE文件的等級和被劫持的DLL文件的等級不滿足上述子步驟cl和子步驟c2中的兩種情況,則將EXE文件的等級修改為所述最高的等級,并且可以允許所述待執(zhí)行程序的執(zhí)行,此時由于待執(zhí)行程序的EXE文件可能也存在風(fēng)險,因此當(dāng)待執(zhí)行程序執(zhí)行后發(fā)起可疑操作時,可以對這些可疑的操作進行攔截。例如,在步驟S301中確定出待執(zhí)行程序被劫持的DLL文件為“l(fā)pk.dll”、“uspl0.dll”和“360netview.dll”,通過服務(wù)器獲取到待執(zhí)行程序的EXE文件的等級為安全等級,lpk.dll的等級為未知等級,usplO.dll的等級為未知等級,360netview.dll為可疑/高度可疑等級,其中最高的文件等級為可疑/高度可疑等級,此時,即將所述EXE文件的等級修改為可疑/高度可疑等級。并且,由于EXE文件的等級被修改了,因此后續(xù)當(dāng)該待執(zhí)行程序執(zhí)行某些可疑的操作時,即可通過EXE文件的等級判斷該程序是否安全,如果EXE文件是可疑的,則可以對這些可疑操作進行攔截。其中,可疑的操作可以為以下任意一種文件操作、注冊表操作、進程操作和網(wǎng)絡(luò)操作。例如,對于文件操作可以為對windows操作系統(tǒng)相關(guān)的文件,或者一些裝載量比較大的應(yīng)用軟件(如qq、阿里旺旺等),或者桌面的快捷方式等的操作;對于注冊表的操作可以是程序?qū)懭胱员碜詣蛹虞d,以及破壞注冊表等;對于進程操作可以是進程之間相互注入(一個進程在另一個進程中插入并執(zhí)行一些代碼)、進程遠線程操作、結(jié)束進程(例如有些惡意程序結(jié)束掉QQ進程,重新登錄會截取到密碼,或者進程后續(xù)的一些操作)等;對于網(wǎng)絡(luò)操作可以是安裝驅(qū)動或服務(wù)、全局鉤子注入,記錄鍵盤操作、修改瀏覽器中網(wǎng)頁內(nèi)容等。當(dāng)然,還可以包括其他一些操作,本發(fā)明實施例對此并不加以限制。需要說明的是,本實施例主要是針對惡意程序利用可信任的白名單中的程序加載惡意DLL文件的情況進行處理,因此,EXE文件的等級應(yīng)為安全等級,如果有DLL文件的等級高于該EXE文件的等級,則修改EXE文件的等級。步驟S306,定期檢測所述本地鑒別條件是否滿足升級條件,若滿足,則從服務(wù)器下載新的鑒別條件,并通過重新加載所述新的鑒別條件完成所述本地鑒別條件的升級更新。本實施例中的本地鑒別條件是需要定期升級更新的。具體的,可以在服務(wù)器中配置升級條件,客戶端定期檢測所述本地鑒別條件是否滿足升級條件,當(dāng)滿足時,就從服務(wù)器下載新的本地鑒別條件,并用新的本地鑒別條件替換原有的本地鑒別條件,從而對原有的本地鑒別條件進行升級更新。其中,升級條件可以根據(jù)本地鑒別條件的文件版本來判斷,比如有更新的版本時則升級,也可以指定當(dāng)本地版本滿足某個條件時升級為一個指定版本,本發(fā)明實施例對此并不加以限制。例如,如果發(fā)現(xiàn)了新的被利用的程序(QQ游戲),但是本地鑒別條件中不存在該程序,則可以在本地鑒別條件中增加一個特定程序匹配條件,其中包括該程序的特征信息(文件描述“QQ游戲”)以及滿足該特定程序匹配條件后需要檢查的DLL文件信息。當(dāng)然,還可以采用其他的方式對本地鑒別條件進行升級更新,本實施例對此并不加以限制。最后,需要說明的是,本發(fā)明實施例主要是針對惡意程序利用可信任的白名單中的程序加載惡意DLL文件的情況進行處理。如果待執(zhí)行程序是可信任的白名單中的程序,此時主動防御技術(shù)只檢查程序的EXE文件,將會判斷該程序是安全的,從而允許其執(zhí)行,但是如果惡意程序利用該白名單中的程序加載惡意DLL文件,則該惡意程序也會成功執(zhí)行。因此,對于這種情況,本發(fā)明實施例通過在檢測到待執(zhí)行程序創(chuàng)建進程時,依據(jù)預(yù)先設(shè)置的本地鑒別條件檢查所述待執(zhí)行程序是否存在被劫持的DLL文件,如果待執(zhí)行程序存在被劫持的DLL文件,則通過服務(wù)器對所述被劫持的DLL文件進行查殺,然后依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。由此解決了惡意程序利用可信的白名單中的程序加載惡意DLL文件而導(dǎo)致主動防御無法正常攔截惡意程序的問題,取得了更加有效地攔截惡意程序的有益效果。需要說明的是,對于前述的方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本申請所必需的。實施例四參照圖5,示出了根據(jù)本發(fā)明一個實施例的程序處理系統(tǒng)的結(jié)構(gòu)框圖,所述系統(tǒng)包括客戶端501和服務(wù)器502,其中,客戶端501包括讀取模塊5011,適于當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件;匹配模塊5012,適于將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果;確定模塊5013,適于依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。通過上述客戶端的各個模塊可以利用本地鑒別條件檢測待執(zhí)行程序是否存在被劫持的DLL文件,如果檢測到待執(zhí)行程序存在被劫持的DLL文件,則后續(xù)可以通過服務(wù)器對被劫持的DLL文件進行查殺,然后依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。從而能夠解決惡意程序利用可信的白名單中的程序加載惡意DLL文件而導(dǎo)致主動防御無法正常攔截惡意程序的問題,更加有效地攔截惡意程序。實施例五參照圖6,示出了根據(jù)本發(fā)明一個實施例的程序處理系統(tǒng)的結(jié)構(gòu)框圖,所述系統(tǒng)包括客戶端601和服務(wù)器602。其中,客戶端601包括檢查模塊6011、EXE文件獲取模塊6012、上傳模塊6013、處理模塊6014和升級模塊6015;服務(wù)器602包括查殺模塊6021。檢查模塊6011,適于當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,依據(jù)預(yù)先設(shè)置的本地鑒別條件檢查所述待執(zhí)行程序是否存在被劫持的DLL文件;需要說明的是,上述檢查模塊主要是用于檢查所述待執(zhí)行程序是否存在被劫持的DLL文件,相對于上述實施例四來說,該檢查模塊可以包括上述實施例四中的讀取模塊5011、匹配模塊5012和確定模塊5013。其中,所述待執(zhí)行程序為白名單中的程序,所述本地鑒別條件存儲在客戶端本地目錄下。所述檢查模塊6011包括特征信息獲取子模塊,適于獲取所述待執(zhí)行程序的特征信息;其中,所述待執(zhí)行程序的特征信息可以包括以下信息中的至少一種待執(zhí)行程序的文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、數(shù)字簽名公司信息,以及待執(zhí)行程序創(chuàng)建的進程的命令行信息、進程路徑信息和父進程路徑信息。DLL文件信息獲取子模塊,適于通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL文件信息,將所述需要檢查的DLL文件信息作為匹配結(jié)果;其中,所述本地鑒別條件中包括多個程序匹配條件和滿足該程序匹配條件后需要檢查的DLL文件信息。所述程序匹配條件包括兩種公共程序匹配條件和特定程序匹配條件。第一種公共程序匹配條件滿足該公共程序匹配條件后需要檢查的DLL文件信息為公共DLL文件信息,所述DLL文件信息獲取子模塊包括公共DLL文件信息獲取單元,適于獲取滿足所述公共程序匹配條件后需要檢查的公共DLL文件信息;第一確定單元,適于將所述公共DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。第二種特定程序匹配條件滿足該特定程序匹配條件后需要檢查的DLL文件信息為特定DLL文件信息,所述DLL文件信息獲取子模塊包括匹配單元,適于將所述待執(zhí)行程序的特征信息與所述特定程序匹配條件進行匹配;所述特定程序匹配條件可以包括以下信息中的至少一種文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、公司名稱的數(shù)字簽名信息,以及進程的命令行信息、進程路徑信息和父進程路徑信息;特定DLL文件信息獲取單元,適于獲取滿足相匹配的特定程序匹配條件后需要檢查的特定DLL文件信息;第二確定單元,適于將所述特定DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。判斷子模塊,適于判斷指定目錄下是否存在所述需要檢查的DLL文件信息,若存在,則確定所述待執(zhí)打程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件為指定目錄下存在的DLL文件,所述指定目錄為當(dāng)前目錄或者指定的相對目錄。需要說明的是,對應(yīng)于上述實施例四,本實施例中的特征信息獲取子模塊和DLL文件信息獲取子模塊可以為上述實施例四中的匹配模塊中包括的子模塊,判斷子模塊可以為上述實施例四中的確定模塊中包括的子模塊,本實施例在此不再詳細論述。EXE文件獲取模塊6012,適于在服務(wù)器的查殺模塊對所述被劫持的DLL文件進行查殺之前,獲取所述待執(zhí)行程序?qū)?yīng)的EXE文件;上傳模塊6013,適于將所述待執(zhí)行程序?qū)?yīng)的EXE文件的信息和所述被劫持的DLL文件的信息上傳至服務(wù)器;所述服務(wù)器602包括查殺模塊6021,適于當(dāng)客戶端的檢查模塊的檢查結(jié)果為存在時,對所述被劫持的DLL文件進行查殺;所述查殺模塊6021包括等級獲取子模塊,適于獲取所述EXE文件的等級和所述被劫持的DLL文件的等級,所述等級包括安全等級、未知等級、可疑/高度可疑等級、以及惡意等級;查殺子模塊,適于依據(jù)所述EXE文件的等級和所述被劫持的DLL文件的等級對所述被劫持的DLL文件進行查殺。所述客戶端還包括處理模塊6014,適于依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作;其中,所述被劫持的DLL文件為一個或多個,所述處理模塊4014包括程序攔截子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中至少一個為惡意等級時,攔截所述待執(zhí)行程序的執(zhí)行;執(zhí)行子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級均為安全等級時,允許所述待執(zhí)行程序的執(zhí)行;可疑操作攔截子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中沒有惡意等級,并且至少一個被劫持的DLL文件的等級高于所述EXE文件的等級時,獲取其中最高的等級,將所述EXE文件的等級修改為所述最高的等級,允許所述待執(zhí)行程序的執(zhí)行,并攔截待執(zhí)行程序執(zhí)行后發(fā)起的可疑操作。其中,所述可疑操作可以為以下任意一種文件操作、注冊表操作、進程操作和網(wǎng)絡(luò)操作,當(dāng)然,所述可疑操作還可以為其他的一些操作,本發(fā)明實施例對此并不加以限制。升級模塊6015,適于定期檢測所述本地鑒別條件是否滿足升級條件,若滿足,則從服務(wù)器下載新的鑒別條件,并通過重新加載所述新的鑒別條件完成所述本地鑒別條件的升級更新;其中,所述升級條件在服務(wù)器中進行配置。本發(fā)明實施例的程序處理系統(tǒng)可以依據(jù)本地鑒別條件檢查待執(zhí)行程序是否存在被劫持的DLL文件,并且對待執(zhí)行程序被劫持的DLL文件進行查殺,然后依據(jù)服務(wù)器查殺結(jié)果對待執(zhí)行程序執(zhí)行相應(yīng)的操作。由此解決了惡意程序利用可信的白名單中的程序加載惡意DLL文件而導(dǎo)致主動防御無法正常攔截惡意程序的問題,取得了更加有效地攔截惡意程序的有益效果。對于上述程序處理系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見圖1、圖2和圖3所示方法實施例的部分說明即可。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。本領(lǐng)域技術(shù)人員易于想到的是上述各個實施例的任意組合應(yīng)用都是可行的,故上述各個實施例之間的任意組合都是本申請的實施方案,但是由于篇幅限制,本說明書在此就不一一詳述了。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的程序處理系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。本文公開了Al、一種程序處理方法,包括當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件;將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果;依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。A2、根據(jù)Al所述的方法,還包括若存在,則通過服務(wù)器對所述被劫持的DLL文件進行查殺;依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。A3、根據(jù)Al所述的方法,所述將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果,包括獲取所述待執(zhí)行程序的特征信息;通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL文件信息,將所述需要檢查的DLL文件信息作為所述匹配結(jié)果。A4、根據(jù)A3所述的方法,所述依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件,包括判斷指定目錄下是否存在所述需要檢查的DLL文件信息,若存在,則確定所述待執(zhí)行程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件為指定目錄下存在的DLL文件,所述指定目錄為當(dāng)前目錄或者指定的相對目錄。A5、根據(jù)A3所述的方法,所述本地鑒別條件中包括多個程序匹配條件和滿足該程序匹配條件后需要檢查的DLL文件信息。A6、根據(jù)A5所述的方法,所述程序匹配條件包括公共程序匹配條件,滿足該公共程序匹配條件后需要檢查的DLL文件信息為公共DLL文件信息,所述通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL信息,包括獲取滿足所述公共程序匹配條件后需要檢查的公共DLL文件信息;將所述公共DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。A7、根據(jù)A5所述的方法,所述程序匹配條件包括特定程序匹配條件,滿足該特定程序匹配條件后需要檢查的DLL文件信息為特定DLL文件信息,所述通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL信息,包括將所述待執(zhí)行程序的特征信息與所述特定程序匹配條件進行匹配;獲取滿足相匹配的特定程序匹配條件后需要檢查的特定DLL文件信息;將所述特定DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。AS、根據(jù)A7所述的方法,所述特定程序匹配條件包括以下信息中的至少一種文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、公司名稱的數(shù)字簽名信息,以及進程的命令行信息、進程路徑信息和父進程路徑信息;所述待執(zhí)行程序的特征信息包括以下信息中的至少一種待執(zhí)行程序的文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、數(shù)字簽名公司信息,以及待執(zhí)行程序創(chuàng)建的進程的命令行信息、進程路徑信息和父進程路徑信息。A9、根據(jù)A2所述的方法,在通過服務(wù)器對所述被劫持的DLL文件進行查殺之前,還包括獲取所述待執(zhí)行程序?qū)?yīng)的EXE文件;將所述待執(zhí)行程序?qū)?yīng)的EXE文件的信息和所述被劫持的DLL文件的信息上傳至服務(wù)器;所述通過服務(wù)器對所述被劫持的DLL文件進行查殺,包括通過服務(wù)器獲取所述EXE文件的等級和所述被劫持的DLL文件的等級,所述等級包括安全等級、未知等級、可疑/高度可疑等級、以及惡意等級;依據(jù)所述EXE文件的等級和所述被劫持的DLL文件的等級對所述被劫持的DLL文件進行查殺410、根據(jù)A9所述的方法,所述被劫持的DLL文件為一個或多個,所述依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作,包括當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中至少一個為惡意等級時,攔截所述待執(zhí)行程序的執(zhí)行;當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級均為安全等級時,允許所述待執(zhí)行程序的執(zhí)行;當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中沒有惡意等級,并且至少一個被劫持的DLL文件的等級高于所述EXE文件的等級時,獲取其中最高的等級,將所述EXE文件的等級修改為所述最高的等級,允許所述待執(zhí)行程序的執(zhí)行,并攔截待執(zhí)行程序執(zhí)行后發(fā)起的可疑操作。AU、根據(jù)AlO所述的方法,所述可疑操作為以下任意一種文件操作、注冊表操作、進程操作和網(wǎng)絡(luò)操作。A12、根據(jù)Al所述的方法,所述待執(zhí)行程序為白名單中的程序。A13、根據(jù)Al所述的方法,所述本地鑒別條件存儲在客戶端本地目錄下。A14、根據(jù)Al所述的方法,還包括定期檢測所述本地鑒別條件是否滿足升級條件,若滿足,則從服務(wù)器下載新的鑒別條件,并通過重新加載所述新的鑒別條件完成所述本地鑒別條件的升級更新;其中,所述升級條件在服務(wù)器中進行配置。本文公開了B15、一種程序處理系統(tǒng),包括客戶端和服務(wù)器,其中,所述客戶端包括讀取模塊,適于當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件;匹配模塊,適于將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果;確定模塊,適于依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。B16、根據(jù)B15所述的系統(tǒng),所述服務(wù)器包括查殺模塊,適于當(dāng)客戶端的確定模塊的檢查結(jié)果為存在時,對所述被劫持的DLL文件進行查殺;所述客戶端還包括處理模塊,適于依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。B17、根據(jù)B15所述的系統(tǒng),所述匹配模塊包括特征信息獲取子模塊,適于獲取所述待執(zhí)行程序的特征信息;DLL文件信息獲取子模塊,適于通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL文件信息,將所述需要檢查的DLL文件信息作為所述匹配結(jié)果。B18、根據(jù)B17所述的系統(tǒng),所述確定模塊包括判斷子模塊,適于判斷指定目錄下是否存在所述需要檢查的DLL文件信息,若存在,則確定所述待執(zhí)行程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件為指定目錄下存在的DLL文件,所述指定目錄為當(dāng)前目錄或者指定的相對目錄。B19、根據(jù)B17所述的系統(tǒng),所述本地鑒別條件中包括多個程序匹配條件和滿足該程序匹配條件后需要檢查的DLL文件信息。B20、根據(jù)B19所述的系統(tǒng),所述程序匹配條件包括公共程序匹配條件,滿足該公共程序匹配條件后需要檢查的DLL文件信息為公共DLL文件信息,所述DLL文件信息獲取子模塊包括公共DLL文件信息獲取單元,適于獲取滿足所述公共程序匹配條件后需要檢查的公共DLL文件信息;第一確定單元,適于將所述公共DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。B21、根據(jù)B19所述的系統(tǒng),所述程序匹配條件包括特定程序匹配條件,滿足該特定程序匹配條件后需要檢查的DLL文件信息為特定DLL文件信息,所述DLL文件信息獲取子模塊包括匹配單元,適于將所述待執(zhí)行程序的特征信息與所述特定程序匹配條件進行匹配;特定DLL文件信息獲取單元,適于獲取滿足相匹配的特定程序匹配條件后需要檢查的特定DLL文件信息;第二確定單元,適于將所述特定DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。B22、根據(jù)B21所述的系統(tǒng),所述特定程序匹配條件包括以下信息中的至少一種文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、公司名稱的數(shù)字簽名信息,以及進程的命令行信息、進程路徑信息和父進程路徑信息;所述待執(zhí)行程序的特征信息包括以下信息中的至少一種待執(zhí)行程序的文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、數(shù)字簽名公司信息,以及待執(zhí)行程序創(chuàng)建的進程的命令行信息、進程路徑信息和父進程路徑信息。B23、根據(jù)B16所述的系統(tǒng),所述客戶端還包括EXE文件獲取模塊,適于在服務(wù)器的查殺模塊對所述被劫持的DLL文件進行查殺之前,獲取所述待執(zhí)行程序?qū)?yīng)的EXE文件;上傳模塊,適于將所述待執(zhí)行程序?qū)?yīng)的EXE文件的信息和所述被劫持的DLL文件的信息上傳至服務(wù)器;所述查殺模塊包括等級獲取子模塊,適于獲取所述EXE文件的等級和所述被劫持的DLL文件的等級,所述等級包括安全等級、未知等級、可疑/高度可疑等級、以及惡意等級;查殺子模塊,適于依據(jù)所述EXE文件的等級和所述被劫持的DLL文件的等級對所述被劫持的DLL文件進行查殺。B24、根據(jù)B23所述的系統(tǒng),所述被劫持的DLL文件為一個或多個,所述處理模塊包括程序攔截子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中至少一個為惡意等級時,攔截所述待執(zhí)行程序的執(zhí)行;執(zhí)行子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級均為安全等級時,允許所述待執(zhí)行程序的執(zhí)行;可疑操作攔截子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中沒有惡意等級,并且至少一個被劫持的DLL文件的等級高于所述EXE文件的等級時,獲取其中最高的等級,將所述EXE文件的等級修改為所述最高的等級,允許所述待執(zhí)行程序的執(zhí)行,并攔截待執(zhí)行程序執(zhí)行后發(fā)起的可疑操作。B25、根據(jù)B24所述的系統(tǒng),所述可疑操作為以下任意一種文件操作、注冊表操作、進程操作和網(wǎng)絡(luò)操作。B26、根據(jù)B15所述的系統(tǒng),所述待執(zhí)行程序為白名單中的程序。B27、根據(jù)B15所述的系統(tǒng),所述本地鑒別條件存儲在客戶端本地目錄下。B28、根據(jù)B15所述的系統(tǒng),所述客戶端還包括升級模塊,適于定期檢測所述本地鑒別條件是否滿足升級條件,若滿足,則從服務(wù)器下載新的鑒別條件,并通過重新加載所述新的鑒別條件完成所述本地鑒別條件的升級更新;其中,所述升級條件在服務(wù)器中進行配置。權(quán)利要求1.一種程序處理方法,包括當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件;將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果;依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。2.根據(jù)權(quán)利要求1所述的方法,還包括若存在,則通過服務(wù)器對所述被劫持的DLL文件進行查殺;依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。3.根據(jù)權(quán)利要求1所述的方法,所述將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果,包括獲取所述待執(zhí)行程序的特征信息;通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL文件信息,將所述需要檢查的DLL文件信息作為所述匹配結(jié)果。4.根據(jù)權(quán)利要求3所述的方法,所述依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件,包括判斷指定目錄下是否存在所述需要檢查的DLL文件信息,若存在,則確定所述待執(zhí)行程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件為指定目錄下存在的DLL文件,所述指定目錄為當(dāng)前目錄或者指定的相對目錄。5.根據(jù)權(quán)利要求3所述的方法,所述本地鑒別條件中包括多個程序匹配條件和滿足該程序匹配條件后需要檢查的DLL文件信息。6.根據(jù)權(quán)利要求5所述的方法,所述程序匹配條件包括公共程序匹配條件,滿足該公共程序匹配條件后需要檢查的DLL文件信息為公共DLL文件信息,所述通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL信息,包括獲取滿足所述公共程序匹配條件后需要檢查的公共DLL文件信息;將所述公共DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。7.根據(jù)權(quán)利要求5所述的方法,所述程序匹配條件包括特定程序匹配條件,滿足該特定程序匹配條件后需要檢查的DLL文件信息為特定DLL文件信息,所述通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL信息,包括將所述待執(zhí)行程序的特征信息與所述特定程序匹配條件進行匹配;獲取滿足相匹配的特定程序匹配條件后需要檢查的特定DLL文件信息;將所述特定DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。8.根據(jù)權(quán)利要求7所述的方法,所述特定程序匹配條件包括以下信息中的至少一種文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、公司名稱的數(shù)字簽名信息,以及進程的命令行信息、進程路徑信息和父進程路徑信息;所述待執(zhí)行程序的特征信息包括以下信息中的至少一種待執(zhí)行程序的文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、數(shù)字簽名公司信息,以及待執(zhí)行程序創(chuàng)建的進程的命令行信息、進程路徑信息和父進程路徑信肩、O9.根據(jù)權(quán)利要求2所述的方法,在通過服務(wù)器對所述被劫持的DLL文件進行查殺之前,還包括獲取所述待執(zhí)行程序?qū)?yīng)的EXE文件;將所述待執(zhí)行程序?qū)?yīng)的EXE文件的信息和所述被劫持的DLL文件的信息上傳至服務(wù)器;所述通過服務(wù)器對所述被劫持的DLL文件進行查殺,包括通過服務(wù)器獲取所述EXE文件的等級和所述被劫持的DLL文件的等級,所述等級包括安全等級、未知等級、可疑/高度可疑等級、以及惡意等級;依據(jù)所述EXE文件的等級和所述被劫持的DLL文件的等級對所述被劫持的DLL文件進行查殺。10.根據(jù)權(quán)利要求9所述的方法,所述被劫持的DLL文件為一個或多個,所述依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作,包括當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中至少一個為惡意等級時,攔截所述待執(zhí)行程序的執(zhí)行;當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級均為安全等級時,允許所述待執(zhí)行程序的執(zhí)行;當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中沒有惡意等級,并且至少一個被劫持的DLL文件的等級高于所述EXE文件的等級時,獲取其中最高的等級,將所述EXE文件的等級修改為所述最高的等級,允許所述待執(zhí)行程序的執(zhí)行,并攔截待執(zhí)行程序執(zhí)行后發(fā)起的可疑操作。11.一種程序處理系統(tǒng),包括客戶端和服務(wù)器,其中,所述客戶端包括讀取模塊,適于當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件;匹配模塊,適于將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果;確定模塊,適于依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。12.根據(jù)權(quán)利要求11所述的系統(tǒng),所述服務(wù)器包括查殺模塊,適于當(dāng)客戶端的確定模塊的檢查結(jié)果為存在時,對所述被劫持的DLL文件進行查殺;所述客戶端還包括處理模塊,適于依據(jù)服務(wù)器查殺結(jié)果對所述待執(zhí)行程序執(zhí)行相應(yīng)的操作。13.根據(jù)權(quán)利要求11所述的系統(tǒng),所述匹配模塊包括特征信息獲取子模塊,適于獲取所述待執(zhí)行程序的特征信息;DLL文件信息獲取子模塊,適于通過將所述待執(zhí)行程序的特征信息與所述本地鑒別條件進行匹配,獲得所述待執(zhí)行程序需要檢查的DLL文件信息,將所述需要檢查的DLL文件信息作為所述匹配結(jié)果。14.根據(jù)權(quán)利要求13所述的系統(tǒng),所述確定模塊包括判斷子模塊,適于判斷指定目錄下是否存在所述需要檢查的DLL文件信息,若存在,則確定所述待執(zhí)打程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件為指定目錄下存在的DLL文件,所述指定目錄為當(dāng)前目錄或者指定的相對目錄。15.根據(jù)權(quán)利要求13所述的系統(tǒng),所述本地鑒別條件中包括多個程序匹配條件和滿足該程序匹配條件后需要檢查的DLL文件信息。16.根據(jù)權(quán)利要求15所述的系統(tǒng),所述程序匹配條件包括公共程序匹配條件,滿足該公共程序匹配條件后需要檢查的DLL文件信息為公共DLL文件信息,所述DLL文件信息獲取子模塊包括公共DLL文件信息獲取單元,適于獲取滿足所述公共程序匹配條件后需要檢查的公共DLL文件信息;第一確定單元,適于將所述公共DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。17.根據(jù)權(quán)利要求15所述的系統(tǒng),所述程序匹配條件包括特定程序匹配條件,滿足該特定程序匹配條件后需要檢查的DLL文件信息為特定DLL文件信息,所述DLL文件信息獲取子模塊包括匹配單元,適于將所述待執(zhí)行程序的特征信息與所述特定程序匹配條件進行匹配;特定DLL文件信息獲取單元,適于獲取滿足相匹配的特定程序匹配條件后需要檢查的特定DLL文件信息;第二確定單元,適于將所述特定DLL文件信息作為所述待執(zhí)行程序需要檢查的DLL文件信息。18.根據(jù)權(quán)利要求17所述的系統(tǒng),所述特定程序匹配條件包括以下信息中的至少一種文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、公司名稱的數(shù)字簽名信息,以及進程的命令行信息、進程路徑信息和父進程路徑信息;所述待執(zhí)行程序的特征信息包括以下信息中的至少一種待執(zhí)行程序的文件名稱信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、內(nèi)部名稱信息、公司名稱信息、版權(quán)聲明信息、產(chǎn)品名稱信息、產(chǎn)品版本信息、數(shù)字簽名公司信息,以及待執(zhí)行程序創(chuàng)建的進程的命令行信息、進程路徑信息和父進程路徑信19.根據(jù)權(quán)利要求12所述的系統(tǒng),所述客戶端還包括EXE文件獲取模塊,適于在服務(wù)器的查殺模塊對所述被劫持的DLL文件進行查殺之前,獲取所述待執(zhí)行程序?qū)?yīng)的EXE文件;上傳模塊,適于將所述待執(zhí)行程序?qū)?yīng)的EXE文件的信息和所述被劫持的DLL文件的信息上傳至服務(wù)器;所述查殺模塊包括等級獲取子模塊,適于獲取所述EXE文件的等級和所述被劫持的DLL文件的等級,所述等級包括安全等級、未知等級、可疑/高度可疑等級、以及惡意等級;查殺子模塊,適于依據(jù)所述EXE文件的等級和所述被劫持的DLL文件的等級對所述被劫持的DLL文件進行查殺。20.根據(jù)權(quán)利要求19所述的系統(tǒng),所述被劫持的DLL文件為一個或多個,所述處理模塊包括程序攔截子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中至少一個為惡意等級時,攔截所述待執(zhí)行程序的執(zhí)行;執(zhí)行子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級均為安全等級時,允許所述待執(zhí)行程序的執(zhí)行;可疑操作攔截子模塊,適于當(dāng)所述EXE文件的等級和所述被劫持的DLL文件的等級中沒有惡意等級,并且至少一個被劫持的DLL文件的等級高于所述EXE文件的等級時,獲取其中最高的等級,將所述EXE文件的等級修改為所述最高的等級,允許所述待執(zhí)行程序的執(zhí)行,并攔截待執(zhí)行程序執(zhí)行后發(fā)起的可疑操作。全文摘要本發(fā)明實施例公開了一種程序處理方法和系統(tǒng),以解決惡意程序利用可信的白名單中的程序加載惡意DLL文件而導(dǎo)致主動防御無法正常攔截惡意程序的問題。其中,方法包括當(dāng)檢測到待執(zhí)行程序創(chuàng)建進程時,讀取預(yù)先設(shè)置的本地鑒別條件;將所述待執(zhí)行程序與所述本地鑒別條件進行匹配,得到匹配結(jié)果;依據(jù)所述匹配結(jié)果確定所述待執(zhí)行程序是否存在被劫持的DLL文件。本發(fā)明實施例能夠更加有效地攔截惡意程序。文檔編號G06F21/56GK102999721SQ201210448648公開日2013年3月27日申請日期2012年11月9日優(yōu)先權(quán)日2012年11月9日發(fā)明者張曉霖,孫曉駿申請人:北京奇虎科技有限公司,奇智軟件(北京)有限公司