本發(fā)明涉及通信
技術(shù)領(lǐng)域:
:,具體涉及一種系統(tǒng)調(diào)用的監(jiān)控方法和裝置。
背景技術(shù):
::在操作系統(tǒng)中,絕大部分的資源都是通過系統(tǒng)調(diào)用來訪問的,比如文件、和內(nèi)存,等等。因此,如果能夠控制系統(tǒng)調(diào)用,保證他們調(diào)用是具有權(quán)限的,比如不是來自惡意或非法用戶,就能夠在很大程度上提高系統(tǒng)的安全性,為此,現(xiàn)有技術(shù)提出了系統(tǒng)調(diào)用的監(jiān)控技術(shù),即對系統(tǒng)調(diào)用進(jìn)行攔截和分析,在根據(jù)分析結(jié)果確定該系統(tǒng)調(diào)用具有權(quán)限時(shí),才允許執(zhí)行該系統(tǒng)調(diào)用。在現(xiàn)有技術(shù)中,主要是利用系統(tǒng)漏洞,對系統(tǒng)內(nèi)核空間中的數(shù)據(jù)進(jìn)行修改來達(dá)到攔截調(diào)用的目的的。例如,具體可以對內(nèi)核空間中的syscalltable(系統(tǒng)調(diào)用函數(shù)表)中某個(gè)syscall(系統(tǒng)調(diào)用)函數(shù)的地址進(jìn)行修改,從而改變該syscall函數(shù)的指向,使得系統(tǒng)在調(diào)用該syscall函數(shù)時(shí),可以指向更改后地址所對應(yīng)的函數(shù),比如一個(gè)自定義函數(shù),然后,利用該自定義函數(shù),獲取該系統(tǒng)調(diào)用的相關(guān)信息并進(jìn)行分析,便可以確定該系統(tǒng)調(diào)用是否具有權(quán)限,是否允許執(zhí)行該系統(tǒng)調(diào)用,等等。在對現(xiàn)有技術(shù)的研究和實(shí)踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有的方案需要對內(nèi)核空間的數(shù)據(jù)進(jìn)行修改,因此,實(shí)現(xiàn)較為復(fù)雜,而且,由于受限于系統(tǒng)漏洞本身,所以,適配性、穩(wěn)定性和兼容性也較差。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供一種系統(tǒng)調(diào)用的監(jiān)控方法和裝置,不需要修改內(nèi)核空間的數(shù)據(jù),不僅實(shí)現(xiàn)簡單,而且可以提高適配性、穩(wěn)定性和兼容性。本發(fā)明實(shí)施例提供一種系統(tǒng)調(diào)用的監(jiān)控方法,包括:接收用戶進(jìn)程的啟動(dòng)請求,所述啟動(dòng)請求中攜帶需要啟動(dòng)的用戶進(jìn)程的標(biāo)識;根據(jù)所述標(biāo)識創(chuàng)建用戶進(jìn)程,并對所述用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息;當(dāng)追蹤信息指示所述用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息;基于所述系統(tǒng)調(diào)用信息對所述用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控。相應(yīng)的,本發(fā)明實(shí)施例提供一種系統(tǒng)調(diào)用的監(jiān)控裝置,包括:接收單元,用于接收用戶進(jìn)程的啟動(dòng)請求,所述啟動(dòng)請求中攜帶需要啟動(dòng)的用戶進(jìn)程的標(biāo)識;創(chuàng)建單元,用于根據(jù)所述標(biāo)識創(chuàng)建用戶進(jìn)程;追蹤單元,用于對所述用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息;獲取單元,用于當(dāng)追蹤信息指示所述用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息;監(jiān)控單元,用于基于所述系統(tǒng)調(diào)用信息對所述用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控。本發(fā)明實(shí)施例在接收到用戶進(jìn)程的啟動(dòng)請求時(shí),可以根據(jù)該啟動(dòng)請求中攜帶的需要啟動(dòng)的用戶進(jìn)程的標(biāo)識創(chuàng)建用戶進(jìn)程,并對該用戶進(jìn)程進(jìn)行追蹤,然后,當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息,并基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控;由于該方案的大部分邏輯都在用戶空間完成,而無需對內(nèi)核空間的數(shù)據(jù)進(jìn)行修改,因此,實(shí)現(xiàn)較為簡單;而且,由于該方案無需基于系統(tǒng)漏洞,所以,相對于現(xiàn)有的方案而言,適配性、穩(wěn)定性和兼容性也得到大大地提高。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1a是本發(fā)明實(shí)施例提供的系統(tǒng)調(diào)用的監(jiān)控方法的場景示意圖;圖1b是本發(fā)明實(shí)施例提供的系統(tǒng)調(diào)用的監(jiān)控方法的流程圖;圖2a是本發(fā)明實(shí)施例提供的系統(tǒng)調(diào)用的監(jiān)控方法的另一流程圖;圖2b是本發(fā)明實(shí)施例提供的系統(tǒng)調(diào)用的監(jiān)控方法的另一場景示意圖;圖3a是本發(fā)明實(shí)施例提供的系統(tǒng)調(diào)用的監(jiān)控裝置的結(jié)構(gòu)示意圖;圖3b是本發(fā)明實(shí)施例提供的系統(tǒng)調(diào)用的監(jiān)控裝置的另一結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例提供的終端的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供一種系統(tǒng)調(diào)用的監(jiān)控方法和裝置。其中,該系統(tǒng)調(diào)用的監(jiān)控方法具體可以適用于安卓(android)操作系統(tǒng)(簡稱安卓系統(tǒng))或其他類似的操作系統(tǒng),而該系統(tǒng)調(diào)用的監(jiān)控裝置具體可以集成在終端,比如手機(jī)、平板電腦或筆記本電腦等設(shè)備中。以安卓系統(tǒng)為例,參見圖1a,內(nèi)存空間一般可以劃分為內(nèi)核空間和用戶空間,其中,內(nèi)核空間和用戶空間的權(quán)限不同,內(nèi)核空間擁有較高的權(quán)限,一個(gè)終端一般只有一個(gè)內(nèi)核空間,而用戶空間相對內(nèi)核空間而言,權(quán)限較低,一般可以存在有多個(gè)用戶空間,這些用戶空間主要用于各種應(yīng)用程序的運(yùn)行,每個(gè)應(yīng)用程序可以包括多個(gè)進(jìn)程,在本發(fā)明實(shí)施例中,將這些應(yīng)用程序?qū)?yīng)的進(jìn)程稱為用戶進(jìn)程;而系統(tǒng)調(diào)用,主要指的是對內(nèi)核空間中的系統(tǒng)調(diào)用函數(shù)的調(diào)用。為了實(shí)現(xiàn)對系統(tǒng)調(diào)用的監(jiān)控,可以在用戶進(jìn)程創(chuàng)建時(shí),便對該用戶進(jìn)程進(jìn)行追蹤,若追蹤信息指示該用戶進(jìn)程正在進(jìn)行系統(tǒng)調(diào)用,則獲取系統(tǒng)調(diào)用信息,并基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行控制。例如,如圖1a所示,可以啟動(dòng)一追蹤進(jìn)程,當(dāng)該追蹤進(jìn)程接收到用戶進(jìn)程的啟動(dòng)請求時(shí),便可以根據(jù)該啟動(dòng)請求中攜帶的需要啟動(dòng)的用戶進(jìn)程的標(biāo)識創(chuàng)建用戶進(jìn)程,比如,可以將跟蹤進(jìn)程附加(attach)至孵化進(jìn)程(也稱為孵化器),通過孵化進(jìn)程如zygote創(chuàng)建(即孵化)一新的進(jìn)程(即子進(jìn)程),然后根據(jù)該標(biāo)識對該子進(jìn)程中的預(yù)設(shè)參數(shù)進(jìn)行修改,得到用戶進(jìn)程,與此同時(shí),還可以在該跟蹤進(jìn)程中設(shè)置相應(yīng)的標(biāo)識,用于指示對用戶進(jìn)程進(jìn)行追蹤,這樣,后續(xù)跟蹤進(jìn)程便可以自動(dòng)附加至該用戶進(jìn)程,當(dāng)該用戶進(jìn)程進(jìn)行系統(tǒng)調(diào)用時(shí),內(nèi)核空間便會(huì)返回相應(yīng)的系統(tǒng)調(diào)用信息給附加至該用戶進(jìn)程的進(jìn)程,即該跟蹤進(jìn)程,使得跟蹤進(jìn)程可以基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控。比如,具體可以從中央處理器(CPU,CentralProcessingUnit)的寄存器中讀取系統(tǒng)調(diào)用函數(shù)(syscall)的函數(shù)號(syscallnumber),然后,根據(jù)該函數(shù)號確定是否需要對該系統(tǒng)調(diào)用函數(shù)的調(diào)用進(jìn)行控制,若需要,則對該系統(tǒng)調(diào)用信息進(jìn)行分析,并基于分析結(jié)果對該用戶進(jìn)程的系統(tǒng)調(diào)用進(jìn)行控制,否則,如果不需要對該函數(shù)的調(diào)用進(jìn)行控制,則繼續(xù)執(zhí)行該用戶進(jìn)程,等等。以下分別進(jìn)行詳細(xì)說明。需說明的是,以下實(shí)施例的序號不作為對實(shí)施例優(yōu)選順序的限制。實(shí)施例一、在本實(shí)施例中,將從系統(tǒng)調(diào)用的監(jiān)控裝置的角度進(jìn)行描述,該系統(tǒng)調(diào)用的監(jiān)控裝置具體可以集成在終端中,該終端可以包括手機(jī)、平板電腦或筆記本電腦等設(shè)備。一種系統(tǒng)調(diào)用的監(jiān)控方法,包括:接收用戶進(jìn)程的啟動(dòng)請求,該啟動(dòng)請求中攜帶需要啟動(dòng)的用戶進(jìn)程的標(biāo)識;根據(jù)該標(biāo)識創(chuàng)建用戶進(jìn)程,并對該用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息;當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息;基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控。如圖1b所示,該系統(tǒng)調(diào)用的監(jiān)控方法的具體流程可以如下:101、接收用戶進(jìn)程的啟動(dòng)請求。其中,該啟動(dòng)請求中攜帶需要啟動(dòng)的用戶進(jìn)程的標(biāo)識,比如該用戶進(jìn)程的名稱和/或編號等信息,此外,還可以攜帶其他的信息,比如與該用戶進(jìn)程相應(yīng)的預(yù)設(shè)參數(shù)的值,等等。其中,預(yù)設(shè)參數(shù)與具體的用戶進(jìn)程相關(guān),一般用于指示該用戶進(jìn)程的資源和調(diào)用等情況,不同的用戶進(jìn)程所對應(yīng)的預(yù)設(shè)參數(shù)可能會(huì)存在差異,具體可以根據(jù)實(shí)際應(yīng)用的需求而定,在此不再贅述??蛇x的,可以通過設(shè)置一追蹤進(jìn)程(或稱為攔截進(jìn)程)來執(zhí)行該系統(tǒng)調(diào)用的監(jiān)控操作方法的相關(guān)操作,即步驟“接收用戶進(jìn)程的啟動(dòng)請求”具體可以為:通過追蹤進(jìn)程接收用戶進(jìn)程的啟動(dòng)請求。若通過追蹤進(jìn)程來執(zhí)行該系統(tǒng)調(diào)用的監(jiān)控操作方法的相關(guān)操作,則在首次執(zhí)行時(shí),需要啟動(dòng)該追蹤進(jìn)程,即可選的,在步驟“接收用戶進(jìn)程的啟動(dòng)請求”之前,該系統(tǒng)調(diào)用的監(jiān)控方法還可以包括:接收系統(tǒng)調(diào)用的監(jiān)控請求,根據(jù)該監(jiān)控請求啟動(dòng)跟蹤進(jìn)程。其中,該跟蹤進(jìn)程具體可以通過ptrace(跟蹤)機(jī)制來實(shí)現(xiàn),比如,具體可以在系統(tǒng)處理系統(tǒng)調(diào)用函數(shù)(syscall)軟中斷的例程中插入硬編碼的hook(entry.s)(hook(entry.s)為一種鉤子函數(shù)),使之能夠攔截所有被追蹤進(jìn)程的syscall調(diào)用和調(diào)出,從而達(dá)到些安全防護(hù)的效果,比如注入攔截,文件刪除攔截,文件修改攔截,文件讀取攔截、以及網(wǎng)絡(luò)通訊攔截,等等。102、根據(jù)該標(biāo)識創(chuàng)建用戶進(jìn)程,并對該用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息。其中,根據(jù)該標(biāo)識創(chuàng)建用戶進(jìn)程的方式可以有多種,例如,可以如下:將跟蹤進(jìn)程附加(attach)至孵化進(jìn)程(也稱為孵化器),通過該孵化進(jìn)程創(chuàng)建子進(jìn)程,該子進(jìn)程繼承該孵化進(jìn)程的內(nèi)容,根據(jù)該標(biāo)識對該子進(jìn)程中的預(yù)設(shè)參數(shù)進(jìn)行修改,得到用戶進(jìn)程。比如,可以根據(jù)該標(biāo)識確定該子進(jìn)程中需要修改的參數(shù),以及相應(yīng)參數(shù)值,然后,根據(jù)該需要修改的參數(shù),以及相應(yīng)參數(shù)值對該子進(jìn)程進(jìn)行修改,得到用戶進(jìn)程。需說明的是,若在用戶進(jìn)程的啟動(dòng)請求中已經(jīng)攜帶了預(yù)設(shè)參數(shù)的值,則此時(shí),可以從該啟動(dòng)請求中該子進(jìn)程中需要修改的參數(shù),以及相應(yīng)參數(shù)值;而如果啟動(dòng)請求中并沒有攜帶該預(yù)設(shè)參數(shù)的值,則此時(shí),可以從其他存儲(chǔ)單位或數(shù)據(jù)庫中獲取到該子進(jìn)程中需要修改的參數(shù),以及相應(yīng)參數(shù)值。其中,該孵化進(jìn)程具體可以為zygote(孵化)進(jìn)程或其他可以實(shí)現(xiàn)與zygote進(jìn)程類似功能的進(jìn)程,具體可根據(jù)實(shí)際應(yīng)用的需求而定,在此不再贅述。例如,以該孵化進(jìn)程具體為zygote進(jìn)程為例,則可以將該跟蹤進(jìn)程附加(attach)至zygote進(jìn)程,這樣,當(dāng)收到需要啟動(dòng)用戶進(jìn)程時(shí),比如當(dāng)用戶點(diǎn)擊某個(gè)終端應(yīng)用的圖標(biāo)時(shí),則zygote進(jìn)程會(huì)以自己為母本,創(chuàng)建(或稱為孵化)一新的進(jìn)程,該新的進(jìn)程繼承了zygote進(jìn)程所有的內(nèi)容,也就是說,此時(shí)zygote進(jìn)程相當(dāng)于父進(jìn)程,而該新的進(jìn)程相當(dāng)于子進(jìn)程,因此,在本發(fā)明實(shí)施例中,將該新的進(jìn)程稱為子進(jìn)程,此后,便可以根據(jù)需要啟動(dòng)的用戶進(jìn)程的標(biāo)識確定該子進(jìn)程中需要修改的參數(shù),以及相應(yīng)參數(shù)值,然后根據(jù)該需要修改的參數(shù),以及相應(yīng)參數(shù)值對該子進(jìn)程進(jìn)行修改,得到用戶進(jìn)程。此外,在將該跟蹤進(jìn)程附加至孵化進(jìn)程時(shí),還可以在該跟蹤進(jìn)程中設(shè)置相應(yīng)的標(biāo)識,該標(biāo)識用于指示對用戶進(jìn)程進(jìn)行追蹤,這樣,后續(xù)若發(fā)現(xiàn)有該標(biāo)識,便可以對用戶進(jìn)程進(jìn)行追蹤,或者,也可以設(shè)置一標(biāo)識,用于指示是否對用戶進(jìn)程進(jìn)行追蹤,比如值為“1”時(shí)表示需要對用戶進(jìn)程進(jìn)行追蹤,值為“0”時(shí)表示需要對用戶進(jìn)程進(jìn)行追蹤,反之亦可,等等。即此時(shí),步驟“對該用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息”可以包括:確定該標(biāo)識指示對用戶進(jìn)程進(jìn)行追蹤時(shí),將該跟蹤進(jìn)程附加至該用戶進(jìn)程,使得該跟蹤進(jìn)程對該用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息。比如,具體可以在跟蹤進(jìn)程中設(shè)置PTRACE_O_TRACEFORK,其中,PTRACE_O_TRACEFORK是PTRACE中的一個(gè)標(biāo)識位,通過設(shè)置它,可以使得當(dāng)由zygote進(jìn)程孵化的進(jìn)程執(zhí)行到FORK(一種函數(shù))時(shí),自動(dòng)附加至對應(yīng)的用戶進(jìn)程上,這樣,后續(xù)追蹤進(jìn)程便可以對該用戶進(jìn)程進(jìn)行追蹤。103、當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息。例如,當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),具體可以通過跟蹤進(jìn)程接收來自內(nèi)核空間的系統(tǒng)調(diào)用信息。比如,以用戶進(jìn)程為應(yīng)用A的啟動(dòng)進(jìn)程為例,則當(dāng)該應(yīng)用A的啟動(dòng)進(jìn)程調(diào)用內(nèi)核空間的某個(gè)系統(tǒng)調(diào)用函數(shù)(syscall)時(shí),由于syscall在系統(tǒng)底層的實(shí)現(xiàn),因此,它會(huì)向附加(attach)到該用戶進(jìn)程的進(jìn)程發(fā)送信號,即會(huì)向追蹤進(jìn)程發(fā)送信號,其中,該信號攜帶系統(tǒng)調(diào)用信息。其中,該系統(tǒng)調(diào)用信息可以包括系統(tǒng)調(diào)用函數(shù)標(biāo)識,比如名稱和/或調(diào)用號(syscallnumber)等,還可以包括系統(tǒng)調(diào)用的時(shí)間、以及存儲(chǔ)位置等。104、基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控。例如,具體可以如下:(1)讀取系統(tǒng)調(diào)用函數(shù)的調(diào)用號(syscallnumber)。比如,可以通過讀取CPU的寄存器,來獲取到調(diào)用號。(2)根據(jù)該調(diào)用號確定需要對該函數(shù)的調(diào)用進(jìn)行控制時(shí),對該系統(tǒng)調(diào)用信息進(jìn)行分析,得到分析結(jié)果。例如,可以預(yù)設(shè)一數(shù)據(jù)表,該數(shù)據(jù)表保存有調(diào)用號、系統(tǒng)調(diào)用函數(shù)(syscall)、以及重要等級等信息之間的映射關(guān)系,其中,重要等級越高,表明調(diào)用該syscall時(shí)所需要的權(quán)限等級越高,越需要對該函數(shù)的調(diào)用進(jìn)行控制。這樣,在獲取到調(diào)用號之后,便可以通過查找該預(yù)設(shè)數(shù)據(jù)表,來確定該調(diào)用號所對應(yīng)的函數(shù)調(diào)用是否是需要進(jìn)行控制,比如,以重要等級為“1”表示需要對該函數(shù)的調(diào)用進(jìn)行控制為例,則此時(shí),若調(diào)用號為“333”所對應(yīng)的重要等級為“1”,則可以需要對該函數(shù)的調(diào)用進(jìn)行控制,于是,對該系統(tǒng)調(diào)用信息進(jìn)行分析,比如,可以確定該用戶進(jìn)程是否具有調(diào)用該函數(shù)的權(quán)限,等等,從而得到分析結(jié)果。反之,若調(diào)用號為“333”所對應(yīng)的重要等級為不為“1”,則可以不需要對該函數(shù)的調(diào)用進(jìn)行控制,于是,可以允許該用戶進(jìn)程調(diào)用該函數(shù)。(3)根據(jù)該分析結(jié)果對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行控制,比如,可以如下:根據(jù)該分析結(jié)果確定該用戶進(jìn)程具有調(diào)用該函數(shù)的權(quán)限時(shí),允許該用戶進(jìn)程調(diào)用該函數(shù);根據(jù)該分析結(jié)果確定該用戶進(jìn)程不具有調(diào)用該函數(shù)的權(quán)限時(shí),阻止該用戶進(jìn)程調(diào)用該函數(shù)。由上可知,本實(shí)施例在接收到用戶進(jìn)程的啟動(dòng)請求時(shí),可以根據(jù)該啟動(dòng)請求中攜帶的需要啟動(dòng)的用戶進(jìn)程的標(biāo)識創(chuàng)建用戶進(jìn)程,并對該用戶進(jìn)程進(jìn)行追蹤,然后,當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息,并基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控;由于該方案的大部分邏輯都在用戶空間完成,而無需對內(nèi)核空間的數(shù)據(jù)進(jìn)行修改,因此,實(shí)現(xiàn)較為簡單;而且,由于該方案無需基于系統(tǒng)漏洞,所以,相對于現(xiàn)有的方案而言,適配性、穩(wěn)定性和兼容性也得到大大地提高。實(shí)施例二、根據(jù)實(shí)施例一所描述的方法,以下將舉例作進(jìn)一步詳細(xì)說明。在本實(shí)施例中,將以該系統(tǒng)調(diào)用的監(jiān)控裝置具體集成在終端中,且該終端的操作系統(tǒng)為安卓系統(tǒng)為例進(jìn)行說明。如圖2a所示,一種系統(tǒng)調(diào)用的監(jiān)控方法,具體流程可以如下:201、終端接收系統(tǒng)調(diào)用的監(jiān)控請求,根據(jù)該監(jiān)控請求啟動(dòng)跟蹤進(jìn)程。其中,該跟蹤進(jìn)程具體可以通過ptrace(跟蹤)機(jī)制來實(shí)現(xiàn),比如,具體可以在系統(tǒng)處理系統(tǒng)調(diào)用函數(shù)(syscall)軟中斷的例程中插入硬編碼的hook(entry.s)(hook(entry.s)為一種鉤子函數(shù)),使之能夠攔截所有被追蹤進(jìn)程的syscall調(diào)用和調(diào)出,從而達(dá)到些安全防護(hù)的效果,比如注入攔截,文件刪除攔截,文件修改攔截,文件讀取攔截、以及網(wǎng)絡(luò)通訊攔截,等等。需說明的是,為了節(jié)省流程,提高效率,該跟蹤進(jìn)程只需在首次運(yùn)行時(shí)啟動(dòng)即可,后續(xù)可以一直沿用,而無需每次對用戶進(jìn)程進(jìn)行監(jiān)控時(shí)都啟動(dòng)一次,即步驟201為可選步驟,若當(dāng)前系統(tǒng)中的跟蹤進(jìn)程已經(jīng)啟動(dòng),則可以不執(zhí)行該步驟。202、終端通過追蹤進(jìn)程接收用戶進(jìn)程的啟動(dòng)請求。其中,該啟動(dòng)請求中攜帶需要啟動(dòng)的用戶進(jìn)程的標(biāo)識,比如該用戶進(jìn)程的名稱和/或編號等信息,此外,還可以攜帶其他的信息,比如與該用戶進(jìn)程相應(yīng)的預(yù)設(shè)參數(shù)的值,等等。203、終端將跟蹤進(jìn)程附加(attach)至孵化進(jìn)程,通過該孵化進(jìn)程創(chuàng)建子進(jìn)程,該子進(jìn)程繼承該孵化進(jìn)程的內(nèi)容,根據(jù)該標(biāo)識對該子進(jìn)程中的預(yù)設(shè)參數(shù)進(jìn)行修改,得到用戶進(jìn)程。其中,該孵化進(jìn)程具體可以為zygote(孵化)進(jìn)程或其他可以實(shí)現(xiàn)與zygote進(jìn)程類似功能的進(jìn)程,例如,以該孵化進(jìn)程具體為zygote進(jìn)程,且該需要啟動(dòng)的用戶進(jìn)程為文件A的刪除進(jìn)程為例,則如圖2b所示,具體可以如下:可以將該跟蹤進(jìn)程附加(attach)至zygote進(jìn)程,這樣,當(dāng)接收到文件A的“刪除進(jìn)程”的啟動(dòng)請求時(shí),比如用戶點(diǎn)擊或滑動(dòng)文件A的圖標(biāo)以對該文件A進(jìn)行刪除時(shí),zygote進(jìn)程便會(huì)以自己為母本,創(chuàng)建一新的進(jìn)程,得到子進(jìn)程,其中,該子進(jìn)程繼承zygote進(jìn)程的全部內(nèi)容,然后,根據(jù)需要該啟動(dòng)請求中攜帶的需要啟動(dòng)的“刪除進(jìn)程”的標(biāo)識確定該子進(jìn)程中需要修改的參數(shù),以及相應(yīng)參數(shù)值,并根據(jù)該需要修改的參數(shù),以及相應(yīng)參數(shù)值對該子進(jìn)程進(jìn)行修改,得到該文件A的刪除進(jìn)程(即用戶進(jìn)程)。此外,在將該跟蹤進(jìn)程附加至孵化進(jìn)程時(shí),還可以在該跟蹤進(jìn)程中設(shè)置相應(yīng)的標(biāo)識,用于指示對用戶進(jìn)程進(jìn)行追蹤,比如,參見圖2b,可以在跟蹤進(jìn)程中設(shè)置PTRACE_O_TRACEFORK,這樣,當(dāng)zygote進(jìn)程執(zhí)行到FORK函數(shù),即創(chuàng)建一子進(jìn)程,以得到用戶進(jìn)程時(shí),跟蹤進(jìn)程便可以自動(dòng)附加(attach)至對應(yīng)的用戶進(jìn)程,即文件A的刪除進(jìn)程上,從而使得后續(xù)該追蹤進(jìn)程可以對該文件A的刪除進(jìn)程進(jìn)行追蹤。其中,追蹤進(jìn)程的部分代碼可以如下:204、終端根據(jù)追蹤信息確定該用戶進(jìn)程是否在進(jìn)行系統(tǒng)調(diào)用,若不在進(jìn)行系統(tǒng)調(diào)用,則可以忽略,若在進(jìn)行系統(tǒng)調(diào)用,則通過跟蹤進(jìn)程接收來自內(nèi)核空間的系統(tǒng)調(diào)用信息。例如,還是以用戶進(jìn)程為文件A的刪除進(jìn)程為例,則當(dāng)該文件A的刪除進(jìn)程調(diào)用內(nèi)核空間的某個(gè)syscall,比如函數(shù)“sys_getpid”時(shí),內(nèi)核空間會(huì)向附加(attach)到該刪除進(jìn)程的進(jìn)程發(fā)送信號,即會(huì)向追蹤進(jìn)程發(fā)送信號,比如發(fā)送stopsig,參見圖2b,其中,該信號攜帶系統(tǒng)調(diào)用信息,因此,此時(shí),追蹤進(jìn)程可以接收到來自內(nèi)核空間的系統(tǒng)調(diào)用信息。其中,該系統(tǒng)調(diào)用信息可以包括系統(tǒng)調(diào)用函數(shù)標(biāo)識,比如名稱和/或調(diào)用號(syscallnumber)等,此外,該系統(tǒng)調(diào)用信息還可以包括系統(tǒng)調(diào)用的時(shí)間、以及存儲(chǔ)位置等信息,在此不再贅述。205、終端讀取系統(tǒng)調(diào)用函數(shù)的調(diào)用號(syscallnumber),即讀取syscall的調(diào)用號。比如,由于CPU的寄存器一般保存有當(dāng)前正在運(yùn)行的進(jìn)程所調(diào)用的syscall的調(diào)用號,因此,可以通過讀取CPU的寄存器,來獲取到該調(diào)用號。206、終端根據(jù)該調(diào)用號確定需要對該函數(shù)的調(diào)用進(jìn)行控制時(shí),對該系統(tǒng)調(diào)用信息進(jìn)行分析,得到分析結(jié)果。例如,在獲取到調(diào)用號之后,可以通過查找預(yù)設(shè)數(shù)據(jù)表,來確定是否需要對該調(diào)用號所對應(yīng)的函數(shù)的調(diào)用進(jìn)行控制,比如,還是以調(diào)用函數(shù)“sys_getpid”為例,由于函數(shù)“sys_getpid”所對應(yīng)的調(diào)用號為“20”,因此,可以在該預(yù)設(shè)數(shù)據(jù)表中查找調(diào)用號為“20”的函數(shù)的相關(guān)記錄,以確定是否需要對函數(shù)“sys_getpid”的調(diào)用進(jìn)行控制,若需要,則此時(shí)可以對接收到的系統(tǒng)調(diào)用信息進(jìn)行分析,得到分析結(jié)果;否則,若不需要,則可以直接允許該用戶進(jìn)程調(diào)用該函數(shù)“sys_getpid”,以此類推,等等。207、終端根據(jù)該分析結(jié)果確定該用戶進(jìn)程是否具有調(diào)用該函數(shù)的權(quán)限,若是,則允許該用戶進(jìn)程調(diào)用該函數(shù);若否,則阻止該用戶進(jìn)程調(diào)用該函數(shù)。由上可知,本實(shí)施例可以通過將追蹤進(jìn)程附加至孵化進(jìn)程,并在追蹤進(jìn)程中設(shè)置相應(yīng)的用于指示對用戶進(jìn)程進(jìn)行追蹤的標(biāo)識,使得當(dāng)孵化進(jìn)程創(chuàng)建用戶進(jìn)程時(shí),該追蹤進(jìn)程可以自動(dòng)地附加至該用戶進(jìn)程上,從而達(dá)到對用戶進(jìn)程進(jìn)行追蹤,以獲取到相應(yīng)系統(tǒng)調(diào)用信息,并基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控的目的;由于該方案的大部分邏輯都在用戶空間完成,而無需對內(nèi)核空間的數(shù)據(jù)進(jìn)行修改,因此,實(shí)現(xiàn)較為簡單;而且,由于該方案無需基于系統(tǒng)漏洞,所以,相對于現(xiàn)有的方案而言,適配性、穩(wěn)定性和兼容性也得到大大地提高;總而言之,本實(shí)施例可以在保障系統(tǒng)調(diào)用安全性的同時(shí),提高適配性、穩(wěn)定性和兼容性,而且,實(shí)現(xiàn)較為簡單,可以大大簡單開發(fā)難度和成本。實(shí)施例三、為了更好地實(shí)施以上方法,本發(fā)明實(shí)施例還提供一種系統(tǒng)調(diào)用的監(jiān)控裝置,如圖3a所示,該系統(tǒng)調(diào)用的監(jiān)控裝置可以包括接收單元301、創(chuàng)建單元302、追蹤單元303、獲取單元304和監(jiān)控單元305,如下:(1)接收單元301;接收單元301,用于接收用戶進(jìn)程的啟動(dòng)請求,該啟動(dòng)請求中攜帶需要啟動(dòng)的用戶進(jìn)程的標(biāo)識。其中,該用戶進(jìn)程的標(biāo)識可以包括用戶進(jìn)程的名稱和/或編號等信息。此外,該啟動(dòng)請求還可以攜帶其他的信息,比如與該用戶進(jìn)程相應(yīng)的預(yù)設(shè)參數(shù)的值,等等。其中,預(yù)設(shè)參數(shù)與具體的用戶進(jìn)程相關(guān),一般用于指示該用戶進(jìn)程的資源和調(diào)用等情況,不同的用戶進(jìn)程所對應(yīng)的預(yù)設(shè)參數(shù)可能會(huì)存在差異,具體可以根據(jù)實(shí)際應(yīng)用的需求而定,在此不再贅述??蛇x的,可以通過設(shè)置一追蹤進(jìn)程(或稱為攔截進(jìn)程)來執(zhí)行該系統(tǒng)調(diào)用的監(jiān)控操作方法的相關(guān)操作,即如圖3b所示,該系統(tǒng)調(diào)用的監(jiān)控裝置還可以包括啟動(dòng)單元306,如下:接收單元301,還可以用于接收系統(tǒng)調(diào)用的監(jiān)控請求;則此時(shí),啟動(dòng)單元306,可以用于根據(jù)該監(jiān)控請求啟動(dòng)跟蹤進(jìn)程。其中,該跟蹤進(jìn)程具體可以通過ptrace機(jī)制來實(shí)現(xiàn),比如,具體可以在系統(tǒng)處理系統(tǒng)調(diào)用函數(shù)(syscall)軟中斷的例程中插入硬編碼的hook(entry.s),使之能夠攔截所有被追蹤進(jìn)程的syscall調(diào)用和調(diào)出。(2)創(chuàng)建單元302;創(chuàng)建單元302,用于根據(jù)該標(biāo)識創(chuàng)建用戶進(jìn)程;例如,該創(chuàng)建單元302,具體可以用于將跟蹤進(jìn)程附加至孵化進(jìn)程;通過該孵化進(jìn)程創(chuàng)建子進(jìn)程,該子進(jìn)程繼承該孵化進(jìn)程的內(nèi)容;根據(jù)該標(biāo)識對該子進(jìn)程中的預(yù)設(shè)參數(shù)進(jìn)行修改,得到用戶進(jìn)程。比如,可以根據(jù)該標(biāo)識確定該子進(jìn)程中需要修改的參數(shù),以及相應(yīng)參數(shù)值,然后,根據(jù)該需要修改的參數(shù),以及相應(yīng)參數(shù)值對該子進(jìn)程進(jìn)行修改,得到用戶進(jìn)程。需說明的是,若在用戶進(jìn)程的啟動(dòng)請求中已經(jīng)攜帶了預(yù)設(shè)參數(shù)的值,則此時(shí),可以從該啟動(dòng)請求中該子進(jìn)程中需要修改的參數(shù),以及相應(yīng)參數(shù)值;而如果啟動(dòng)請求中并沒有攜帶該預(yù)設(shè)參數(shù)的值,則此時(shí),可以從其他存儲(chǔ)單位或數(shù)據(jù)庫中獲取到該子進(jìn)程中需要修改的參數(shù),以及相應(yīng)參數(shù)值。其中,該孵化進(jìn)程具體可以為zygote進(jìn)程或其他可以實(shí)現(xiàn)與zygote進(jìn)程類似功能的進(jìn)程,具體可根據(jù)實(shí)際應(yīng)用的需求而定,在此不再贅述。此外,在將該跟蹤進(jìn)程附加至孵化進(jìn)程時(shí),還可以在該跟蹤進(jìn)程中設(shè)置一用于指示對用戶進(jìn)程進(jìn)行追蹤的標(biāo)識,這樣,后續(xù)若發(fā)現(xiàn)有該標(biāo)識,便可以對用戶進(jìn)程進(jìn)行追蹤,即:該創(chuàng)建單元302,還可以用于在將該跟蹤進(jìn)程附加至孵化進(jìn)程時(shí),在該跟蹤進(jìn)程中設(shè)置相應(yīng)的標(biāo)識,該標(biāo)識用于指示是否對子進(jìn)程進(jìn)行追蹤。(3)追蹤單元303;追蹤單元303,用于對該用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息;例如,該追蹤單元303,具體可以用于確定該標(biāo)識指示對用戶進(jìn)程進(jìn)行追蹤時(shí),將該跟蹤進(jìn)程附加至該用戶進(jìn)程,使得該跟蹤進(jìn)程對該用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息,等等。(4)獲取單元304;獲取單元304,用于當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息;例如,該獲取單元304,具體可以用于當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),通過跟蹤進(jìn)程接收來自內(nèi)核空間的系統(tǒng)調(diào)用信息。比如,以用戶進(jìn)程K為例,則當(dāng)用戶進(jìn)程K調(diào)用內(nèi)核空間的某個(gè)syscall時(shí),內(nèi)核空間便會(huì)向附加(attach)到該用戶進(jìn)程K的進(jìn)程發(fā)送信號,即會(huì)向追蹤進(jìn)程發(fā)送信號,其中,該信號攜帶系統(tǒng)調(diào)用信息。其中,該系統(tǒng)調(diào)用信息可以包括系統(tǒng)調(diào)用函數(shù)標(biāo)識,比如名稱和/或調(diào)用號等,還可以包括系統(tǒng)調(diào)用的時(shí)間、以及存儲(chǔ)位置等。(5)監(jiān)控單元305;監(jiān)控單元305,用于基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控。例如,該監(jiān)控單元305可以包括讀取子單元、分析子單元和控制子單元,如下:讀取子單元,用于讀取系統(tǒng)調(diào)用函數(shù)的函數(shù)號。比如,該讀取子單元,可以用于從CPU的寄存器中讀取系統(tǒng)調(diào)用函數(shù)的函數(shù)號,等等。分析子單元,用于根據(jù)該函數(shù)號確定需要對該函數(shù)的調(diào)用進(jìn)行控制時(shí),對該系統(tǒng)調(diào)用信息進(jìn)行分析,得到分析結(jié)果??刂谱訂卧糜诟鶕?jù)該分析結(jié)果對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行控制,例如,可以如下:控制子單元,具體用于在根據(jù)該分析結(jié)果確定該用戶進(jìn)程具有調(diào)用該函數(shù)的權(quán)限時(shí),允許該用戶進(jìn)程調(diào)用該函數(shù);在根據(jù)該分析結(jié)果確定該用戶進(jìn)程不具有調(diào)用該函數(shù)的權(quán)限時(shí),阻止該用戶進(jìn)程調(diào)用該函數(shù)。具體實(shí)施時(shí),以上各個(gè)單元可以作為獨(dú)立的實(shí)體來實(shí)現(xiàn),也可以進(jìn)行任意組合,作為同一或若干個(gè)實(shí)體來實(shí)現(xiàn),以上各個(gè)單元的具體實(shí)施可參見前面的方法實(shí)施例,在此不再贅述。該系統(tǒng)調(diào)用的監(jiān)控裝置具體可以集成在終端中,該終端可以包括手機(jī)、平板電腦或筆記本電腦等設(shè)備。由上可知,本實(shí)施例在接收到用戶進(jìn)程的啟動(dòng)請求時(shí),可以由創(chuàng)建單元302根據(jù)該啟動(dòng)請求中攜帶的需要啟動(dòng)的用戶進(jìn)程的標(biāo)識創(chuàng)建用戶進(jìn)程,并由追蹤單元303對該用戶進(jìn)程進(jìn)行追蹤,然后,當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),由獲取單元304獲取系統(tǒng)調(diào)用信息,并由監(jiān)控單元305基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控;由于該方案的大部分邏輯都在用戶空間完成,而無需對內(nèi)核空間的數(shù)據(jù)進(jìn)行修改,因此,實(shí)現(xiàn)較為簡單;而且,由于該方案無需基于系統(tǒng)漏洞,所以,相對于現(xiàn)有的方案而言,適配性、穩(wěn)定性和兼容性也得到大大地提高。實(shí)施例四、相應(yīng)的,本發(fā)明實(shí)施例還提供一種終端,如圖4所示,該終端可以包括射頻(RF,RadioFrequency)電路401、包括有一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器402、輸入單元403、顯示單元404、傳感器405、音頻電路406、無線保真(WiFi,WirelessFidelity)模塊407、包括有一個(gè)或者一個(gè)以上處理核心的處理器408、以及電源409等部件。本領(lǐng)域技術(shù)人員可以理解,圖4中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:RF電路401可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個(gè)或者一個(gè)以上處理器408處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路401包括但不限于天線、至少一個(gè)放大器、調(diào)諧器、一個(gè)或多個(gè)振蕩器、用戶身份模塊(SIM,SubscriberIdentityModule)卡、收發(fā)信機(jī)、耦合器、低噪聲放大器(LNA,LowNoiseAmplifier)、雙工器等。此外,RF電路401還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動(dòng)通訊系統(tǒng)(GSM,GlobalSystemofMobilecommunication)、通用分組無線服務(wù)(GPRS,GeneralPacketRadioService)、碼分多址(CDMA,CodeDivisionMultipleAccess)、寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)、長期演進(jìn)(LTE,LongTermEvolution)、電子郵件、短消息服務(wù)(SMS,ShortMessagingService)等。存儲(chǔ)器402可用于存儲(chǔ)軟件程序以及模塊,處理器408通過運(yùn)行存儲(chǔ)在存儲(chǔ)器402的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器402可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器402可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。相應(yīng)地,存儲(chǔ)器402還可以包括存儲(chǔ)器控制器,以提供處理器408和輸入單元403對存儲(chǔ)器402的訪問。輸入單元403可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號輸入。具體地,在一個(gè)具體的實(shí)施例中,輸入單元403可包括觸敏表面以及其他輸入設(shè)備。觸敏表面,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面上或在觸敏表面附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置??蛇x的,觸敏表面可包括觸摸檢測裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器408,并能接收處理器408發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸敏表面。除了觸敏表面,輸入單元403還可以包括其他輸入設(shè)備。具體地,其他輸入設(shè)備可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。顯示單元404可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來構(gòu)成。顯示單元404可包括顯示面板,可選的,可以采用液晶顯示器(LCD,LiquidCrystalDisplay)、有機(jī)發(fā)光二極管(OLED,OrganicLight-EmittingDiode)等形式來配置顯示面板。進(jìn)一步的,觸敏表面可覆蓋顯示面板,當(dāng)觸敏表面檢測到在其上或附近的觸摸操作后,傳送給處理器408以確定觸摸事件的類型,隨后處理器408根據(jù)觸摸事件的類型在顯示面板上提供相應(yīng)的視覺輸出。雖然在圖4中,觸敏表面與顯示面板是作為兩個(gè)獨(dú)立的部件來實(shí)現(xiàn)輸入和輸入功能,但是在某些實(shí)施例中,可以將觸敏表面與顯示面板集成而實(shí)現(xiàn)輸入和輸出功能。終端還可包括至少一種傳感器405,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板的亮度,接近傳感器可在終端移動(dòng)到耳邊時(shí),關(guān)閉顯示面板和/或背光。作為運(yùn)動(dòng)傳感器的一種,重力加速度傳感器可檢測各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測出重力的大小及方向,可用于識別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識別相關(guān)功能(比如計(jì)步器、敲擊)等;至于終端還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。音頻電路406、揚(yáng)聲器,傳聲器可提供用戶與終端之間的音頻接口。音頻電路406可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P(yáng)聲器,由揚(yáng)聲器轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路406接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器408處理后,經(jīng)RF電路401以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器402以便進(jìn)一步處理。音頻電路406還可能包括耳塞插孔,以提供外設(shè)耳機(jī)與終端的通信。WiFi屬于短距離無線傳輸技術(shù),終端通過WiFi模塊407可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖4示出了WiFi模塊407,但是可以理解的是,其并不屬于終端的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。處理器408是終端的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器402內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器402內(nèi)的數(shù)據(jù),執(zhí)行終端的各種功能和處理數(shù)據(jù),從而對手機(jī)進(jìn)行整體監(jiān)控。可選的,處理器408可包括一個(gè)或多個(gè)處理核心;優(yōu)選的,處理器408可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器408中。終端還包括給各個(gè)部件供電的電源409(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器408邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。電源409還可以包括一個(gè)或一個(gè)以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。盡管未示出,終端還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。具體在本實(shí)施例中,終端中的處理器408會(huì)按照如下的指令,將一個(gè)或一個(gè)以上的應(yīng)用程序的進(jìn)程對應(yīng)的可執(zhí)行文件加載到存儲(chǔ)器402中,并由處理器408來運(yùn)行存儲(chǔ)在存儲(chǔ)器402中的應(yīng)用程序,從而實(shí)現(xiàn)各種功能:接收用戶進(jìn)程的啟動(dòng)請求,該啟動(dòng)請求中攜帶需要啟動(dòng)的用戶進(jìn)程的標(biāo)識;根據(jù)該標(biāo)識創(chuàng)建用戶進(jìn)程,并對該用戶進(jìn)程進(jìn)行追蹤,得到追蹤信息;當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息;基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控。例如,可以通過設(shè)置一追蹤進(jìn)程(或稱為攔截進(jìn)程)來執(zhí)行該系統(tǒng)調(diào)用的監(jiān)控操作方法的相關(guān)操作,即處理器408可以執(zhí)行如下操作:接收系統(tǒng)調(diào)用的監(jiān)控請求,根據(jù)該監(jiān)控請求啟動(dòng)跟蹤進(jìn)程。這樣,后續(xù)便可以通過該追蹤進(jìn)程接收用戶進(jìn)程的啟動(dòng)請求,以及通過該追蹤進(jìn)程來實(shí)現(xiàn)對用戶進(jìn)程的追蹤,比如,可以將跟蹤進(jìn)程附加(attach)至孵化進(jìn)程,然后,通過該孵化進(jìn)程創(chuàng)建子進(jìn)程(該子進(jìn)程繼承該孵化進(jìn)程的內(nèi)容),并根據(jù)該標(biāo)識對該子進(jìn)程中的預(yù)設(shè)參數(shù)進(jìn)行修改,得到用戶進(jìn)程,與此同時(shí),還可以在該跟蹤進(jìn)程中設(shè)置相應(yīng)的用于指示對用戶進(jìn)程進(jìn)行追蹤的標(biāo)識,比如PTRACE_O_TRACEFORK,使得追蹤進(jìn)程可以自動(dòng)附加至該用戶進(jìn)程上,然后,在用戶進(jìn)程調(diào)用syscall時(shí),通過追蹤進(jìn)程接收內(nèi)核空間發(fā)送的攜帶系統(tǒng)調(diào)用信息的信號,這樣,追蹤進(jìn)程便可以基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控,其中,監(jiān)控的方式具體可以如下:讀取系統(tǒng)調(diào)用函數(shù)的調(diào)用號,根據(jù)該調(diào)用號確定需要對該函數(shù)的調(diào)用進(jìn)行控制時(shí),對該系統(tǒng)調(diào)用信息進(jìn)行分析,得到分析結(jié)果根據(jù)該分析結(jié)果對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行控制,比如,若根據(jù)該分析結(jié)果確定該用戶進(jìn)程具有調(diào)用該函數(shù)的權(quán)限,則允許該用戶進(jìn)程調(diào)用該函數(shù),反之,若根據(jù)該分析結(jié)果確定該用戶進(jìn)程不具有調(diào)用該函數(shù)的權(quán)限,則阻止該用戶進(jìn)程調(diào)用該函數(shù),等等。以上各個(gè)操作的具體實(shí)施可參見前面的實(shí)施例,在此不再贅述。由上可知,本實(shí)施例的終端在接收到用戶進(jìn)程的啟動(dòng)請求時(shí),可以根據(jù)該啟動(dòng)請求中攜帶的需要啟動(dòng)的用戶進(jìn)程的標(biāo)識創(chuàng)建用戶進(jìn)程,并對該用戶進(jìn)程進(jìn)行追蹤,然后,當(dāng)追蹤信息指示該用戶進(jìn)程在進(jìn)行系統(tǒng)調(diào)用時(shí),獲取系統(tǒng)調(diào)用信息,并基于該系統(tǒng)調(diào)用信息對該用戶進(jìn)程的系統(tǒng)調(diào)用操作進(jìn)行監(jiān)控;由于該方案的大部分邏輯都在用戶空間完成,而無需對內(nèi)核空間的數(shù)據(jù)進(jìn)行修改,因此,實(shí)現(xiàn)較為簡單;而且,由于該方案無需基于系統(tǒng)漏洞,所以,相對于現(xiàn)有的方案而言,適配性、穩(wěn)定性和兼容性也得到大大地提高。本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器(ROM,ReadOnlyMemory)、隨機(jī)存取記憶體(RAM,RandomAccessMemory)、磁盤或光盤等。以上對本發(fā)明實(shí)施例所提供的一種系統(tǒng)調(diào)用的監(jiān)控方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3