對(duì)象(EPROCESS,KPR0CESS和PEB結(jié)構(gòu))。
[0213]4、為新建進(jìn)程分配地址空間。
[0214]5、建立進(jìn)程的主線程的線程執(zhí)行對(duì)象(ETHREAD,KTHREAD和TEBstructures)。
[0215]6、為主線程分配堆棧。
[0216]7、建立進(jìn)程的主線程的執(zhí)行上下文。
[0217]8、通知Win32子系統(tǒng)有關(guān)該新進(jìn)程的創(chuàng)建情況。
[0218]為確保這些步驟中的任何一步的成功,所有其前面的步驟必須是成功執(zhí)行的(如不能夠在沒有一個(gè)可執(zhí)行區(qū)句柄的情況下建立一個(gè)可執(zhí)行進(jìn)程對(duì)象;沒有文件句柄的情況下你無法映射一個(gè)可執(zhí)行區(qū),等等)。
[0219]因此,如果退出任何這些步驟,所有后面的步驟也會(huì)失敗,以至于整個(gè)進(jìn)程創(chuàng)建會(huì)失敗。
[0220]上面所有的步驟都可以通過調(diào)用某些API的方式來實(shí)現(xiàn),這是可以理解的。因此,為了監(jiān)控進(jìn)程創(chuàng)建,可以鉤住這些API函數(shù)。
[0221]例如,為了監(jiān)視進(jìn)程的創(chuàng)建,可以掛鉤NtCreateFile O和NtOpenFile O,或者鉤住NtCreateSect1nO,不經(jīng)調(diào)用這些API —般是無法運(yùn)行任何可執(zhí)行文件的。
[0222]進(jìn)一步而言,SSDT表(System Services Descriptor Table,系統(tǒng)服務(wù)描述符表)可以將Ring3的Win32 API和RingO的API聯(lián)系起來,可以基于SSDT表的特性,設(shè)計(jì)鉤子攔截進(jìn)程創(chuàng)建相關(guān)API調(diào)用,實(shí)現(xiàn)進(jìn)程的攔截。
[0223]若攔截到的啟動(dòng)項(xiàng)目與配置文件中的啟動(dòng)項(xiàng)目匹配,可以認(rèn)為該啟動(dòng)項(xiàng)目為目標(biāo)啟動(dòng)項(xiàng)的啟動(dòng)項(xiàng)目,可以禁止該啟動(dòng)項(xiàng)目的調(diào)用,以禁止目標(biāo)啟動(dòng)項(xiàng)的啟動(dòng)。
[0224]若攔截到的啟動(dòng)項(xiàng)目與配置文件中的啟動(dòng)項(xiàng)目匹配,可以認(rèn)為該啟動(dòng)項(xiàng)目不為目標(biāo)啟動(dòng)項(xiàng)的啟動(dòng)項(xiàng)目,可以允許該啟動(dòng)項(xiàng)目的調(diào)用,以放行目標(biāo)啟動(dòng)項(xiàng)的啟動(dòng)。
[0225]本發(fā)明實(shí)施例在操作系統(tǒng)啟動(dòng)時(shí),在內(nèi)核模式中攔截、禁止啟動(dòng)項(xiàng)的啟動(dòng),一方面在啟動(dòng)項(xiàng)還沒完全啟動(dòng)時(shí)禁止啟動(dòng),減少了啟動(dòng)該啟動(dòng)項(xiàng)所消耗的系統(tǒng)資源,另一方面,減少了啟動(dòng)項(xiàng)繞開禁止操作的幾率,進(jìn)一步提高了禁止啟動(dòng)的效率。
[0226]對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施例所必須的。
[0227]參照?qǐng)D5,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種啟動(dòng)項(xiàng)的處理裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:
[0228]接收模塊501,適于接收終端在檢測(cè)到新增應(yīng)用程序和/或啟動(dòng)項(xiàng)時(shí)發(fā)送的處理請(qǐng)求,所述處理請(qǐng)求中可以包括應(yīng)用程序標(biāo)識(shí)和/或啟動(dòng)項(xiàng)信息、第一系統(tǒng)環(huán)境信息;
[0229]判斷模塊502,適于根據(jù)所述處理請(qǐng)求判斷所述應(yīng)用程序和/或啟動(dòng)項(xiàng)是否為目標(biāo)啟動(dòng)項(xiàng);所述目標(biāo)啟動(dòng)項(xiàng)包括頑固啟動(dòng)項(xiàng)、關(guān)聯(lián)啟動(dòng)項(xiàng)中的至少一者;
[0230]確定模塊503,適于根據(jù)判斷的結(jié)果確定允許或禁止所述應(yīng)用程序和/或啟動(dòng)項(xiàng)啟動(dòng)。
[0231]在具體實(shí)現(xiàn)中,所述頑固啟動(dòng)項(xiàng)可以包括在先進(jìn)行禁止啟動(dòng)操作,且禁止啟動(dòng)失敗的啟動(dòng)項(xiàng)。
[0232]在本發(fā)明的一種可選實(shí)施例中,所述頑固啟動(dòng)項(xiàng)可以通過以下方式識(shí)別:
[0233]采集啟動(dòng)項(xiàng);
[0234]判斷當(dāng)前采集的啟動(dòng)項(xiàng)與在先采集的啟動(dòng)項(xiàng)之間的新增的啟動(dòng)項(xiàng)目相關(guān)的啟動(dòng)項(xiàng)為頑固啟動(dòng)項(xiàng)。
[0235]在本發(fā)明的一種可選實(shí)施例中,所述判斷模塊502還可以適于:
[0236]判斷應(yīng)用程序和/或啟動(dòng)項(xiàng)是否與在先采集的頑固啟動(dòng)項(xiàng)相同;若是,則判斷所述應(yīng)用程序和/或啟動(dòng)項(xiàng)為頑固啟動(dòng)項(xiàng)。
[0237]在本發(fā)明的一種可選實(shí)施例中,所述確定模塊503還可以適于:
[0238]當(dāng)所述應(yīng)用程序和/或啟動(dòng)項(xiàng)為頑固啟動(dòng)項(xiàng)時(shí),禁止所述應(yīng)用程序和/或啟動(dòng)項(xiàng)啟動(dòng)。
[0239]在本發(fā)明的一種可選實(shí)施例中,所述處理請(qǐng)求中可以包括所述終端的第一系統(tǒng)環(huán)境信息,所述判斷模塊502還可以適于:
[0240]當(dāng)所述第一操作信息與預(yù)設(shè)的第二系統(tǒng)環(huán)境信息匹配時(shí),判斷所述應(yīng)用程序和/或啟動(dòng)項(xiàng)與預(yù)設(shè)的特征啟動(dòng)項(xiàng)是否匹配;若是,則判斷所述應(yīng)用程序和/或啟動(dòng)項(xiàng)為關(guān)聯(lián)啟動(dòng)項(xiàng);
[0241]其中,所述特征啟動(dòng)項(xiàng)為根據(jù)所述第二系統(tǒng)環(huán)境信息和針對(duì)應(yīng)用程序的報(bào)錯(cuò)信息查找到的錯(cuò)誤禁止啟動(dòng)的啟動(dòng)項(xiàng)。
[0242]在本發(fā)明實(shí)施例的一種可選中示例,所述報(bào)錯(cuò)信息可以包括以下至少一種:
[0243]應(yīng)用程序標(biāo)識(shí)、版本信息、出錯(cuò)信息。
[0244]在本發(fā)明實(shí)施例的一種可選示例中,所述第一系統(tǒng)環(huán)境信息可以包括以下至少一種:
[0245]第一系統(tǒng)版本信息、第一啟動(dòng)項(xiàng)信息、第一應(yīng)用程序信息;
[0246]所述第二系統(tǒng)環(huán)境信息可以包括以下至少一種:
[0247]第二系統(tǒng)版本信息、第二啟動(dòng)項(xiàng)信息、第二應(yīng)用程序信息。
[0248]在本發(fā)明的一種可選實(shí)施例中,所述特征啟動(dòng)項(xiàng)可以通過以下方式查找:
[0249]檢測(cè)在所述第二系統(tǒng)版本信息和/或所述第二應(yīng)用程序信息對(duì)應(yīng)的系統(tǒng)環(huán)境,運(yùn)行或啟動(dòng)所述應(yīng)用程序標(biāo)識(shí)和/或所述版本信息對(duì)應(yīng)的應(yīng)用程序,引起所述出錯(cuò)信息所被禁止啟動(dòng)的啟動(dòng)項(xiàng)。
[0250]在本發(fā)明的一種可選實(shí)施例中,所述第二系統(tǒng)環(huán)境信息與所述第一系統(tǒng)環(huán)境信息可以通過以下方式進(jìn)行匹配:
[0251]判斷第二系統(tǒng)版本信息、第二啟動(dòng)項(xiàng)信息、第二應(yīng)用程序信息中的至少一者,與對(duì)應(yīng)的第一系統(tǒng)版本信息、第一啟動(dòng)項(xiàng)信息、第一應(yīng)用程序信息中的至少一者是否匹配;
[0252]若是,則判斷所述第二系統(tǒng)環(huán)境信息與所述第一系統(tǒng)環(huán)境信息匹配。
[0253]在本發(fā)明的一種可選實(shí)施例中,所述確定模塊503還可以適于:
[0254]當(dāng)所述應(yīng)用程序和/或啟動(dòng)項(xiàng)為關(guān)聯(lián)啟動(dòng)項(xiàng)時(shí),允許所述啟動(dòng)項(xiàng)啟動(dòng)。
[0255]在本發(fā)明的一種可選實(shí)施例中,所述裝置還可以包括如下模塊:
[0256]生成模塊,適于根據(jù)允許或禁止所述應(yīng)用程序和/或啟動(dòng)項(xiàng)啟動(dòng)的結(jié)果生成提示信息;
[0257]發(fā)送模塊,適于向所述終端發(fā)送所述提示信息。
[0258]在具體實(shí)現(xiàn)中,當(dāng)允許所述應(yīng)用程序和/或啟動(dòng)項(xiàng)啟動(dòng)時(shí),所述提示信息為建議允許所述應(yīng)用程序和/或啟動(dòng)項(xiàng)啟動(dòng);
[0259]當(dāng)禁止所述應(yīng)用程序和/或啟動(dòng)項(xiàng)啟動(dòng)時(shí),所述提示信息為建議禁止所述應(yīng)用程序和/或啟動(dòng)項(xiàng)啟動(dòng)。
[0260]對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0261]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0262]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
[0263]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0264]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
[0265]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0266]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的啟動(dòng)項(xiàng)的處理設(shè)備中的一些或者全部部件的一些或者全部功能。本發(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)上提供,或者以任何其他形式提供。
[0267]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(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ā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
[0268]本發(fā)明實(shí)施例公開了 Al、一種啟動(dòng)項(xiàng)的處理方法,包括:
[0269]接收終端在檢測(cè)到新增應(yīng)用程序和/或啟動(dòng)項(xiàng)時(shí)發(fā)送的處理請(qǐng)求,所述處理請(qǐng)求中包括應(yīng)用程序標(biāo)識(shí)和/或啟動(dòng)項(xiàng)信息、第一系統(tǒng)環(huán)境信息;
[0270]根據(jù)所述處理請(qǐng)求判斷所述應(yīng)用程序和/或啟動(dòng)項(xiàng)是否為目標(biāo)啟動(dòng)項(xiàng);所述目標(biāo)啟動(dòng)項(xiàng)包括頑固啟動(dòng)項(xiàng)、關(guān)聯(lián)啟動(dòng)項(xiàng)中的至少一者;
[0271]根據(jù)判斷的結(jié)果確定允許或禁止所述應(yīng)用程序和/或啟動(dòng)項(xiàng)啟動(dòng)。
[0272]A2、如Al所述的方法,所述頑固啟動(dòng)項(xiàng)包括在先進(jìn)行禁止啟動(dòng)操作,且禁止啟動(dòng)失敗的啟動(dòng)項(xiàng)。
[0273]A3、如Al或A2所述的方法,所述頑固啟動(dòng)項(xiàng)通過以下