專利名稱:一種進(jìn)程行為控制的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)設(shè)備安全的領(lǐng)域,具體涉及一種進(jìn)程行為控制的方法,以及,一種進(jìn)程行為控制的裝置,以及,一種進(jìn)程行為控制的底層驅(qū)動(dòng)系統(tǒng)。
背景技術(shù):
Windows操作系統(tǒng)的廣泛應(yīng)用導(dǎo)致其成為了遭受惡意軟件攻擊最嚴(yán)重的操作系統(tǒng),它的安全性問(wèn)題成為了用戶及計(jì)算機(jī)安全研究人員關(guān)注的焦點(diǎn)。惡意軟件是指在計(jì)算機(jī)系統(tǒng)上執(zhí)行惡意任務(wù)的病毒、蠕蟲和特洛伊木馬。惡意軟件最常用的實(shí)現(xiàn)技術(shù)是鉤子技術(shù),通過(guò)使用鉤子技術(shù),惡意軟件可以改變操作系統(tǒng)正常的執(zhí)行路徑,從而破壞系統(tǒng)或者竊取用戶信息。目前,常用的一種防護(hù)做法是通過(guò)對(duì)在Windows操作系統(tǒng)下的鉤子的檢測(cè)來(lái)實(shí)現(xiàn)對(duì)惡意軟件的防護(hù)設(shè)計(jì)。Windows操作系統(tǒng)下的鉤子通過(guò)調(diào)用回調(diào)函數(shù)來(lái)完成對(duì)系統(tǒng)的回調(diào),因此,攔截對(duì)回調(diào)函數(shù)的調(diào)用就能獲取鉤子的進(jìn)程信息,但是,對(duì)鉤子回調(diào)函數(shù)的調(diào)用的攔截處理不在很容易引起系統(tǒng)的卡死。因此,本領(lǐng)域技術(shù)人員迫切需要解決的技術(shù)問(wèn)題是在攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用時(shí),如何保證系統(tǒng)的穩(wěn)定性。
發(fā)明內(nèi)容
鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的一種進(jìn)程行為控制的方法和相應(yīng)的一種進(jìn)程行為控制的裝置,以及相應(yīng)的一種進(jìn)程行為控制的底層驅(qū)動(dòng)系統(tǒng)。依據(jù)本發(fā)明的一個(gè)方面,提供了一種進(jìn)程行為控制的方法,包括在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián);底層驅(qū)動(dòng)將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層;底層驅(qū)動(dòng)阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為;應(yīng)用層依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將判斷結(jié)果通知底層驅(qū)動(dòng);底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作??蛇x地,所述底層驅(qū)動(dòng)阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的步驟包括應(yīng)用層生成阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息,并發(fā)送至底層驅(qū)動(dòng);底層驅(qū)動(dòng)依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為。可選地,所述底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作的步驟包括
底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;底層驅(qū)動(dòng)根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括底層驅(qū)動(dòng)根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;
底層驅(qū)動(dòng)根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作??蛇x地,所述應(yīng)用層判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果,依據(jù)向用戶顯示與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,接收用戶選擇的阻止或允許該進(jìn)程觸發(fā)行為的信息生成。根據(jù)本發(fā)明的另一方面,提供了一種進(jìn)程行為控制的裝置,包括位于底層驅(qū)動(dòng)的攔截模塊,用于在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián);位于底層驅(qū)動(dòng)的發(fā)送模塊,用于將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層;位于底層驅(qū)動(dòng)的第一執(zhí)行模塊,用于阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為;位于應(yīng)用層的判斷模塊,用于依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將判斷結(jié)果通知底層驅(qū)動(dòng);位于底層驅(qū)動(dòng)的第二執(zhí)行模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作??蛇x地,所述位于底層驅(qū)動(dòng)的第一執(zhí)行模塊包括位于應(yīng)用層的判斷信息生成子模塊,用于生成阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息,并發(fā)送至底層驅(qū)動(dòng);位于底層驅(qū)動(dòng)的第一執(zhí)行子模塊,用于依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為??蛇x地,所述位于底層驅(qū)動(dòng)的第二執(zhí)行模塊包括位于底層驅(qū)動(dòng)的規(guī)則記錄子模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;位于底層驅(qū)動(dòng)的第二執(zhí)行子模塊,用于根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括底層驅(qū)動(dòng)根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;底層驅(qū)動(dòng)根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。根據(jù)本發(fā)明的另一方面,提供了一種進(jìn)程行為控制的底層驅(qū)動(dòng)系統(tǒng),包括攔截模塊,用于在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián);
發(fā)送模塊,用于將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層;第一執(zhí)行模塊,用于阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為;判斷結(jié)果接收模塊,用于接收應(yīng)用層的判斷結(jié)果,所述判斷結(jié)果為應(yīng)用層依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果;第二執(zhí)行模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。可選地,所述第一執(zhí)行模塊包括信息接收子模塊,用于接收應(yīng)用層生成的阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息;第一執(zhí)行子模塊,用于依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為??蛇x地,所述第二執(zhí)行模塊包括規(guī)則記錄子模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;第二執(zhí)行子模塊,用于根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。根據(jù)本發(fā)明的一種進(jìn)程行為控制機(jī)制可以正常攔截由消息鉤子產(chǎn)生的對(duì)回調(diào)函數(shù)的調(diào)用,使應(yīng)用層可以在判斷過(guò)程中使用消息機(jī)制,避免由此帶來(lái)的系統(tǒng)暫時(shí)或永久卡死的情況,通過(guò)對(duì)消息鉤子所引發(fā)的回調(diào)函數(shù)的調(diào)用攔截時(shí)進(jìn)行特殊處理,即在攔截到需要應(yīng)用層處理的消息時(shí),底層驅(qū)動(dòng)直接放行(或阻止)后再通知應(yīng)用層處理,或者,通知應(yīng)用層后應(yīng)用層如果需要用到系統(tǒng)消息機(jī)制,在使用任何消息機(jī)制的調(diào)用之前先行通知允許還是阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為。然后在經(jīng)過(guò)應(yīng)用層充分的自動(dòng)判斷或詢問(wèn)用戶后再再次通知驅(qū)動(dòng)記錄相關(guān)規(guī)則。這樣能保證對(duì)惡意軟件的準(zhǔn)確識(shí)別而系統(tǒng)不出現(xiàn)任何意外情況,從而保證了系統(tǒng)的穩(wěn)定性,以及,用戶設(shè)備運(yùn)行的安全性和穩(wěn)定性。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附 圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)程行為控制的方法實(shí)施例I的步驟流程圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)程行為控制的方法實(shí)施例2的步驟流程圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)程行為控制的裝置實(shí)施例的結(jié)構(gòu)框圖;圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)程行為控制的底層驅(qū)動(dòng)系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)在理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。本發(fā)明實(shí)施例的核心構(gòu)思之一在于,對(duì)消息鉤子所引發(fā)的回調(diào)函數(shù)的調(diào)用攔截時(shí)進(jìn)行特殊處理,即在攔截到需要應(yīng)用層處理的消息時(shí),底層驅(qū)動(dòng)直接放行(或阻止)后再通知應(yīng)用層處理,或者,通知應(yīng)用層后應(yīng)用層如果需要用到系統(tǒng)消息機(jī)制,在使用任何消息機(jī)制的調(diào)用之前先行通知允許還是阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為。然后在經(jīng)過(guò)應(yīng)用層充分的自動(dòng)判斷或詢問(wèn)用戶后再再次通知驅(qū)動(dòng)記錄相關(guān)規(guī)則。這樣可以在判斷過(guò)程中使用消息機(jī)制,避免由此帶來(lái)的系統(tǒng)暫時(shí)或永久卡死。參照?qǐng)D1,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)程行為控制的方法實(shí)施例I的步驟流程圖,具體可以包括以下步驟步驟101 :在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián);在一個(gè)程序空間內(nèi),鉤子到底是怎樣起作用的,這個(gè)要從Windows系統(tǒng)的消息機(jī)制說(shuō)起。Windows是一個(gè)以消息為導(dǎo)向的系統(tǒng),通過(guò)消息機(jī)制來(lái)管理交互,對(duì)于每一個(gè)正在執(zhí)行的Windows應(yīng)用程序,系統(tǒng)為其建立一個(gè)“消息隊(duì)列”,即應(yīng)用程序隊(duì)列,用來(lái)存放該程序可能創(chuàng)建的各種窗口的消息,消息隊(duì)列的特點(diǎn)是先進(jìn)先出,這種機(jī)制可以實(shí)現(xiàn)一種異步的需求響應(yīng)過(guò)程。應(yīng)用程序中含有一段稱作“消息循環(huán)”的代碼,用來(lái)從消息隊(duì)列中檢索這些消息并把它們分發(fā)到相應(yīng)的窗口函數(shù)中。消息循環(huán)目的就是將內(nèi)核層和應(yīng)用層結(jié)合在一起。內(nèi)核層的任何變化會(huì)在某個(gè)單獨(dú)的應(yīng)用層程序反應(yīng)出來(lái),同時(shí)應(yīng)用層的操作也能影響內(nèi)核層。鉤子是Windows的消息處理機(jī)制中提供的一個(gè)監(jiān)視點(diǎn),可以監(jiān)視系統(tǒng)或進(jìn)程中的各種事件消息,截獲發(fā)往目標(biāo)窗口的消息并進(jìn)行處理??梢栽谙到y(tǒng)中安裝自定義的鉤子,監(jiān)視系統(tǒng)中特定事件的發(fā)生,完成特定的功能,比如截獲鍵盤、鼠標(biāo)的輸入,屏幕取詞,日志監(jiān)
視等等。根據(jù)鉤子處理消息的作用范圍不同,Windows所提供的鉤子可以分為兩種類型一是局部鉤子,二是遠(yuǎn)程鉤子。局部鉤子僅能夠監(jiān)控屬于自身的事件,而遠(yuǎn)程鉤子不僅可以監(jiān)控自己進(jìn)程中的事件,還可以用來(lái)鉤掛其它進(jìn)程中發(fā)生的事件。另外,遠(yuǎn)程鉤子也有兩種類型其一是基于線程的,其二是基于系統(tǒng)的?;诰€程的遠(yuǎn)程鉤子是為了捕捉其它進(jìn)程中某一特定線程的事件而設(shè)計(jì)的,而系統(tǒng)范圍的遠(yuǎn)程鉤子將捕捉系統(tǒng)中所有進(jìn)程中發(fā)生的事件消息鉤子。實(shí)際上,所述消息鉤子可以包括Journal Record鉤子,消息鉤子JournalRecord, 用來(lái)記錄發(fā)送給系統(tǒng)消息隊(duì)列的所有消息,只能用作全局鉤子。系統(tǒng)所有的消息鉤子對(duì)應(yīng)用層的回調(diào)都是利用調(diào)用回調(diào)函數(shù)完成的,回調(diào)函數(shù)被調(diào)用時(shí)處于該監(jiān)測(cè)到的鍵盤輸入或按鍵輸入行為的進(jìn)程中。本發(fā)明描述了處理攔截到的消息鉤子產(chǎn)生的對(duì)回調(diào)函數(shù)的調(diào)用的過(guò)程,所述回調(diào)函數(shù)可以包括KeUserModeCalIback函數(shù),或者,比KeUserModeCalIback更底層的其他函數(shù)等,本發(fā)明對(duì)此不作限制。步驟102 :底層驅(qū)動(dòng)將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層;其中,與所述消息鉤子關(guān)聯(lián)的進(jìn)程是指與消息鉤子關(guān)聯(lián)的觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程,所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息包括消息鉤子關(guān)聯(lián)的進(jìn)程的路徑。步驟103 :底層驅(qū)動(dòng)阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為;在Windows操作系統(tǒng)中,消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用由底層驅(qū)動(dòng)攔截,由于底層驅(qū)動(dòng)攔截到消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用后,會(huì)將與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層并等待應(yīng)用層的判斷結(jié)果,底層驅(qū)動(dòng)在等待應(yīng)用層判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的過(guò)程中,如果進(jìn)行判斷的應(yīng)用層線程需要使用Windows操作系統(tǒng)的消息機(jī)制(比如顯示一個(gè)窗口或發(fā)一個(gè)消息給任何窗口),此時(shí),由于消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用阻塞(使其進(jìn)入等待或睡眠狀態(tài)),無(wú)法給操作系統(tǒng)一個(gè)及時(shí)的回調(diào),而系統(tǒng)在沒(méi)有等到回調(diào)前無(wú)法進(jìn)行其他消息的處理,使整個(gè)系統(tǒng)的消息處理阻塞,從而導(dǎo)致系統(tǒng)卡死。為了避免上述情況的發(fā)生,底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用后,可以直接阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為,這樣就不會(huì)因?yàn)殚L(zhǎng)時(shí)間等待應(yīng)用層的判斷結(jié)果而使系統(tǒng)中的其他消息無(wú)法處理。作為本實(shí)施例的一種優(yōu)選示例,底層驅(qū)動(dòng)可以按照預(yù)設(shè)規(guī)則阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為,所述預(yù)設(shè)規(guī)則為全部阻止或者允許所述與消息鉤子關(guān)聯(lián)的進(jìn)程觸發(fā)的行為。步驟104 :應(yīng)用層依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將判斷結(jié)果通知底層驅(qū)動(dòng)。由于在步驟103中,底層驅(qū)動(dòng)已先行阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為,此時(shí),應(yīng)用層因沒(méi)有底層驅(qū)動(dòng)的等待而可以有充分的時(shí)間對(duì)與消息鉤子關(guān)聯(lián)的進(jìn)程的信息進(jìn)行判斷,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為。作為本實(shí)施例的一種優(yōu)選示例,應(yīng)用層判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果,可以依據(jù)向用戶顯示與消息鉤子關(guān)聯(lián)的進(jìn)程的信息(例如,顯示窗口的形式),接收用戶選擇的阻止或允許該進(jìn)程觸發(fā)行為的信息生成;在用戶選擇是阻止該進(jìn)程觸發(fā)的行為的信息,應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果通知底層驅(qū)動(dòng);在用戶選擇是允許該進(jìn)程觸發(fā)的行為的信息,應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果通知底層驅(qū)動(dòng)。步驟105 :底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;·在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟105可以包括如下子步驟子步驟Sll :底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;子步驟S12 :底層驅(qū)動(dòng)根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括底層驅(qū)動(dòng)根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;底層驅(qū)動(dòng)根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。需要說(shuō)明的是,在步驟104中應(yīng)用層經(jīng)過(guò)充分判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為后,應(yīng)用層將判斷結(jié)果發(fā)送至底層驅(qū)動(dòng),底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則,所述相關(guān)規(guī)則一旦被記錄,在所述相應(yīng)進(jìn)程的行為再次被觸發(fā)時(shí),底層驅(qū)動(dòng)可以根據(jù)該相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許操作。例如若相關(guān)規(guī)則為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則,在用戶再鍵入消息時(shí),底層驅(qū)動(dòng)對(duì)該消息進(jìn)程觸發(fā)的行為按照規(guī)則執(zhí)行阻止操作;若相關(guān)規(guī)則為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則,在用戶再鍵入消息時(shí),底層驅(qū)動(dòng)對(duì)該消息進(jìn)程觸發(fā)的行為按照規(guī)則執(zhí)行允許操作。在應(yīng)用層的判斷結(jié)果或用戶判斷結(jié)果改變時(shí),底層驅(qū)動(dòng)根據(jù)判斷結(jié)果再修改相關(guān)規(guī)則。實(shí)際上,在底層驅(qū)動(dòng)記錄相關(guān)規(guī)則前,底層驅(qū)動(dòng)阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為可以根據(jù)具體情況而定,安全性要求高的程序應(yīng)先執(zhí)行阻止操作。參照?qǐng)D2,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)程行為控制的方法實(shí)施例2的步驟流程圖,具體可以包括以下步驟步驟201 :在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián);步驟202 :底層驅(qū)動(dòng)將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層;其中,與消息鉤子關(guān)聯(lián)的進(jìn)程的信息包括消息鉤子關(guān)聯(lián)的進(jìn)程的路徑。
步驟203 :底層驅(qū)動(dòng)阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為;在本發(fā)明的一種優(yōu)選實(shí)施例中,步驟203可以包括如下子步驟子步驟S21 :應(yīng)用層生成阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息,并發(fā)送至底層驅(qū)動(dòng);子步驟S22 :底層驅(qū)動(dòng)依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為。應(yīng)用層接收到底層驅(qū)動(dòng)發(fā)來(lái)的與消息鉤子關(guān)聯(lián)的進(jìn)程的信息后,應(yīng)用層經(jīng)過(guò)判斷發(fā)現(xiàn),需要用到Windows系統(tǒng)消息機(jī)制,在使用任何消息機(jī)制的調(diào)用之前先行通知底層驅(qū)動(dòng)允許或阻止與消息鉤子關(guān)聯(lián)的進(jìn)程觸發(fā)的行為。實(shí)際上,應(yīng)用層在使用任何消息機(jī)制的調(diào)用之前可以按照預(yù)設(shè)規(guī)則先行通知底層驅(qū)動(dòng)允許或阻止與消息鉤子關(guān)聯(lián)的進(jìn)程的觸發(fā)行為,其中,預(yù)設(shè)規(guī)則可以為對(duì)底層驅(qū)動(dòng)發(fā) 來(lái)的與消息鉤子關(guān)聯(lián)的進(jìn)程的行為設(shè)置的全部阻止或者全部允許的規(guī)則。作為本發(fā)明具體應(yīng)用的另一種示例,應(yīng)用層在使用任何消息機(jī)制的調(diào)用之前可以按照預(yù)設(shè)的黑白名單規(guī)則先行通知底層驅(qū)動(dòng)允許或阻止與消息鉤子關(guān)聯(lián)的進(jìn)程的觸發(fā)行為,若與消息鉤子關(guān)聯(lián)的進(jìn)程的信息屬于預(yù)設(shè)的白名單,應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為??梢岳斫?,上述應(yīng)用層在使用任何消息機(jī)制的調(diào)用之前先行通知底層驅(qū)動(dòng)允許或阻止與消息鉤子關(guān)聯(lián)的進(jìn)程的觸發(fā)行為的判斷方式僅僅用作示例,本領(lǐng)域技術(shù)人員依據(jù)實(shí)際情況采用其它判斷方式均是可行的,本發(fā)明對(duì)此不作限制。步驟204 :應(yīng)用層依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將判斷結(jié)果通知底層驅(qū)動(dòng)。步驟205 :底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟205可以包括如下子步驟子步驟S31 :底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;子步驟S32 :底層驅(qū)動(dòng)根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括底層驅(qū)動(dòng)根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;底層驅(qū)動(dòng)根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。本實(shí)施例與圖I所示實(shí)施例相比,兩者不同之處在于,圖I所示實(shí)施例是底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用后,直接阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為,而本實(shí)施例是底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用后,把信息傳遞給應(yīng)用層,讓應(yīng)用層先做判斷,然后底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許操作。本領(lǐng)域技術(shù)人員依據(jù)實(shí)際情況采用上述任一中方式或者其它判斷方式均是可行的,本發(fā)明對(duì)此不作限制。對(duì)于圖2所示的方法實(shí)施例而言,由于其與前述方法實(shí)施例基本相似,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,以下通過(guò)一個(gè)具體應(yīng)用的實(shí)例來(lái)對(duì)本發(fā)明進(jìn)行說(shuō)明??梢蛇M(jìn)程通過(guò)注冊(cè)Journal Record消息鉤子來(lái)監(jiān)控按鍵輸入,在用戶在一個(gè)受保護(hù)進(jìn)程中通過(guò)鍵盤輸入的時(shí)候,底層驅(qū)動(dòng)將會(huì)攔截到系統(tǒng)對(duì)該鉤子回調(diào)函數(shù)KeUserModeCallback的調(diào)用,并將相關(guān)信息(可疑進(jìn)程的路徑,在前輸入窗口所屬進(jìn)程等) 傳送給應(yīng)用層,等待應(yīng)用層判斷是否允許與消息鉤子JournalRecord關(guān)聯(lián)的進(jìn)程的執(zhí)行。應(yīng)用層使用對(duì)可疑程序進(jìn)行檢查,發(fā)現(xiàn)可疑程序需要通過(guò)創(chuàng)建窗口詢問(wèn)用戶,這個(gè)過(guò)程需要用到Windows消息機(jī)制,因此下發(fā)阻止與消息鉤子JournalRecord關(guān)聯(lián)的進(jìn)程觸發(fā)的行為的判斷結(jié)果通知底層驅(qū)動(dòng),底層驅(qū)動(dòng)中等待中的線程收到通知后阻止消息鉤子JournalRecord對(duì)回調(diào)函數(shù)KeUserModeCalIback的調(diào)用,記錄到相關(guān)規(guī)則中后從KeUserModeCalIback回調(diào)函數(shù)中返回。然后應(yīng)用層展示窗口給用戶,期間用戶又有按鍵輸入,該可疑程序的對(duì)鍵盤的監(jiān)控都被底層驅(qū)動(dòng)根據(jù)規(guī)則自動(dòng)執(zhí)行阻止操作。最后用戶選擇允許此可疑程序監(jiān)控鍵盤輸入,于是應(yīng)用層通知底層驅(qū)動(dòng)允許此可疑程序?qū)Π存I的監(jiān)控。底層驅(qū)動(dòng)收到應(yīng)用層的通知后,修改相關(guān)規(guī)則,以后即可根據(jù)規(guī)則自動(dòng)執(zhí)行對(duì)該進(jìn)程的允許操作。需要說(shuō)明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。參照?qǐng)D3,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)程行為控制的裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括以下模塊位于底層驅(qū)動(dòng)的攔截模塊301,用于在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián);位于底層驅(qū)動(dòng)的發(fā)送模塊302,用于將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層;其中,與消息鉤子關(guān)聯(lián)的進(jìn)程的信息包括消息鉤子關(guān)聯(lián)的進(jìn)程的路徑。位于底層驅(qū)動(dòng)的第一執(zhí)行模塊303,用于阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為;底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用后,可以直接阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為,這樣就不用因長(zhǎng)時(shí)間等待應(yīng)用層的判斷結(jié)果而使系統(tǒng)中的其他消息無(wú)法處理。在本發(fā)明的另一個(gè)優(yōu)選實(shí)施例中,位于底層驅(qū)動(dòng)的第一執(zhí)行模塊303還可以包括如下子模塊位于應(yīng)用層的判斷信息生成子模塊,用于生成阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息,并發(fā)送至底層驅(qū)動(dòng);位于底層驅(qū)動(dòng)的第一執(zhí)行子模塊,用于依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為。位于應(yīng)用層的判斷模塊304,用于依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將判斷結(jié)果通知底層驅(qū)動(dòng);在本發(fā)明具體實(shí)現(xiàn)的一種示例,所述應(yīng)用層判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果,依據(jù)向用戶顯示與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,接收用戶選擇的阻止或允許該進(jìn)程觸發(fā)行為的信息生成。位于底層驅(qū)動(dòng)的第二執(zhí)行模塊305,用于根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作; 在本發(fā)明的一種優(yōu)選實(shí)施例中,所述位于底層驅(qū)動(dòng)的第二執(zhí)行模塊205可以包括如下子模塊位于底層驅(qū)動(dòng)的規(guī)則記錄子模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;位于底層驅(qū)動(dòng)的第二執(zhí)行子模塊,用于根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括底層驅(qū)動(dòng)根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;底層驅(qū)動(dòng)根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。對(duì)于圖3所示的裝置實(shí)施例而言,由于其與前述方法實(shí)施例基本相似,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。參照?qǐng)D4,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)程行為控制的底層驅(qū)動(dòng)系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖,具體可以包括以下模塊攔截模塊401,用于在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián);發(fā)送模塊402,用于將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層;第一執(zhí)行模塊403,用于阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為;底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用后,可以直接阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為,這樣就不用因長(zhǎng)時(shí)間等待應(yīng)用層的判斷結(jié)果而使系統(tǒng)中的其他消息無(wú)法處理。在本發(fā)明的另一個(gè)優(yōu)選實(shí)施例中,第一執(zhí)行模塊403還可以包括如下子模塊信息接收子模塊,用于接收應(yīng)用層生成的阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息;第一執(zhí)行子模塊,用于依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為。
判斷結(jié)果接收模塊404,用于接收應(yīng)用層的判斷結(jié)果,所述判斷結(jié)果為應(yīng)用層依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)
果O在本發(fā)明具體實(shí)現(xiàn)的一種示例,所述應(yīng)用層判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果,依據(jù)向用戶顯示與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,接收用戶選擇的阻止或允許該進(jìn)程觸發(fā)行為的信息生成。第二執(zhí)行模塊405,用于根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第二執(zhí)行模塊405可以包括如下子模塊
規(guī)則記錄子模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則;第二執(zhí)行子模塊,用于根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作;記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。對(duì)于圖4所示的底層驅(qū)動(dòng)系統(tǒng)實(shí)施例而言,由于其與前述方法實(shí)施例基本相似,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)在明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。類似地,應(yīng)在理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)在理解,可以在實(shí)踐中使用 微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的一種進(jìn)程行為控制的底層驅(qū)動(dòng)系統(tǒng)和一種進(jìn)程行為控制的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適在編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。以上對(duì)本發(fā)明所提供的一種攔截函數(shù)調(diào)用的方法,以及,一種攔截函數(shù)調(diào)用的裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種進(jìn)程行為控制的方法,包括 在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián); 底層驅(qū)動(dòng)將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層; 底層驅(qū)動(dòng)阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為; 應(yīng)用層依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將判斷結(jié)果通知底層驅(qū)動(dòng); 底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。
2.如權(quán)利要求I所述的方法,所述底層驅(qū)動(dòng)阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的步驟包括 應(yīng)用層生成阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息,并發(fā)送至底層驅(qū)動(dòng); 底層驅(qū)動(dòng)依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為。
3.如權(quán)利要求I所述的方法,所述底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作的步驟包括 底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括 在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則; 在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則; 底層驅(qū)動(dòng)根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括 底層驅(qū)動(dòng)根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作; 底層驅(qū)動(dòng)根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。
4.如權(quán)利要求I或2或3所述的方法,所述應(yīng)用層判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果,依據(jù)向用戶顯示與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,接收用戶選擇的阻止或允許該進(jìn)程觸發(fā)行為的信息生成。
5.一種進(jìn)程行為控制的裝置,包括 位于底層驅(qū)動(dòng)的攔截模塊,用于在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián); 位于底層驅(qū)動(dòng)的發(fā)送模塊,用于將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層; 位于底層驅(qū)動(dòng)的第一執(zhí)行模塊,用于阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為; 位于應(yīng)用層的判斷模塊,用于依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將判斷結(jié)果通知底層驅(qū)動(dòng); 位于底層驅(qū)動(dòng)的第二執(zhí)行模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。
6.如權(quán)利要求5所述的裝置,所述位于底層驅(qū)動(dòng)的第一執(zhí)行模塊包括 位于應(yīng)用層的判斷信息生成子模塊,用于生成阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息,并發(fā)送至底層驅(qū)動(dòng); 位于底層驅(qū)動(dòng)的第一執(zhí)行子模塊,用于依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為。
7.如權(quán)利要求5所述的裝置,所述位于底層驅(qū)動(dòng)的第二執(zhí)行模塊包括 位于底層驅(qū)動(dòng)的規(guī)則記錄子模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括 在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則; 在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則; 位于底層驅(qū)動(dòng)的第二執(zhí)行子模塊,用于根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括 底層驅(qū)動(dòng)根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作; 底層驅(qū)動(dòng)根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。
8.—種進(jìn)程行為控制的底層驅(qū)動(dòng)系統(tǒng),包括 攔截模塊,用于在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián); 發(fā)送模塊,用于將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層; 第一執(zhí)行模塊,用于阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為; 判斷結(jié)果接收模塊,用于接收應(yīng)用層的判斷結(jié)果,所述判斷結(jié)果為應(yīng)用層依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的判斷結(jié)果; 第二執(zhí)行模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。
9.如權(quán)利要求8所述的底層驅(qū)動(dòng)系統(tǒng),所述第一執(zhí)行模塊包括 信息接收子模塊,用于接收應(yīng)用層生成的阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為的信息; 第一執(zhí)行子模塊,用于依據(jù)所述信息阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為。
10.如權(quán)利要求8所述的底層驅(qū)動(dòng)系統(tǒng),所述第二執(zhí)行模塊包括 規(guī)則記錄子模塊,用于根據(jù)應(yīng)用層的判斷結(jié)果記錄相關(guān)規(guī)則,所述相關(guān)規(guī)則包括 在應(yīng)用層判斷為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則; 在應(yīng)用層判斷為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為時(shí),底層驅(qū)動(dòng)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則; 第二執(zhí)行子模塊,用于根據(jù)所述相關(guān)規(guī)則執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作,所述操作包括 根據(jù)記錄為阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行阻止對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作; 根據(jù)記錄為允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的規(guī)則執(zhí)行允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。
全文摘要
本發(fā)明公開了一種進(jìn)程行為控制的方法和裝置,其中所述方法包括在檢測(cè)到鍵盤輸入或按鍵輸入行為時(shí),底層驅(qū)動(dòng)攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用;其中,所述消息鉤子與觸發(fā)當(dāng)前鍵盤輸入或按鍵輸入行為的進(jìn)程關(guān)聯(lián);底層驅(qū)動(dòng)將所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息發(fā)送至應(yīng)用層;底層驅(qū)動(dòng)阻止或允許所述與消息鉤子關(guān)聯(lián)進(jìn)程觸發(fā)的行為;應(yīng)用層依據(jù)所述與消息鉤子關(guān)聯(lián)的進(jìn)程的信息,判斷是否阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為,并將判斷結(jié)果通知底層驅(qū)動(dòng);底層驅(qū)動(dòng)根據(jù)應(yīng)用層的判斷結(jié)果執(zhí)行相應(yīng)的阻止或允許對(duì)應(yīng)進(jìn)程觸發(fā)的行為的操作。本發(fā)明可以在攔截消息鉤子對(duì)回調(diào)函數(shù)的調(diào)用時(shí),保證系統(tǒng)的穩(wěn)定性。
文檔編號(hào)G06F9/46GK102890641SQ20121031697
公開日2013年1月23日 申請(qǐng)日期2012年8月30日 優(yōu)先權(quán)日2012年8月30日
發(fā)明者董杰, 張曉霖 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司