亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種攔截應(yīng)用程序行為的方法及終端的制作方法

文檔序號:10594483閱讀:342來源:國知局
一種攔截應(yīng)用程序行為的方法及終端的制作方法
【專利摘要】本發(fā)明實施例公開了一種攔截應(yīng)用程序行為的方法,包括:監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息;當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序;當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,以攔截所述應(yīng)用程序通過所述消息進行創(chuàng)建服務(wù)。本發(fā)明實施例還公開了一種終端。采用本發(fā)明,降低終端攔截惡意程序的惡意行為的處理壓力,提高終端的攔截準確性。
【專利說明】
一種攔截應(yīng)用程序行為的方法及終端
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種攔截應(yīng)用程序行為的方法及終端。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)發(fā)展,病毒,木馬等惡意軟件技術(shù)層出不窮。惡意程序可利用特殊惡意代碼進行惡意行為攻擊服務(wù)系統(tǒng)。目前大多惡意程序多是在用戶未知的情況下可進行創(chuàng)建服務(wù),或者刪除服務(wù)等行為,使得惡意程序可通過創(chuàng)建的服務(wù)進行盜用個人信息,或者惡意程序可通過刪除服務(wù)進行刪除殺毒應(yīng)用程序,這均使得用戶的個人隱私信息可遭泄露,并可導致服務(wù)系統(tǒng)崩潰,從而給用戶造成財產(chǎn)損失。
[0003]為了避免惡意程序進行惡意創(chuàng)建服務(wù)或惡意刪除服務(wù)的惡意行為,目前終端可對服務(wù)注冊表進行監(jiān)測,當監(jiān)測到服務(wù)注冊表進行創(chuàng)建或刪除時,終端可對創(chuàng)建或刪除服務(wù)的注冊表的行為進行判斷是否為應(yīng)用程序進行創(chuàng)建服務(wù)或者刪除服務(wù),當確定為創(chuàng)建服務(wù)或者刪除服務(wù)的行為時終端將對發(fā)起創(chuàng)建服務(wù)或刪除服務(wù)的相關(guān)文件進行安全檢測,并當檢測為危險時進行攔截應(yīng)用程序進行修改注冊表。但是,由于終端中的各種應(yīng)用程序并不僅僅是在創(chuàng)建服務(wù)時才進行創(chuàng)建服務(wù)注冊表,在刪除服務(wù)時才進行刪除服務(wù)注冊表,其他操作行為也不斷在創(chuàng)建或刪除注冊表,這使得終端需對大量的創(chuàng)建或刪除服務(wù)注冊表的行為進行判斷是否為創(chuàng)建服務(wù)或刪除服務(wù),這使得終端的處理壓力過重,并且終端判斷準確度有限,從而導致終端無法準確攔截惡意程序進行的惡意創(chuàng)建服務(wù)或惡意刪除服務(wù)的行為。

【發(fā)明內(nèi)容】

[0004]本發(fā)明實施例所要解決的技術(shù)問題在于,提供一種攔截應(yīng)用程序行為的方法及終端??山档徒K端攔截惡意程序的惡意行為的處理壓力。
[0005]為了解決上述技術(shù)問題,本發(fā)明實施例提供了一種攔截應(yīng)用程序行為的方法,包括:
[0006]監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息;
[0007]當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序;
[0008]當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,以對所述應(yīng)用程序通過所述消息進行創(chuàng)建服務(wù)的行為進行攔截。
[0009]其中,所述判斷所述消息是否為用于創(chuàng)建服務(wù)的消息之后還包括:
[0010]當確定所述消息不是用于創(chuàng)建服務(wù)的消息時,判斷所述消息是否為用于刪除服務(wù)的消息;
[0011]當確定所述消息為用于刪除服務(wù)的消息時,執(zhí)行對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序步驟。
[0012]其中,所述判斷所述消息是否為用于創(chuàng)建服務(wù)的消息包括:
[0013]檢測所述消息是否攜帶創(chuàng)建服務(wù)標識符;
[0014]當確定所述消息攜帶所述創(chuàng)建服務(wù)標識符,確定所述消息為用于創(chuàng)建服務(wù)的消息;
[0015]所述判斷所述消息是否為用于刪除服務(wù)的消息包括:
[0016]檢測所述消息是否攜帶刪除服務(wù)標識符;
[0017]當確定所述消息攜帶所述刪除服務(wù)標識符時,確定所述消息為用于刪除服務(wù)的消息。
[0018]其中,所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序之前包括:
[0019]當確定所述消息為用于創(chuàng)建服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件;
[0020]對所述啟動文件進行安全檢測,判斷所述啟動文件是否為危險文件;
[0021]當確定所述啟動文件不是危險文件時,執(zhí)行對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序步驟;
[0022]當確定所述啟動文件是危險文件時,執(zhí)行對所述消息進行攔截步驟。
[0023]其中,所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序之前包括:
[0024]當確定所述消息為用于刪除服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要進行刪除的待刪除服務(wù)文件;
[0025]判斷所述待刪除服務(wù)文件是否屬于預(yù)置文件;
[0026]當確定所述待刪除服務(wù)文件不屬于所述預(yù)置文件時,執(zhí)行所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序步驟;
[0027]當確定所述待刪除服務(wù)文件屬于所述預(yù)置文件時,執(zhí)行對所述消息進行攔截步驟。
[0028]其中,所述消息攜帶啟動文件路徑;
[0029]所述根據(jù)所述消息確定所述應(yīng)用程序所要創(chuàng)建的啟動文件包括:
[0030]根據(jù)所述消息攜帶的服務(wù)啟動文件路徑確定所述啟動文件。
[0031 ]其中,所述消息攜帶待刪除服務(wù)文件路徑;
[0032]所述根據(jù)所述消息確定所述應(yīng)用程序所要進行刪除的待刪除服務(wù)文件包括:
[0033]根據(jù)所述消息攜帶的待刪除服務(wù)文件確定所述待刪除服務(wù)文件。
[0034]其中,所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序之前包括:
[0035]獲取所述消息的發(fā)送進程路徑;
[0036]根據(jù)所述消息的發(fā)送進程路徑確定所述應(yīng)用程序。
[0037]相應(yīng)地,本發(fā)明實施例還提供了一種終端,所述終端包括:
[0038]第一判斷單元,用于監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息;
[0039]第一安全檢測單元,用于當所述第一判斷單元監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序;
[0040]攔截單元,用于當所述第一安全檢測單元確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,以對所述應(yīng)用程序通過所述消息進行創(chuàng)建服務(wù)的行為進行攔截。
[0041 ] 其中,所述終端還包括:
[0042]第二判斷單元,用于當確定所述消息不是用于創(chuàng)建服務(wù)的消息時,判斷所述消息是否為用于刪除服務(wù)的消息;
[0043]當所述第二判斷單元確定所述消息為用于刪除服務(wù)的消息時,所述第二判斷單元通知所述第一安全檢測單元對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序。
[0044]其中,所述第一判斷單元包括:
[0045]第一檢測子單元,用于檢測所述消息是否攜帶創(chuàng)建服務(wù)標識符;
[0046]第一確定子單元,用于當所述第一檢測子單元確定所述消息攜帶所述創(chuàng)建服務(wù)標識符,確定所述消息為用于創(chuàng)建服務(wù)的消息;
[0047]所述第二判斷單元包括:
[0048]第二檢測子單元,用于檢測所述消息是否攜帶刪除服務(wù)標識符;
[0049]第二確定子單元,用于當所述第二檢測子單元確定所述消息攜帶所述刪除服務(wù)標識符時,確定所述消息為用于刪除服務(wù)的消息。
[0050]其中,所述終端還包括:
[0051]第一確定單元,用于當所述第一判斷單元確定所述消息為用于創(chuàng)建服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件;
[0052]第二安全檢測單元,用于對所述啟動文件進行安全檢測,判斷所述啟動文件是否為危險文件;
[0053]當所述第二安全檢測單元確定所述啟動文件不是危險文件時,通知所述第一安全檢測單元對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序;
[0054]當所述第二安全檢測單元確定所述啟動文件是危險文件時,通知所述攔單元對所述消息進行攔截。
[0055]其中,所述終端還包括:
[0056]第二確定單元,用于當所述第二判斷單元確定所述消息為用于刪除服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要進行刪除的待刪除服務(wù)文件;
[0057]第三判斷單元,用于判斷所述待刪除服務(wù)文件是否屬于預(yù)置文件;
[0058]當所述第三判斷單元確定所述待刪除服務(wù)文件不屬于所述預(yù)置文件時,通知所述第一安全檢測單元所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序;
[0059]當所述第三判斷單元確定所述待刪除服務(wù)文件屬于所述預(yù)置文件時,通知所述攔截單元對所述消息進行攔截。
[0060]其中,所述消息攜帶啟動文件路徑;
[0061 ]所述第一確定單元具體用于:
[0062]根據(jù)所述消息攜帶的服務(wù)啟動文件路徑確定所述啟動文件。
[0063]其中,所述消息攜帶待刪除服務(wù)文件路徑;
[0064]所述第二確定單元具體用于:
[0065]根據(jù)所述消息攜帶的待刪除服務(wù)文件確定所述待刪除服務(wù)文件。
[0066]其中,所述終端還包括:
[0067]獲取單元,用于獲取所述消息的發(fā)送進程路徑;
[0068]第三確定單元,用于根據(jù)所述消息的發(fā)送進程路徑確定所述應(yīng)用程序。
[0069]實施本發(fā)明實施例,具有如下有益效果:
[0070]在本發(fā)明實施例中,終端監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息,當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,這使得終端僅通過對消息的攔截即能實現(xiàn)對惡意程序惡意創(chuàng)建服務(wù)的行為進行攔截,從而簡便終端的攔截操作,降低終端攔截惡意程序的惡意行為的處理壓力,節(jié)省終端的運行資源,并提高終端的攔截準確性,從而提升終端的自身安全。
【附圖說明】
[0071]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0072]圖1是本發(fā)明實施例提供的一種攔截應(yīng)用程序行為的方法的第一實施例流程示意圖;
[0073]圖2是本發(fā)明實施例提供的一種攔截應(yīng)用程序行為的方法的第二實施例流程示意圖;
[0074]圖3是本發(fā)明實施例提供的一種攔截應(yīng)用程序行為的方法的第三實施例流程示意圖;
[0075]圖4是本發(fā)明實施例提供的一種終端的第一實施例結(jié)構(gòu)圖;
[0076]圖5是本發(fā)明實施例提供的一種終端的第二實施例結(jié)構(gòu)圖;
[0077]圖6是本發(fā)明實施例提供的一種終端的第三實施例結(jié)構(gòu)圖。
【具體實施方式】
[0078]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0079]本發(fā)明實施例中的執(zhí)行主體可以為終端,所描述的終端可包括:電腦、平板電腦、筆記本等智能終端,上述終端僅是舉例,而非窮舉,包含但不限于上述終端。
[0080]參見圖1,是本發(fā)明實施例提供的一種攔截應(yīng)用程序行為的方法第一實施例流程示意圖。本發(fā)明實施例的一種攔截應(yīng)用程序行為的方法包括如下步驟:
[0081]S100,監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息。
[0082]在本發(fā)明實施例中,終端上運行的系統(tǒng)可以為Windows系統(tǒng),Windows系統(tǒng)下可包括支持的多個子系統(tǒng),如進程管理子系統(tǒng),內(nèi)存管理子系統(tǒng),1管理子系統(tǒng)和服務(wù)管理子系統(tǒng)等,其中,進程管理子系統(tǒng)用于管理終端的進程,內(nèi)存管理子系統(tǒng)用于管理終端的內(nèi)存,1管理子系統(tǒng)用于管理終端的10,服務(wù)管理子系統(tǒng)用于管理終端的服務(wù)。在本發(fā)明實施例中,子系統(tǒng)可以為服務(wù)管理子系統(tǒng),服務(wù)管理子系統(tǒng)可統(tǒng)一管理注冊表中的服務(wù)信息數(shù)據(jù)。其中,當終端的應(yīng)用程序需進行更改終端的服務(wù)時,如創(chuàng)建、修改或刪除服務(wù)時,應(yīng)用程序可通過LPC(local process call,本地過程調(diào)用)向服務(wù)管理子系統(tǒng)發(fā)送的消息,如當應(yīng)用程序需進行創(chuàng)建服務(wù)時,應(yīng)用程序可通過LPC向服務(wù)管理子系統(tǒng)發(fā)送用于創(chuàng)建服務(wù)的消息,以使子系統(tǒng)響應(yīng)用于創(chuàng)建服務(wù)的消息進行創(chuàng)建服務(wù),如當應(yīng)用程序需進行刪除服務(wù)時,應(yīng)用程序可通過LPC向服務(wù)管理子系統(tǒng)發(fā)送用于刪除服務(wù)的消息,以使子系統(tǒng)響應(yīng)用于刪除服務(wù)的消息進行刪除服務(wù),其中,消息為服務(wù)的相關(guān)消息。
[0083]在本發(fā)明實施例中,終端可監(jiān)控終端中的應(yīng)用程序通過LPC向服務(wù)管理子系統(tǒng)發(fā)送的消息,判斷消息是否為用于創(chuàng)建服務(wù)的消息,其中,終端可對通過LPC向子系統(tǒng)發(fā)送的消息進行逐個檢測,檢測消息是否攜帶創(chuàng)建服務(wù)標識符。當檢測到消息攜帶創(chuàng)建服務(wù)標識符時,終端可確定消息為用于創(chuàng)建服務(wù)的消息。
[0084]在具體實施中,當應(yīng)用程序需通過LPC向服務(wù)管理子系統(tǒng)發(fā)送消息時,應(yīng)用程序調(diào)用內(nèi)核層NtRequestWaitReplyPort函數(shù)使用LPC向服務(wù)管理子系統(tǒng)發(fā)送的消息。因此,終端可預(yù)置一個鉤子函數(shù) NewNtRequestWaitRep IyPort 函數(shù)替換原始 NtRequestWaitRep IyPort函數(shù)對應(yīng)用程序通過LPC向子系統(tǒng)發(fā)送的消息進行監(jiān)測。具體的,可在系統(tǒng)的SSDT(SyStemServices Descriptor Table,系統(tǒng)服務(wù)描述符表)表中找到NtRequestWaitReplyPort函數(shù),保存 NtRequestWaitRep IyPort 函數(shù)地址,并定義 NewNtRequestWaitRep IyPort 函數(shù)替換原始NtRequestWaitReplyPort函數(shù)地址,當應(yīng)用程序調(diào)用NtRequestWaitReplyPort函數(shù)使用L P C向服務(wù)管理子系統(tǒng)發(fā)送的消息時,則實際上應(yīng)用程序是調(diào)用NewNtRequestWaitReplyPort函數(shù)使用LPC向服務(wù)管理子系統(tǒng)發(fā)送的消息。其中,在鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)中,第一個參數(shù)是端口句柄,即為發(fā)送目標的端口句柄。當應(yīng)用程序調(diào)用鉤子函數(shù)NewNtRequestWaitReplyPor函數(shù)t進行發(fā)送消息時,終端可獲取鉤子函數(shù)的第一個參數(shù)端口句柄,通過內(nèi)核函數(shù)ObRef erenceOb jectByHandle函數(shù)將端口句柄進行轉(zhuǎn)換為發(fā)送端口的結(jié)構(gòu)指針,并通過內(nèi)核函數(shù)ObReferenceObjectByName函數(shù)將發(fā)送端口的結(jié)構(gòu)指針轉(zhuǎn)換為發(fā)送端口的名稱,判斷發(fā)送端口的名稱是否匹配“\\RPCControl\\ntsvcs”端口,當判斷匹配時,說明應(yīng)用程序往名為ntsvcs端口發(fā)送消息。當終端確認應(yīng)用程序往名為ntsvcs端口發(fā)送的消息時,終端可根據(jù)消息控制服務(wù)管理子系統(tǒng)進行服務(wù)管理。因此,當終端通過鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)判斷應(yīng)用程序往名為ntsvcs端口發(fā)送消息時,終端可確定該消息為服務(wù)的相關(guān)消息,如創(chuàng)建服務(wù)消息、刪除服務(wù)消息或打開服務(wù)消息等消息。
[0085]進一步的,在具體實施中,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)的第二個參數(shù)為發(fā)送的消息數(shù)據(jù),消息數(shù)據(jù)上攜帶標識符,該標識符為int類型的標識符,該標識符可包括創(chuàng)建服務(wù)標識符、刪除服務(wù)標識符和打開服務(wù)標識符,具體的,標識符的具體位置可在XP系統(tǒng)中的結(jié)構(gòu)指針+0x2C位置上,當標識符的標識值為0x18,則標識符可為創(chuàng)建服務(wù)標識符,當標識符的標識值為OxlC,則標識符可為打開服務(wù)標識符,當標識符的標識值為0x02,則標識符可為刪除服務(wù)標識符,其中,標識符用于標識對服務(wù)的具體操作動作,如當標識符為創(chuàng)建服務(wù)標識符時,則為應(yīng)用程序通知子系統(tǒng)進行創(chuàng)建服務(wù)。終端可通過鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)讀取標識符,判斷標識值是否為0x18,當判斷標識符的標識值為0x18時,確定消息攜帶創(chuàng)建服務(wù)標識符,可判斷消息為用于創(chuàng)建服務(wù)的消息。
[0086]SlOl,當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序。
[0087]在本發(fā)明實施例中,當監(jiān)控到應(yīng)用程序通過LPC向子系統(tǒng)發(fā)送的消息為用于創(chuàng)建服務(wù)的消息時,終端可掃描發(fā)送消息的應(yīng)用程序,對應(yīng)用程序進行安全檢測,判斷應(yīng)用程序是否為惡意程序,其中,終端可調(diào)用安全殺毒應(yīng)用程序?qū)Πl(fā)送消息的應(yīng)用程序進行安全檢測,判斷是否為惡意程序,其中,安全殺毒應(yīng)用程序在具體的應(yīng)用程序中可如毒霸應(yīng)用程序,360安全衛(wèi)士等安全應(yīng)用程序。當安全殺毒應(yīng)用程序判斷其為危險文件或為未知文件時,則終端可確定應(yīng)用程序為惡意程序,當安全殺毒應(yīng)用程序判斷其安全文件時,終端可確定應(yīng)用程序不是惡意程序。
[0088]在本發(fā)明實施例中,終端可獲取消息的發(fā)送進程路徑,通過消息的發(fā)送進程路徑確定應(yīng)用程序,從而終端調(diào)用安全殺毒應(yīng)用程序?qū)ζ溥M行安全檢測。在具體應(yīng)用中,可以是,鉤子函數(shù) NewNtRequestWai tReplyPort 函數(shù)調(diào)用內(nèi)核函數(shù)PsGetCurrentProcessId函數(shù)和ZwQuery Informat1nProcess函數(shù)獲取當前監(jiān)測的消息的發(fā)送進程路徑,根據(jù)發(fā)送進程路徑確定應(yīng)用程序,并調(diào)用上層文件查殺系統(tǒng)進行判斷應(yīng)用程序的狀態(tài),如果狀態(tài)是灰,紅(灰代表未知文件,紅代表危險文件)時,且即為惡意程序。
[0089]S102,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截。
[0090]在本發(fā)明實施例中,當終端確定應(yīng)用程序為惡意程序,終端可對消息進行攔截,如刪掉消息,或者鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)退出,不執(zhí)行原始NtRequestWai tReplyPort函數(shù),惡意程序創(chuàng)建服務(wù)就會失敗,從而實現(xiàn)對應(yīng)用程序通過消息進行創(chuàng)建服務(wù)的行為進行攔截。當終端確定應(yīng)用程序不是惡意程序時,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)退出,并調(diào)用NtRequestWaitReplyPort函數(shù)進行處理應(yīng)用程序發(fā)送的消息。
[0091]在本發(fā)明實施例中,終端監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息,當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,這使得終端僅通過對消息的攔截即能實現(xiàn)對惡意程序惡意創(chuàng)建服務(wù)的行為進行攔截,從而簡便終端的攔截操作,降低終端攔截惡意程序的惡意行為的處理壓力,節(jié)省終端的運行資源,并提高終端的攔截準確性,從而提升終端的自身安全。
[0092]參見圖2,是本發(fā)明實施例提供的一種攔截應(yīng)用程序行為的方法第二實施例流程示意圖。本發(fā)明實施例的一種攔截應(yīng)用程序行為的方法包括如下步驟:
[0093]S200,監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息。
[0094]S201,當確定所述消息為用于創(chuàng)建服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件。
[0095]在本發(fā)明實施例中,用于創(chuàng)建服務(wù)的消息可攜帶應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件的啟動路徑,終端可根據(jù)消息所攜帶的啟動路徑確定應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件。
[0096]在具體應(yīng)用中,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)的第二個參數(shù)中的PP0RT_MESSAGE結(jié)構(gòu)類型指針+0x38的位置保存一個PSC_RPC_STRINGA結(jié)構(gòu)指針,此結(jié)構(gòu)指針保存所創(chuàng)建的服務(wù)啟動文件的相關(guān)信息,終端可解析此結(jié)構(gòu)指針,獲取到需創(chuàng)建的服務(wù)的啟動文件的啟動路徑。從而終端可根據(jù)解析到的啟動路徑確定應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件。
[0097]S202,對所述啟動文件進行安全檢測,判斷所述啟動文件是否為危險文件。
[0098]在本發(fā)明實施例中,當終端確定所要創(chuàng)建的服務(wù)的啟動文件時,終端可調(diào)用安全殺毒應(yīng)用程序?qū)游募M行安全檢測,判斷是否為危險文件,其中,安全殺毒應(yīng)用程序在具體的應(yīng)用程序中可如毒霸應(yīng)用程序,360安全衛(wèi)士等安全應(yīng)用程序。當安全殺毒應(yīng)用程序判斷其為危險文件或為未知文件時,則終端可確定啟動文件為危險文件,當安全殺毒應(yīng)用程序判斷其安全文件時,終端可確定啟動文件為安全文件。
[0099]在具體實施中,當終端確定所要創(chuàng)建的服務(wù)的啟動文件時,終端調(diào)用上層文件查殺系統(tǒng)進行判斷應(yīng)用程序的狀態(tài),如果狀態(tài)是灰,紅(灰代表未知文件,紅代表危險文件)時,且即為危險文件。
[0100]S203,當確定所述啟動文件是危險文件時,對所述消息進行攔截。
[0101]在本發(fā)明實施例中,當終端確定啟動文件為危險文件時,終端可對消息進行攔截,如刪掉消息,或者鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)退出,不執(zhí)行原始NtRequestWai tReplyPort函數(shù),惡意程序創(chuàng)建服務(wù)就會失敗。當終端確定應(yīng)用程序為安全文件時,執(zhí)行步驟S204。
[0102]S204,當確定所述啟動文件不是危險文件時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序。當確定所述應(yīng)用程序為惡意程序時,執(zhí)行所述步驟S203對所述消息進行攔截。
[0103]其中,步驟S200、步驟S203和步驟S204的【具體實施方式】還可參見上述實施例中步驟S100、步驟SlOl和步驟S102的【具體實施方式】,在此不再進行贅述。
[0104]在本發(fā)明實施例中,終端監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息,當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,這使得終端僅通過對消息的攔截即能實現(xiàn)對惡意程序惡意創(chuàng)建服務(wù)的行為進行攔截,從而簡便終端的攔截操作,降低終端攔截惡意程序的惡意行為的處理壓力,節(jié)省終端的運行資源,并提高終端的攔截準確性,從而提升終端的自身安全。
[0105]參見圖3,是本發(fā)明實施例提供的一種攔截應(yīng)用程序行為的方法第三實施例流程示意圖。本發(fā)明實施例的一種攔截應(yīng)用程序行為的方法包括如下步驟:
[0106]300,監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息。
[0107]S301,當確定所述消息不是用于創(chuàng)建服務(wù)的消息時,判斷所述消息是否為用于刪除服務(wù)的消息。
[0108]在本發(fā)明實施例中,當終端確定消息不是用于創(chuàng)建服務(wù)的消息時,終端可再次對消息進行檢測,檢測消息是否攜帶刪除服務(wù)標識符。當檢測到消息攜帶刪除服務(wù)標識符時,終端可確定消息為用于刪除服務(wù)的消息。
[0109]在具體實施中,終端可通過鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)讀取標識符,判斷標識值是否為0x02,當判斷標識值為0x02時,終端可確定消息攜帶刪除服務(wù)標識符,確定消息為用于刪除服務(wù)的消息。
[0110]S302,當確定所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序。
[0111]在本發(fā)明實施例中,當終端確定消息為用于創(chuàng)建服務(wù)的消息時,終端可根據(jù)消息確定應(yīng)用程序所要進行刪除的待刪除服務(wù)文件,其中,消息攜帶待刪除服務(wù)文件的存儲路徑。
[0112]在具體應(yīng)用中,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)的第二個參數(shù)中的PP0RT_MESSAGE結(jié)構(gòu)類型指針+0x38的位置保存一個PSC_RPC_STRINGA結(jié)構(gòu)指針,此結(jié)構(gòu)指針保存所刪除的待刪除服務(wù)文件的相關(guān)信息,終端可解析此結(jié)構(gòu)指針,獲取到需刪除的待刪除服務(wù)文件的存儲路徑。從而終端可根據(jù)解析到的待刪除服務(wù)文件的存儲路徑確定應(yīng)用程序所要刪除的待刪除文件。
[0113]在本發(fā)明實施例中,當終端確定待刪除服務(wù)文件時,終端可判斷待刪除服務(wù)文件是否為預(yù)置文件,其中,預(yù)置文件可以是終端的安全檢測文件,如毒霸檢測應(yīng)用程序、360安全衛(wèi)士應(yīng)用程序等文件。當終端判斷待刪除服務(wù)文件為預(yù)置文件時,終端可對消息進行攔截,如刪除消息。
[0114]在本發(fā)明實施例中,當終端判斷待刪除服務(wù)文件不是預(yù)置文件時,終端可掃描發(fā)送消息的應(yīng)用程序,對應(yīng)用程序進行安全檢測,判斷應(yīng)用程序是否為惡意程序,其中,終端可調(diào)用安全殺毒應(yīng)用程序?qū)Πl(fā)送消息的應(yīng)用程序進行安全檢測,判斷是否為惡意程序,其中,安全殺毒應(yīng)用程序在具體的應(yīng)用程序中可如毒霸應(yīng)用程序,360安全衛(wèi)士等安全應(yīng)用程序。當安全殺毒應(yīng)用程序判斷其為危險文件或為未知文件時,則終端可確定應(yīng)用程序為惡意程序,當安全殺毒應(yīng)用程序判斷其安全文件時,終端可確定應(yīng)用程序不是惡意程序。
[0115]在本發(fā)明實施例中,終端可獲取消息的發(fā)送進程路徑,通過消息的發(fā)送進程路徑確定應(yīng)用程序,從而終端調(diào)用安全殺毒應(yīng)用程序?qū)ζ溥M行安全檢測。在具體應(yīng)用中,可以是,鉤子函數(shù) NewNtRequestWai tReplyPort 函數(shù)調(diào)用內(nèi)核函數(shù)PsGetCurrentProcessId函數(shù)和ZwQuery Informat1nProcess函數(shù)獲取當前監(jiān)測的消息的發(fā)送進程路徑,根據(jù)發(fā)送進程路徑確定應(yīng)用程序,并調(diào)用上層文件查殺系統(tǒng)進行判斷應(yīng)用程序的狀態(tài),如果狀態(tài)是灰,紅(灰代表未知文件,紅代表危險文件)時,且即為惡意程序。
[0116]S303,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,以攔截所述應(yīng)用程序通過所述消息進行創(chuàng)建服務(wù)。
[0117]在本發(fā)明實施例中,步驟S303的【具體實施方式】可參見上述實施例中的步驟S102,在此不再進行贅述。
[0118]在本發(fā)明實施例中,終端監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息,當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,這使得終端僅通過對消息的攔截即能實現(xiàn)對惡意程序惡意創(chuàng)建服務(wù)的行為進行攔截,從而簡便終端的攔截操作,降低終端攔截惡意程序的惡意行為的處理壓力,節(jié)省終端的運行資源,并提高終端的攔截準確性,從而提升終端的自身安全。
[0119]參見圖4,是本發(fā)明實施例提供的一種終端的第一實施例結(jié)構(gòu)圖。本發(fā)明實施例中所描述的終端包括:
[0120]第一判斷單元100,用于監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息。
[0121]第一安全檢測單元200,用于當所述第一判斷單元監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序。
[0122]攔截單元300,用于當所述第一安全檢測單元確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截。
[0123]在本發(fā)明實施例中,終端上運行的系統(tǒng)可以為Windows系統(tǒng),Windows系統(tǒng)下可包括支持的多個子系統(tǒng),如進程管理子系統(tǒng),內(nèi)存管理子系統(tǒng),1管理子系統(tǒng)和服務(wù)管理子系統(tǒng)等,其中,進程管理子系統(tǒng)用于管理終端的進程,內(nèi)存管理子系統(tǒng)用于管理終端的內(nèi)存,1管理子系統(tǒng)用于管理終端的10,服務(wù)管理子系統(tǒng)用于管理終端的服務(wù)。在本發(fā)明實施例中,子系統(tǒng)可以為服務(wù)管理子系統(tǒng),服務(wù)管理子系統(tǒng)可統(tǒng)一管理注冊表中的服務(wù)信息數(shù)據(jù)。其中,當終端的應(yīng)用程序需進行更改終端的服務(wù)時,如創(chuàng)建、修改或刪除服務(wù)時,應(yīng)用程序可通過LPC(local process call,本地過程調(diào)用)向服務(wù)管理子系統(tǒng)發(fā)送的消息,如當應(yīng)用程序需進行創(chuàng)建服務(wù)時,應(yīng)用程序可通過LPC向服務(wù)管理子系統(tǒng)發(fā)送用于創(chuàng)建服務(wù)的消息,以使子系統(tǒng)響應(yīng)用于創(chuàng)建服務(wù)的消息進行創(chuàng)建服務(wù),如當應(yīng)用程序需進行刪除服務(wù)時,應(yīng)用程序可通過LPC向服務(wù)管理子系統(tǒng)發(fā)送用于刪除服務(wù)的消息,以使子系統(tǒng)響應(yīng)用于刪除服務(wù)的消息進行刪除服務(wù),其中,消息為服務(wù)的相關(guān)消息。
[0124]在本發(fā)明實施例中,第一判斷單元100可監(jiān)控終端中的應(yīng)用程序通過LPC向服務(wù)管理子系統(tǒng)發(fā)送的消息,判斷消息是否為用于創(chuàng)建服務(wù)的消息,其中,第一判斷單元100可對通過LPC向子系統(tǒng)發(fā)送的消息進行逐個檢測,檢測消息是否攜帶創(chuàng)建服務(wù)標識符。當檢測到消息攜帶創(chuàng)建服務(wù)標識符時,第一判斷單元100可確定消息為用于創(chuàng)建服務(wù)的消息。
[0125]在具體實施中,當應(yīng)用程序需通過LPC向服務(wù)管理子系統(tǒng)發(fā)送消息時,應(yīng)用程序調(diào)用內(nèi)核層NtRequestWai tReplyPort函數(shù)使用LPC向服務(wù)管理子系統(tǒng)發(fā)送的消息。因此,終端可預(yù)置一個鉤子函數(shù) NewNtRequestWai tReplyPort 函數(shù)替換原始 NtRequestWai tReplyPort函數(shù)對應(yīng)用程序通過LPC向子系統(tǒng)發(fā)送的消息進行監(jiān)測。具體的,可在系統(tǒng)的SSDT(SyStemServices Descriptor Table,系統(tǒng)服務(wù)描述符表)表中找到NtRequestWaitReplyPort函數(shù),保存 NtRequestWai tReplyPort 函數(shù)地址,并定義 NewNtRequestWai tReplyPort 函數(shù)替換原始NtRequestWaitReplyPort函數(shù)地址,當應(yīng)用程序調(diào)用NtRequestWaitReplyPort函數(shù)使用L P C向服務(wù)管理子系統(tǒng)發(fā)送的消息時,則實際上應(yīng)用程序是調(diào)用NewNtRequestWaitReplyPort函數(shù)使用LPC向服務(wù)管理子系統(tǒng)發(fā)送的消息。其中,在鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)中,第一個參數(shù)是端口句柄,即為發(fā)送目標的端口句柄。當應(yīng)用程序調(diào)用鉤子函數(shù)NewNtRequestWaitReplyPor函數(shù)t進行發(fā)送消息時,終端可獲取鉤子函數(shù)的第一個參數(shù)端口句柄,通過內(nèi)核函數(shù)ObRef erenceOb jectByHandle函數(shù)將端口句柄進行轉(zhuǎn)換為發(fā)送端口的結(jié)構(gòu)指針,并通過內(nèi)核函數(shù)ObReferenceObjectByName函數(shù)將發(fā)送端口的結(jié)構(gòu)指針轉(zhuǎn)換為發(fā)送端口的名稱,判斷發(fā)送端口的名稱是否匹配“\\RPCControl\\ntsvcs”端口,當判斷匹配時,說明應(yīng)用程序往名為ntsvcs端口發(fā)送消息。當終端確認應(yīng)用程序往名為ntsvcs端口發(fā)送的消息時,終端可根據(jù)消息控制服務(wù)管理子系統(tǒng)進行服務(wù)管理。因此,當終端通過鉤子函數(shù)NewNtRequestWai tReplyPort函數(shù)判斷應(yīng)用程序往名為ntsvcs端口發(fā)送消息時,終端可確定該消息為服務(wù)的相關(guān)消息,如創(chuàng)建服務(wù)消息、刪除服務(wù)消息或打開服務(wù)消息等消息。
[0126]進一步的,在具體實施中,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)的第二個參數(shù)為發(fā)送的消息數(shù)據(jù),消息數(shù)據(jù)上攜帶標識符,該標識符為int類型的標識符,該標識符可包括創(chuàng)建服務(wù)標識符、刪除服務(wù)標識符和打開服務(wù)標識符,具體的,標識符的具體位置可在XP系統(tǒng)中的結(jié)構(gòu)指針+0x2C位置上,當標識符的標識值為0x18,則標識符可為創(chuàng)建服務(wù)標識符,當標識符的標識值為OxlC,則標識符可為打開服務(wù)標識符,當標識符的標識值為0x02,則標識符可為刪除服務(wù)標識符,其中,標識符用于標識對服務(wù)的具體操作動作,如當標識符為創(chuàng)建服務(wù)標識符時,則為應(yīng)用程序通知子系統(tǒng)進行創(chuàng)建服務(wù)。終端可通過鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)讀取標識符,判斷標識值是否為0x18,當判斷標識符的標識值為0x18時,確定消息攜帶創(chuàng)建服務(wù)標識符,可判斷消息為用于創(chuàng)建服務(wù)的消息。
[0127]在本發(fā)明實施例中,當?shù)谝慌袛鄦卧?00監(jiān)控到應(yīng)用程序通過LPC向子系統(tǒng)發(fā)送的消息為用于創(chuàng)建服務(wù)的消息時,第一安全檢測單元200可掃描發(fā)送消息的應(yīng)用程序,對應(yīng)用程序進行安全檢測,判斷應(yīng)用程序是否為惡意程序,其中,第一安全檢測單元200可調(diào)用安全殺毒應(yīng)用程序?qū)Πl(fā)送消息的應(yīng)用程序進行安全檢測,判斷是否為惡意程序,其中,安全殺毒應(yīng)用程序在具體的應(yīng)用程序中可如毒霸應(yīng)用程序,360安全衛(wèi)士等安全應(yīng)用程序。當安全殺毒應(yīng)用程序判斷其為危險文件或為未知文件時,則第一安全檢測單元200可確定應(yīng)用程序為惡意程序,當安全殺毒應(yīng)用程序判斷其安全文件時,第一安全檢測單元200可確定應(yīng)用程序不是惡意程序。
[0128]在本發(fā)明實施例中,第一安全檢測單元200可獲取消息的發(fā)送進程路徑,通過消息的發(fā)送進程路徑確定應(yīng)用程序,從而終端調(diào)用安全殺毒應(yīng)用程序?qū)ζ溥M行安全檢測。在具體應(yīng)用中,可以是,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)調(diào)用內(nèi)核函數(shù)PsGetCurrentProcessId函數(shù)和ZwQuerylnformat1nProcess函數(shù)獲取當前監(jiān)測的消息的發(fā)送進程路徑,根據(jù)發(fā)送進程路徑確定應(yīng)用程序,并調(diào)用上層文件查殺系統(tǒng)進行判斷應(yīng)用程序的狀態(tài),如果狀態(tài)是灰,紅(灰代表未知文件,紅代表危險文件)時,且即為惡意程序。
[0129]在本發(fā)明實施例中,當?shù)谝话踩珯z測單元200確定應(yīng)用程序為惡意程序,攔截單元300可對消息進行攔截,如刪掉消息,或者鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)退出,不執(zhí)行原始NtRequestWai tReplyPort函數(shù),惡意程序創(chuàng)建服務(wù)就會失敗。當?shù)谝话踩珯z測單元200確定應(yīng)用程序不是惡意程序時,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)退出,并調(diào)用NtRequestWaitReplyPort函數(shù)進行處理應(yīng)用程序發(fā)送的消息。
[0130]其中,所述第一判斷單元100包括:
[0131]第一檢測子單元,用于檢測所述消息是否攜帶創(chuàng)建服務(wù)標識符。
[0132]第一確定子單元,用于當所述第一檢測子單元確定所述消息攜帶所述創(chuàng)建服務(wù)標識符,確定所述消息為用于創(chuàng)建服務(wù)的消息。
[0133]所述終端還包括:
[0134]獲取單元,用于獲取所述消息的發(fā)送進程路徑。
[0135]第三確定單元,用于根據(jù)所述消息的發(fā)送進程路徑確定所述應(yīng)用程序。
[0136]可以理解的是,本實施例的終端中的單元的各功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參照上述方法實施例的相關(guān)描述,此處不再進行贅述。
[0137]在本發(fā)明實施例中,終端監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息,當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,這使得終端僅通過對消息的攔截即能實現(xiàn)對惡意程序惡意創(chuàng)建服務(wù)的行為進行攔截,從而簡便終端的攔截操作,降低終端攔截惡意程序的惡意行為的處理壓力,節(jié)省終端的運行資源,并提高終端的攔截準確性,從而提升終端的自身安全。
[0138]參見圖5,是本發(fā)明實施例提供的一種終端的第二實施例結(jié)構(gòu)圖。本發(fā)明實施例中所描述的終端包括:
[0139]第一判斷單元100、第一安全檢測單元200和攔截單元300。
[0140]其中,所述終端還包括:
[0141]第一確定單元400,用于當所述第一判斷單元確定所述消息為用于創(chuàng)建服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件。
[0142]第二安全檢測單元500,用于對所述啟動文件進行安全檢測,判斷所述啟動文件是否為危險文件。
[0143]在本發(fā)明實施例中,用于創(chuàng)建服務(wù)的消息可攜帶應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件的啟動路徑,終端可根據(jù)消息所攜帶的啟動路徑確定應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件。
[0144]在具體應(yīng)用中,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)的第二個參數(shù)中的PP0RT_MESSAGE結(jié)構(gòu)類型指針+0x38的位置保存一個PSC_RPC_STRINGA結(jié)構(gòu)指針,此結(jié)構(gòu)指針保存所創(chuàng)建的服務(wù)啟動文件的相關(guān)信息,第一確定單元400,可解析此結(jié)構(gòu)指針,獲取到需創(chuàng)建的服務(wù)的啟動文件的啟動路徑。從而終第一確定單元400,可根據(jù)解析到的啟動路徑確定應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件。
[0145]在本發(fā)明實施例中,當?shù)谝淮_定單元400確定所要創(chuàng)建的服務(wù)的啟動文件時,第二安全檢測單元500可調(diào)用安全殺毒應(yīng)用程序?qū)游募M行安全檢測,判斷是否為危險文件,其中,安全殺毒應(yīng)用程序在具體的應(yīng)用程序中可如毒霸應(yīng)用程序,360安全衛(wèi)士等安全應(yīng)用程序。當安全殺毒應(yīng)用程序判斷其為危險文件或為未知文件時,則第二安全檢測單元500可確定啟動文件為危險文件,當安全殺毒應(yīng)用程序判斷其安全文件時,第二安全檢測單元500可確定啟動文件為安全文件。
[0146]在具體實施中,當終端確定所要創(chuàng)建的服務(wù)的啟動文件時,終端調(diào)用上層文件查殺系統(tǒng)進行判斷應(yīng)用程序的狀態(tài),如果狀態(tài)是灰,紅(灰代表未知文件,紅代表危險文件)時,且即為危險文件。
[0147]其中,所述消息攜帶啟動文件路徑;
[OH8] 所述第一確定單元400具體用于:
[0149]根據(jù)所述消息攜帶的服務(wù)啟動文件路徑確定所述啟動文件。
[0150]可以理解的是,本實施例的終端中的單元的各功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參照上述方法實施例的相關(guān)描述,此處不再進行贅述。
[0151]在本發(fā)明實施例中,終端監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息,當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,這使得終端僅通過對消息的攔截即能實現(xiàn)對惡意程序惡意創(chuàng)建服務(wù)的行為進行攔截,從而簡便終端的攔截操作,降低終端攔截惡意程序的惡意行為的處理壓力,節(jié)省終端的運行資源,并提高終端的攔截準確性,從而提升終端的自身安全。
[0152]參見圖6,是本發(fā)明實施例提供的一種終端的第三實施例結(jié)構(gòu)圖。本發(fā)明實施例中所描述的終端包括:
[0153]第一判斷單元100、第一安全檢測單元200和攔截單元300。
[0154]其中,所述終端還包括:
[0155]第二判斷單元600,用于當確定所述消息不是用于創(chuàng)建服務(wù)的消息時,判斷所述消息是否為用于刪除服務(wù)的消息。
[0156]在本發(fā)明實施例中,當?shù)谝慌袛鄦卧?00確定消息不是用于創(chuàng)建服務(wù)的消息時,第二判斷單元600,可再次對消息進行檢測,檢測消息是否攜帶刪除服務(wù)標識符。當檢測到消息攜帶刪除服務(wù)標識符時,第二判斷單元600,可確定消息為用于刪除服務(wù)的消息。
[0157]在具體實施中,第二判斷單元600可通過鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)讀取標識符,判斷標識值是否為0x02,當判斷標識值為0x02時,第二判斷單元600可確定消息攜帶刪除服務(wù)標識符,確定消息為用于刪除服務(wù)的消息。
[0158]在本發(fā)明實施例中,當?shù)诙袛鄦卧?00確定消息為用于創(chuàng)建服務(wù)的消息時,終端可根據(jù)消息確定應(yīng)用程序所要進行刪除的待刪除服務(wù)文件,其中,消息攜帶待刪除服務(wù)文件的存儲路徑。
[0159]在具體應(yīng)用中,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)的第二個參數(shù)中的PP0RT_MESSAGE結(jié)構(gòu)類型指針+0x38的位置保存一個PSC_RPC_STRINGA結(jié)構(gòu)指針,此結(jié)構(gòu)指針保存所刪除的待刪除服務(wù)文件的相關(guān)信息,終端可解析此結(jié)構(gòu)指針,獲取到需刪除的待刪除服務(wù)文件的存儲路徑。從而終端可根據(jù)解析到的待刪除服務(wù)文件的存儲路徑確定應(yīng)用程序所要刪除的待刪除文件。
[0160]在本發(fā)明實施例中,當終端確定待刪除服務(wù)文件時,終端可判斷待刪除服務(wù)文件是否為預(yù)置文件,其中,預(yù)置文件可以是終端的安全檢測文件,如毒霸檢測應(yīng)用程序、360安全衛(wèi)士應(yīng)用程序等文件。當終端判斷待刪除服務(wù)文件為預(yù)置文件時,終端可對消息進行攔截,如刪除消息。
[0161]在本發(fā)明實施例中,當終端判斷待刪除服務(wù)文件不是預(yù)置文件時,第一安全檢測單元200可掃描發(fā)送消息的應(yīng)用程序,對應(yīng)用程序進行安全檢測,判斷應(yīng)用程序是否為惡意程序,其中,第一安全檢測單元200可調(diào)用安全殺毒應(yīng)用程序?qū)Πl(fā)送消息的應(yīng)用程序進行安全檢測,判斷是否為惡意程序,其中,安全殺毒應(yīng)用程序在具體的應(yīng)用程序中可如毒霸應(yīng)用程序,360安全衛(wèi)士等安全應(yīng)用程序。當安全殺毒應(yīng)用程序判斷其為危險文件或為未知文件時,則第一安全檢測單元200可確定應(yīng)用程序為惡意程序,當安全殺毒應(yīng)用程序判斷其安全文件時,第一安全檢測單元200可確定應(yīng)用程序不是惡意程序。
[0162]在本發(fā)明實施例中,第一安全檢測單元200可獲取消息的發(fā)送進程路徑,通過消息的發(fā)送進程路徑確定應(yīng)用程序,從而第一安全檢測單元200調(diào)用安全殺毒應(yīng)用程序?qū)ζ溥M行安全檢測。在具體應(yīng)用中,可以是,鉤子函數(shù)NewNtRequestWaitReplyPort函數(shù)調(diào)用內(nèi)核函數(shù) PsGetCurrentProces s Id函數(shù)和ZwQuery Informat1nProce ss 函數(shù)獲取當前監(jiān)測的消息的發(fā)送進程路徑,根據(jù)發(fā)送進程路徑確定應(yīng)用程序,并調(diào)用上層文件查殺系統(tǒng)進行判斷應(yīng)用程序的狀態(tài),如果狀態(tài)是灰,紅(灰代表未知文件,紅代表危險文件)時,且即為惡意程序。
[0163]其中,所述第二判斷單元600包括:
[0164]第二檢測子單元,用于檢測所述消息是否攜帶刪除服務(wù)標識符;
[0165]第二確定子單元,用于當所述第二檢測子單元確定所述消息攜帶所述刪除服務(wù)標識符時,確定所述消息為用于刪除服務(wù)的消息。
[0166]所述終端還包括:
[0167]第二確定單元,用于當所述第二判斷單元確定所述消息為用于刪除服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要進行刪除的待刪除服務(wù)文件;
[0168]第三判斷單元,用于判斷所述待刪除服務(wù)文件是否屬于預(yù)置文件;
[0169]當所述第三判斷單元確定所述待刪除服務(wù)文件不屬于所述預(yù)置文件時,通知所述第一安全檢測單元所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序;
[0170]當所述第三判斷單元確定所述待刪除服務(wù)文件屬于所述預(yù)置文件時,通知所述攔截單元對所述消息進行攔截。
[0171 ]所述第二確定單元具體用于:
[0172]根據(jù)所述消息攜帶的待刪除服務(wù)文件確定所述待刪除服務(wù)文件。
[0173]可以理解的是,本實施例的終端中的單元的各功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參照上述方法實施例的相關(guān)描述,此處不再進行贅述。
[0174]在本發(fā)明實施例中,終端監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息,當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序,當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,這使得終端僅通過對消息的攔截即能實現(xiàn)對惡意程序惡意創(chuàng)建服務(wù)的行為進行攔截,從而簡便終端的攔截操作,降低終端攔截惡意程序的惡意行為的處理壓力,節(jié)省終端的運行資源,并提高終端的攔截準確性,從而提升終端的自身安全。
[0175]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random AccessMemory,RAM)等。
[0176]以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【主權(quán)項】
1.一種攔截應(yīng)用程序行為的方法,其特征在于,所述方法包括: 監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息; 當監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序; 當確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,以對所述應(yīng)用程序通過所述消息進行創(chuàng)建服務(wù)的行為進行攔截。2.如權(quán)利要求1所述的方法,其特征在于,所述判斷所述消息是否為用于創(chuàng)建服務(wù)的消息之后還包括: 當確定所述消息不是用于創(chuàng)建服務(wù)的消息時,判斷所述消息是否為用于刪除服務(wù)的消息; 當確定所述消息為用于刪除服務(wù)的消息時,執(zhí)行對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序步驟。3.如權(quán)利要求2所述的方法,其特征在于,所述判斷所述消息是否為用于創(chuàng)建服務(wù)的消息包括: 檢測所述消息是否攜帶創(chuàng)建服務(wù)標識符; 當確定所述消息攜帶所述創(chuàng)建服務(wù)標識符,確定所述消息為用于創(chuàng)建服務(wù)的消息; 所述判斷所述消息是否為用于刪除服務(wù)的消息包括: 檢測所述消息是否攜帶刪除服務(wù)標識符; 當確定所述消息攜帶所述刪除服務(wù)標識符時,確定所述消息為用于刪除服務(wù)的消息。4.如權(quán)利要求1所述的方法,其特征在于,所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序之前包括: 當確定所述消息為用于創(chuàng)建服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要創(chuàng)建的服務(wù)的啟動文件; 對所述啟動文件進行安全檢測,判斷所述啟動文件是否為危險文件; 當確定所述啟動文件不是危險文件時,執(zhí)行對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序步驟; 當確定所述啟動文件是危險文件時,執(zhí)行對所述消息進行攔截步驟。5.如權(quán)利要求2所述的方法,其特征在于,所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序之前包括: 當確定所述消息為用于刪除服務(wù)的消息時,根據(jù)所述消息確定所述應(yīng)用程序所要進行刪除的待刪除服務(wù)文件; 判斷所述待刪除服務(wù)文件是否屬于預(yù)置文件; 當確定所述待刪除服務(wù)文件不屬于所述預(yù)置文件時,執(zhí)行所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序步驟; 當確定所述待刪除服務(wù)文件屬于所述預(yù)置文件時,執(zhí)行對對所述消息進行攔截步驟。6.如權(quán)利要求4所述的方法,其特征在于,所述消息攜帶啟動文件路徑; 所述根據(jù)所述消息確定所述應(yīng)用程序所要創(chuàng)建的啟動文件包括: 根據(jù)所述消息攜帶的服務(wù)啟動文件路徑確定所述啟動文件。7.如權(quán)利要求5所述的方法,其特征在于,所述消息攜帶待刪除服務(wù)文件路徑; 所述根據(jù)所述消息確定所述應(yīng)用程序所要進行刪除的待刪除服務(wù)文件包括: 根據(jù)所述消息攜帶的待刪除服務(wù)文件確定所述待刪除服務(wù)文件。8.如權(quán)利要求1所述的方法,其特征在于,所述對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序之前包括: 獲取所述消息的發(fā)送進程路徑; 根據(jù)所述消息的發(fā)送進程路徑確定所述應(yīng)用程序。9.一種終端,其特征在于,所述終端包括: 第一判斷單元,用于監(jiān)控應(yīng)用程序通過本地過程調(diào)用LPC向子系統(tǒng)發(fā)送的消息,判斷所述消息是否為用于創(chuàng)建服務(wù)的消息; 第一安全檢測單元,用于當所述第一判斷單元監(jiān)控到所述消息為用于創(chuàng)建服務(wù)的消息時,對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序; 攔截單元,用于當所述第一安全檢測單元確定所述應(yīng)用程序為惡意程序時,對所述消息進行攔截,以對所述應(yīng)用程序通過所述消息進行創(chuàng)建服務(wù)的行為進行攔截。10.如權(quán)利要求9所述的終端,其特征在于,所述終端還包括: 第二判斷單元,用于當確定所述消息不是用于創(chuàng)建服務(wù)的消息時,判斷所述消息是否為用于刪除服務(wù)的消息; 當所述第二判斷單元確定所述消息為用于刪除服務(wù)的消息時,所述第二判斷單元通知所述第一安全檢測單元對所述應(yīng)用程序進行安全檢測,判斷所述應(yīng)用程序是否為惡意程序。
【文檔編號】G06F21/56GK105956470SQ201610287148
【公開日】2016年9月21日
【申請日】2016年5月3日
【發(fā)明人】李文靖
【申請人】北京金山安全軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1