所述修改調(diào)用模塊包括:
[0095]響應(yīng)申請(qǐng)子模塊,用于響應(yīng)于所述應(yīng)用程序的運(yùn)行指令,向所述孵化器申請(qǐng)進(jìn)程運(yùn)行環(huán)境;
[0096]植入運(yùn)行子模塊,用于向所述進(jìn)程運(yùn)行環(huán)境中植入引導(dǎo)模塊并運(yùn)行之;
[0097]信息修改子模塊,用于通過(guò)所述引導(dǎo)模塊對(duì)所述虛擬機(jī)中的環(huán)境配置信息進(jìn)行修改;
[0098]調(diào)用運(yùn)行子模塊,用于根據(jù)所述環(huán)境配置信息調(diào)用所述監(jiān)控模塊,以監(jiān)控待運(yùn)行應(yīng)用程序的進(jìn)程的運(yùn)行。
[0099]進(jìn)一步的,所述修改調(diào)用模塊還包括
[0100]環(huán)境創(chuàng)建子模塊,用于通過(guò)所述孵化器創(chuàng)建適于所述待運(yùn)行應(yīng)用程序的進(jìn)程運(yùn)行的進(jìn)程運(yùn)行環(huán)境。
[0101]具體的,所述環(huán)境創(chuàng)建子模塊包括:
[0102]構(gòu)造運(yùn)行單元,用于利用系統(tǒng)原孵化器構(gòu)造用于孵化進(jìn)程運(yùn)行環(huán)境的所述孵化器;
[0103]環(huán)境建立單元,用于通過(guò)所述孵化器進(jìn)行孵化,以為所述待運(yùn)行應(yīng)用程序建立所述進(jìn)程運(yùn)行環(huán)境。
[0104]具體的,所述構(gòu)造運(yùn)行單元包括:
[0105]控制運(yùn)行子單元,用于運(yùn)行控制模塊;
[0106]構(gòu)造孵化器子單元,用于利用所述控制模塊,以所述系統(tǒng)原孵化器為基礎(chǔ)構(gòu)造所述孵化器;
[0107]建立連接子單元,用于建立所述控制模塊與所述孵化器的連接。
[0108]具體的,所述控制模塊基于所述孵化器所生成的套接口建立與所述孵化器的連接。
[0109]進(jìn)一步的,所述修改調(diào)用模塊還包括:
[0110]加載啟動(dòng)子模塊,用于利用所述引導(dǎo)模塊將分發(fā)模塊加載至所述孵化器中,以使所述分發(fā)模塊隨所述待運(yùn)行應(yīng)用程序的進(jìn)程的啟動(dòng)進(jìn)入所述待運(yùn)行應(yīng)用程序的進(jìn)程中。
[0111]具體的,所述調(diào)用執(zhí)行模塊包括:
[0112]識(shí)別分配單元,用于所述監(jiān)控模塊識(shí)別所述應(yīng)用程序的進(jìn)程的特定指令,通過(guò)所述分發(fā)模塊為相關(guān)特定指令分配相應(yīng)的鉤子函數(shù)。
[0113]具體的,所述監(jiān)控模塊被注冊(cè)為服務(wù)進(jìn)程,以所述鉤子函數(shù)關(guān)聯(lián)所述應(yīng)用程序的運(yùn)行進(jìn)程的調(diào)用指令來(lái)實(shí)現(xiàn)對(duì)所述應(yīng)用程序的活動(dòng)監(jiān)控。
[0114]具體的,所述監(jiān)控模塊包括識(shí)別重定向單元,所述識(shí)別重定向單元,用于當(dāng)所述監(jiān)控模塊監(jiān)控到所述應(yīng)用程序的進(jìn)程需要調(diào)用未匹配的資源時(shí),重定向相關(guān)調(diào)用指令的資源應(yīng)用,以為所述應(yīng)用程序的進(jìn)程的運(yùn)行提供正確的資源。
[0115]具體的,所述監(jiān)控模塊包括識(shí)別返回單元,所述識(shí)別返回單元,用于當(dāng)所述監(jiān)控模塊監(jiān)控到所述應(yīng)用程序的進(jìn)程進(jìn)行未經(jīng)授權(quán)的訪問(wèn)時(shí),向相關(guān)調(diào)用指令返回自定義數(shù)據(jù)。
[0116]相應(yīng)的,本發(fā)明還提供了一種應(yīng)用程序進(jìn)程監(jiān)控系統(tǒng),其包括:
[0117]信息修改模塊,用于響應(yīng)于所述應(yīng)用程序的運(yùn)行指令,修改虛擬機(jī)中的環(huán)境配置信息,使所述虛擬機(jī)適于調(diào)用監(jiān)控模塊,以監(jiān)控待運(yùn)行應(yīng)用程序的進(jìn)程的運(yùn)行;
[0118]識(shí)別引導(dǎo)模塊,用于所述監(jiān)控模塊識(shí)別所述應(yīng)用程序的進(jìn)程的特定指令,引導(dǎo)調(diào)用與所述特定指令相對(duì)應(yīng)的鉤子函數(shù);
[0119]執(zhí)行回調(diào)模塊,用于完成所述鉤子函數(shù)的執(zhí)行,回調(diào)執(zhí)行所述應(yīng)用程序進(jìn)程。
[0120]具體的,所述虛擬機(jī)的環(huán)境配置信息的設(shè)置項(xiàng),包括用于引導(dǎo)執(zhí)行所述監(jiān)控模塊的對(duì)象屬性與對(duì)應(yīng)
[0121 ] 該對(duì)象屬性而被引導(dǎo)執(zhí)行的指向信息。
[0122]具體的,所述對(duì)象屬性主要用于支持執(zhí)行回調(diào)函數(shù)表,所述指向信息主要用于分配所述鉤子函數(shù)的分發(fā)函數(shù)。
[0123]具體的,所述信息修改模塊包括:
[0124]申請(qǐng)子模塊,用于響應(yīng)于所述應(yīng)用程序的運(yùn)行指令,向孵化器申請(qǐng)進(jìn)程運(yùn)行環(huán)境;
[0125]植入子模塊,用于向所述進(jìn)程運(yùn)行環(huán)境中植入引導(dǎo)模塊并運(yùn)行之;
[0126]修改子模塊,用于通過(guò)所述引導(dǎo)模塊對(duì)所述虛擬機(jī)中的環(huán)境配置信息進(jìn)行修改;
[0127]調(diào)用子模塊,用于根據(jù)所述環(huán)境配置信息調(diào)用所述監(jiān)控模塊,以監(jiān)控待運(yùn)行應(yīng)用程序的進(jìn)程的運(yùn)行。
[0128]進(jìn)一步的,所述信息修改模塊還包括:
[0129]創(chuàng)建子模塊,用于通過(guò)所述孵化器創(chuàng)建適于所述待運(yùn)行應(yīng)用程序的進(jìn)程運(yùn)行的進(jìn)程運(yùn)行環(huán)境。
[0130]具體的,所述創(chuàng)建子模塊包括:
[0131]構(gòu)造單元,用于利用系統(tǒng)原孵化器構(gòu)造用于孵化進(jìn)程運(yùn)行環(huán)境的所述孵化器;
[0132]建立單元,用于通過(guò)所述孵化器進(jìn)行孵化,以為所述待運(yùn)行應(yīng)用程序建立所述進(jìn)程運(yùn)行環(huán)境。
[0133]具體的,所述構(gòu)造單元包括:
[0134]運(yùn)行子單元,用于運(yùn)行控制模塊;
[0135]孵化器構(gòu)造子單元,用于利用所述控制模塊,以所述系統(tǒng)原孵化器為基礎(chǔ)構(gòu)造所述孵化器;
[0136]連接建立子單元,用于建立所述控制模塊與所述孵化器的連接。
[0137]具體的,所述控制模塊基于所述孵化器所生成的套接口建立與所述孵化器的連接。
[0138]進(jìn)一步的,所述信息修改模塊還包括:
[0139]加載子模塊,用于利用所述引導(dǎo)模塊將分發(fā)模塊加載至所述孵化器中,以使所述分發(fā)模塊隨所述待運(yùn)行應(yīng)用程序的進(jìn)程的啟動(dòng)進(jìn)入所述待運(yùn)行應(yīng)用程序的進(jìn)程中。
[0140]具體的,所述識(shí)別引導(dǎo)模塊包括:
[0141]分配單元,用于所述監(jiān)控模塊識(shí)別所述應(yīng)用程序的進(jìn)程的特定指令,通過(guò)所述分發(fā)模塊為相關(guān)特定指令分配相應(yīng)的鉤子函數(shù)。
[0142]具體的,所述監(jiān)控模塊被注冊(cè)為服務(wù)進(jìn)程,以所述鉤子函數(shù)關(guān)聯(lián)所述應(yīng)用程序的運(yùn)行進(jìn)程的調(diào)用指令來(lái)實(shí)現(xiàn)對(duì)所述應(yīng)用程序的活動(dòng)監(jiān)控。
[0143]具體的,所述監(jiān)控模塊包括重定向單元,所述重定向單元,用于當(dāng)所述監(jiān)控模塊監(jiān)控到所述應(yīng)用程序的進(jìn)程需要調(diào)用未匹配的資源時(shí),重定向相關(guān)調(diào)用指令的資源應(yīng)用,以為所述應(yīng)用程序的進(jìn)程的運(yùn)行提供正確的資源。
[0144]具體的,所述監(jiān)控模塊包括數(shù)據(jù)返回單元,所述數(shù)據(jù)返回單元,用于當(dāng)所述監(jiān)控模塊監(jiān)控到所述應(yīng)用程序的進(jìn)程進(jìn)行未經(jīng)授權(quán)的訪問(wèn)時(shí),向相關(guān)調(diào)用指令返回自定義數(shù)據(jù)。
[0145]與現(xiàn)有技術(shù)相比,本發(fā)明具備如下優(yōu)點(diǎn):
[0146]本發(fā)明可修改虛擬機(jī)中的環(huán)境配置信息,使所述虛擬機(jī)適于調(diào)用監(jiān)控模塊,以監(jiān)控待運(yùn)行應(yīng)用程序的進(jìn)程的運(yùn)行;所述監(jiān)控模塊識(shí)別所述應(yīng)用程序的進(jìn)程的特定指令,再引導(dǎo)調(diào)用與所述特定指令相對(duì)應(yīng)的鉤子函數(shù);該過(guò)程可直接控制所述虛擬機(jī)的分發(fā)與原始函數(shù)的調(diào)用,從而實(shí)現(xiàn)對(duì)待運(yùn)行應(yīng)用程序的進(jìn)程運(yùn)行的監(jiān)控。且該方式過(guò)程無(wú)需修改待運(yùn)行應(yīng)用程序及無(wú)需打包apk,即使反射間接調(diào)用也可實(shí)現(xiàn)監(jiān)控?cái)r截,同時(shí),該方式過(guò)程也無(wú)需修改系統(tǒng)源代碼,便于各版本之間的迀移。
[0147]同時(shí),本發(fā)明利用Android系統(tǒng)固有的原孵化器Zygote構(gòu)造出新的孵化器,來(lái)使新的孵化器獨(dú)立于系統(tǒng)原孵化器,然后通過(guò)控制活動(dòng)管理服務(wù)的請(qǐng)求的轉(zhuǎn)向,而實(shí)現(xiàn)應(yīng)用程序在由本發(fā)明構(gòu)造的孵化器中運(yùn)行。一般非法入侵是基于系統(tǒng)已知的機(jī)制而實(shí)現(xiàn)的,由于新的孵化器相對(duì)于系統(tǒng)原孵化器而獨(dú)立,惡意程序由于不能識(shí)別新的孵化器的內(nèi)部機(jī)制,因此,即使惡意程序在系統(tǒng)已Root的情況下企圖深入系統(tǒng)底層對(duì)Zygote進(jìn)行破壞,或者企圖通過(guò)諸如ELF文件感染的方式實(shí)現(xiàn)病毒傳播,這些企圖均可能對(duì)新的孵化器失效,由于新的孵化器衍生進(jìn)程加載的應(yīng)用程序的運(yùn)行也就更為安全。
[0148]相應(yīng)的,構(gòu)造出本發(fā)明的孵化器(非系統(tǒng)原孵化器,即新的孵化器),并且由本發(fā)明的控制模塊實(shí)現(xiàn)了活動(dòng)管理服務(wù)所發(fā)起的請(qǐng)求的管理,其本質(zhì)即控制了應(yīng)用程序的運(yùn)行進(jìn)程的源頭,而由于孵化器有相對(duì)的獨(dú)立性,因此,由孵化器孵化出來(lái)的進(jìn)程空間,在加載了應(yīng)用程序之后,便成為一個(gè)沙箱。輔以對(duì)應(yīng)用程序的事件行為實(shí)施監(jiān)控的監(jiān)控模塊之后,自然可以起到更為卓越的沙箱監(jiān)控效果。
[0149]另外,本發(fā)明進(jìn)而通過(guò)在孵化器構(gòu)造過(guò)程中植入外部調(diào)用指令,通過(guò)該外部調(diào)用指令可以實(shí)現(xiàn)對(duì)監(jiān)控模塊的加載,使加載的監(jiān)控模塊先于應(yīng)用程序而啟動(dòng),從而確保事件行為監(jiān)控效果。由于孵化器實(shí)質(zhì)上是系統(tǒng)原孵化器的副本,因此適用對(duì)forkO函數(shù)的調(diào)用,因此孵化器才能夠用于孵化適于應(yīng)用程序運(yùn)行的新進(jìn)程空間。本發(fā)明的孵化器在構(gòu)造過(guò)程中便已植入外部調(diào)用指令,通過(guò)該外部調(diào)用指令加載的模塊,均可以隨同孵化器為響應(yīng)請(qǐng)求所進(jìn)行的孵化而被復(fù)制,進(jìn)而確保監(jiān)控模塊在每個(gè)由孵化器產(chǎn)生的新進(jìn)程中其作用,可獲得較好的運(yùn)行可靠性。
[0150]因此,本發(fā)明不僅具有從底層到應(yīng)用層均進(jìn)行安全防護(hù)的效果,實(shí)現(xiàn)對(duì)進(jìn)程進(jìn)行靈活中轉(zhuǎn)及控制,且無(wú)需修改待運(yùn)行應(yīng)用程序及無(wú)需打包apk,即使反射間接調(diào)用也可實(shí)現(xiàn)監(jiān)控?cái)r截;同時(shí),該方式過(guò)程也無(wú)需修改系統(tǒng)源代碼,可較好的實(shí)現(xiàn)各版本之間的迀移。
【【附圖說(shuō)明】】
[0151]圖1為本發(fā)明中應(yīng)用程序進(jìn)程監(jiān)控方法的一個(gè)實(shí)施例的程序流程圖;
[0152]圖2為本發(fā)明中應(yīng)用程序進(jìn)程監(jiān)控方法的一個(gè)實(shí)施例的程序流程圖;
[0153]圖3為本發(fā)明中支付安全沙箱實(shí)現(xiàn)方法的一個(gè)實(shí)施例的程序流程圖;
[0154]圖4為本發(fā)明中應(yīng)用程序進(jìn)程監(jiān)控系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)框圖;
[0155]圖5為本發(fā)明中應(yīng)用程序進(jìn)程監(jiān)控系統(tǒng)中信息修改模塊的一個(gè)實(shí)施例的結(jié)構(gòu)框圖;
[0156]圖6為本發(fā)明中應(yīng)用程序進(jìn)程監(jiān)控系統(tǒng)中信息修改模塊的一個(gè)實(shí)施例的結(jié)構(gòu)框圖;
[0157]圖7為本發(fā)明中應(yīng)用程序進(jìn)程監(jiān)控系統(tǒng)中創(chuàng)建子模塊的一個(gè)實(shí)施例的結(jié)構(gòu)框圖;
[0158]圖8為本發(fā)明中應(yīng)用程序進(jìn)程監(jiān)控系統(tǒng)中構(gòu)造單元的一個(gè)實(shí)施例的結(jié)構(gòu)框圖;
[0159]圖9為本發(fā)明中支付安全沙箱實(shí)現(xiàn)系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)框圖。
【【具體實(shí)施方式】】
[0160]下面結(jié)合附圖和示例性實(shí)施例對(duì)本發(fā)明作進(jìn)一步地描述,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。此外,如果已知技術(shù)的詳細(xì)描述對(duì)于示出本發(fā)明的特征是不必要的,則將其省略。
[0161]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說(shuō)明書(shū)中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無(wú)線連接或無(wú)線耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
[0162]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ)),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ),應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會(huì)用理想化或過(guò)于正式的含義來(lái)解釋。
[0163]本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無(wú)線信號(hào)接收器的設(shè)備,其僅具備無(wú)發(fā)射能力的無(wú)線信號(hào)接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒(méi)有多線路顯示器的蜂窩或其他通信設(shè)備;PCS (Personal Communicat1ns Service,個(gè)人通信系統(tǒng)),其可以組合語(yǔ)音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個(gè)人數(shù)字助理),其可以包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問(wèn)、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或GPS (Global Posit1ning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運(yùn)輸、安裝在交通工具(航空、海運(yùn)和/或陸地)中的,或者適合于和/或配置為在本地運(yùn)行,和/或以分布形式,運(yùn)行在地球和/或空間的任何其他位置運(yùn)行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂(lè)/視頻播放終端,例如可以是PDA、MID(Mobile Internet Device,移動(dòng)互聯(lián)網(wǎng)設(shè)備)和/或具有音樂(lè)/視頻播放功能的移動(dòng)電話,也可以是智能電視、機(jī)頂盒等設(shè)備。
[0164]本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的服務(wù)器、云端、遠(yuǎn)端網(wǎng)絡(luò)設(shè)備等概念,具有等同效果,其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或多個(gè)服務(wù)器構(gòu)成的云。在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級(jí)虛擬計(jì)算機(jī)。本發(fā)明的實(shí)施例中,遠(yuǎn)端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過(guò)任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動(dòng)通信、基于TCP/IP、UDP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無(wú)線傳輸方式。
[0165]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明所稱的“應(yīng)用”、“應(yīng)用程序”、“應(yīng)用軟件”以及類似表達(dá)的概念,是業(yè)內(nèi)技術(shù)人員所公知的相同概念,是指由一系列計(jì)算機(jī)指令及相關(guān)數(shù)據(jù)資源有機(jī)構(gòu)造的適于電子運(yùn)行的計(jì)算機(jī)軟件。除非特別指定,這種命名本身不受編程語(yǔ)言種類、級(jí)別,也不受