欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種防止線程暫停的方法、裝置及電子設(shè)備的制造方法

文檔序號:10655905閱讀:466來源:國知局
一種防止線程暫停的方法、裝置及電子設(shè)備的制造方法
【專利摘要】本發(fā)明的實施例公開一種防止線程暫停的方法、裝置及電子設(shè)備,涉及安全防護技術(shù)領(lǐng)域,能夠保護應(yīng)用程序的正常運行。所述防止線程暫停的方法,包括:根據(jù)對線程掛起函數(shù)的調(diào)用的監(jiān)視,獲取待掛起線程所歸屬的進程的標(biāo)識信息,判斷待掛起線程是否是要保護的進程,若是,則獲取暫停所述待掛起線程的進程的標(biāo)識信息,根據(jù)暫停所述待掛起線程的進程的標(biāo)識信息,判斷暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程,若是,則拒絕掛起所述待掛起線程。所述裝置和電子設(shè)備中包括實現(xiàn)上述方法步驟的模塊。本發(fā)明適用于對應(yīng)用程序尤其是對安全類應(yīng)用程序的保護。
【專利說明】
一種防止線程暫停的方法、裝置及電子設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及安全防護技術(shù)領(lǐng)域,尤其涉及一種防止線程暫停的方法、裝置及電子設(shè)備?!颈尘凹夹g(shù)】
[0002]進程(Process)是計算機中的程序關(guān)于某數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。在早期面向進程設(shè)計的計算機結(jié)構(gòu)中,進程是程序的基本執(zhí)行實體;在當(dāng)代面向線程設(shè)計的計算機結(jié)構(gòu)中,進程是線程的容器。程序是指令、數(shù)據(jù)及其組織形式的描述,進程是程序的實體。
[0003]線程是進程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創(chuàng)建和撤消另一個線程,同一進程中的多個線程之間可以并發(fā)執(zhí)行。
[0004]安全應(yīng)用程序或稱為安全軟件,都能保護常規(guī)的結(jié)束進程,但是系統(tǒng)內(nèi)核提供了 NtSuspendThread函數(shù),用于暫停某個線程的運行,此時雖然此線程未被結(jié)束,但是已經(jīng)被掛起,不能處理任何數(shù)據(jù),如果一個進程的所有線程都被暫停,則此進程就處于暫停狀態(tài), 惡意應(yīng)用程序或稱為惡意軟件可以先枚舉出某個進程的所有線程,再采用此方法暫停所有線程,導(dǎo)致某進程被暫停,進行破壞,特別是暫停安全軟件的進程,使得安全軟件不能正常工作,從而破壞系統(tǒng)。
【發(fā)明內(nèi)容】

[0005]有鑒于此,本發(fā)明實施例提供一種防止線程暫停的方法、裝置及電子設(shè)備,能夠保護應(yīng)用程序的正常運行。
[0006]第一方面,本發(fā)明實施例提供一種防止線程暫停的方法,包括:
[0007]對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視;
[0008]根據(jù)所述監(jiān)視,獲取待掛起線程所歸屬的進程的標(biāo)識信息;
[0009]根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的進程的線程;
[0010]若所述待掛起線程是要保護的進程的線程,則獲取此次暫停所述待掛起線程的進程的標(biāo)識信息;
[0011]根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程;
[0012]若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則拒絕掛起所述待掛起線程。[0〇13]結(jié)合第一方面,在第一方面的第一種可實施方式中,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)的線程掛起函數(shù)為操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù);
[0014]其中,所述對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視,包括:通過預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視。
[0015]結(jié)合第一方面的第一種可實施方式,在第一方面的第二種可實施方式中,所述通過預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視,包括:通過安全防護類應(yīng)用程序的防御驅(qū)動程序中預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視。
[0016]結(jié)合第一方面至第一方面的第二種可實施方式中的任一種可實施方式,在第一方面的第三種可實施方式中,所述根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程,包括:根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程的標(biāo)識信息與特征庫中保存的標(biāo)識信息是否匹配,若此次暫停所述待掛起線程的進程的標(biāo)識信息與特征庫中保存的至少一個標(biāo)識信息相匹配,則確定此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的標(biāo)識信息。
[0017]第二方面,本發(fā)明實施例提供一種防止線程暫停的裝置,包括:監(jiān)視模塊,用于對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視;第一獲取模塊,用于根據(jù)所述監(jiān)視,獲取待掛起線程所歸屬的進程的標(biāo)識信息;第一判斷模塊,用于根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的進程的線程;第二獲取模塊,用于若所述待掛起線程是要保護的進程的線程,則獲取此次暫停所述待掛起線程的進程的標(biāo)識信息;第二判斷模塊,用于根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程;拒絕掛起模塊,用于若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則拒絕掛起所述待掛起線程。
[0018]結(jié)合第二方面,在第二方面的第一種可實施方式中,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)的線程掛起函數(shù)為操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù);其中,所述監(jiān)視模塊,用于通過預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視。
[0019]結(jié)合第二方面的第一種可實施方式,在第二方面的第二種可實施方式中,所述監(jiān)視模塊,用于通過安全防護類應(yīng)用程序的防御驅(qū)動程序中預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視。
[0020]結(jié)合第二方面至第二方面的第二種可實施方式中的任一種可實施方式,在第二方面的第三種可實施方式中,所述第二判斷模塊,包括:判斷子模塊,用于根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程的標(biāo)識信息與特征庫中保存的標(biāo)識信息是否匹配;確定子模塊,用于根據(jù)所述判斷子模塊的判斷,若此次暫停所述待掛起線程的進程的標(biāo)識信息與特征庫中保存的至少一個標(biāo)識信息相匹配,則確定此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的標(biāo)識信息。[0〇21 ]第三方面,本發(fā)明實施例提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲器設(shè)置在電路板上;電源電路,用于為上述電子設(shè)備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一實施方式所述的防止線程暫停的方法。
[0022]本發(fā)明實施例提供的防止線程暫停的方法、裝置及電子設(shè)備,通過對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視,根據(jù)所述監(jiān)視,當(dāng)有應(yīng)用程序的進程調(diào)用所述線程掛起函數(shù)時,獲取待掛起線程所歸屬的進程的標(biāo)識信息,根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的進程的線程,若所述待掛起線程是要保護的進程的線程,則進一步獲取此次暫停所述待掛起線程的進程的標(biāo)識信息,根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程,若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則拒絕掛起所述待掛起線程,由此能夠保護應(yīng)用程序的正常運行,防止其進程被惡意應(yīng)用程序暫停?!靖綀D說明】
[0023]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0024]圖1為本發(fā)明防止線程暫停的方法實施例一的流程示意圖;
[0025]圖2為本發(fā)明防止線程暫停的方法實施例二的流程示意圖;
[0026]圖3為本發(fā)明防止線程暫停的裝置實施例一的結(jié)構(gòu)示意圖;
[0027]圖4為本發(fā)明防止線程暫停的裝置實施例二的結(jié)構(gòu)示意圖;
[0028]圖5為本發(fā)明電子設(shè)備一個實施例的結(jié)構(gòu)示意圖?!揪唧w實施方式】[〇〇29]下面結(jié)合附圖對本發(fā)明實施例進行詳細(xì)描述。
[0030]應(yīng)當(dāng)明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0031]圖1為本發(fā)明防止線程暫停的方法實施例一的流程示意圖。參看圖1,本發(fā)明防止線程暫停的方法實施例,包括如下步驟:
[0032]S101、對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視。
[0033]操作系統(tǒng)提供了線程掛起函數(shù)。惡意應(yīng)用程序的進程通過調(diào)用所述線程掛起函數(shù)可將一應(yīng)用程序如安全應(yīng)用程序的線程掛起,即暫停該應(yīng)用程序的線程的運行。本實施例通過對所述線程掛起函數(shù)進行監(jiān)視,可及時截獲惡意應(yīng)用程序?qū)σWo的應(yīng)用程序的線程進行掛起的消息。
[0034]S102、根據(jù)所述監(jiān)視,獲取待掛起線程所歸屬的進程的標(biāo)識信息。
[0035]本實施例中,待掛起線程所歸屬的進程的標(biāo)識信息,可以是待掛起線程所歸屬的進程名或進程標(biāo)識號:每個進程都有唯一的進程名或進程標(biāo)識號。在識別一個進程時,進程名或進程標(biāo)識號代表該進程。
[0036]惡意應(yīng)用程序的進程調(diào)用所述線程掛起函數(shù)時,會向所述線程掛起函數(shù)傳遞待掛起線程所歸屬的進程的標(biāo)識信息。本實施例中,可在所述待掛起線程所歸屬的進程的標(biāo)識信息到達所述線程掛起函數(shù)之前,截獲所述待掛起線程所歸屬的進程的標(biāo)識信息。
[0037]S103、根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的進程的線程。
[0038]本實施例中,作為一可選的方式,可將要保護的要保護的進程的標(biāo)識信息寫入白名單中。在所述白名單中進行匹配查詢,若在所述白名單中匹配到與所述待掛起線程所歸屬的進程的標(biāo)識信息,則可確定所述待掛起線程是要保護的進程的線程,否則,則確定所述待掛起線程所歸屬的進程的標(biāo)識信息不是要保護的進程。
[0039]S104、若所述待掛起線程是要保護的進程的線程,則獲取此次暫停所述待掛起線程的進程的標(biāo)識彳目息。
[0040]本實施例中,此次暫停所述待掛起線程的進程的標(biāo)識信息,可以是此次暫停所述待掛起線程的進程的進程名或進程標(biāo)識號。
[0041]S105、根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程.
[0042]本實施例中,作為一可選方式,可根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程的標(biāo)識信息與特征庫中保存的標(biāo)識信息是否匹配,若此次暫停所述待掛起線程的進程的標(biāo)識信息與特征庫中保存的至少一個標(biāo)識信息相匹配,則確定此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的標(biāo)識信息。
[0043]S106、若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則拒絕掛起所述待掛起線程。
[0044]本實施例中,若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則返回拒絕消息,拒絕掛起所述待掛起線程。
[0045]通過上面的步驟,目標(biāo)應(yīng)用程序如某一惡意應(yīng)用程序?qū)€程的暫停就會失敗。
[0046]本發(fā)明實施例提供的防止線程暫停的方法,通過對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視,根據(jù)所述監(jiān)視,當(dāng)有應(yīng)用程序的進程調(diào)用所述線程掛起函數(shù)時,獲取待掛起線程所歸屬的進程的標(biāo)識信息,根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的進程的線程,若所述待掛起線程是要保護的進程的線程,則進一步獲取此次暫停所述待掛起線程的進程的標(biāo)識信息,根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程,若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則拒絕掛起所述待掛起線程,由此能夠保護應(yīng)用程序的正常運行,防止其進程被惡意應(yīng)用程序暫停。
[0047]圖2為本發(fā)明防止線程暫停的方法實施例二的流程示意圖。本實施例中,所述操作系統(tǒng)為W i n d 〇 w s操作系統(tǒng);所述操作系統(tǒng)的線程掛起函數(shù)為操作系統(tǒng)內(nèi)核層的 NtSuspendThread函數(shù)。本發(fā)明實施例適用于金山毒霸或金山衛(wèi)士等安全防護類應(yīng)用程序?qū)?yīng)用程序的進程的保護。參看圖2,本發(fā)明防止線程暫停的方法實施例,包括如下步驟: [〇〇48]S201、通過預(yù)先設(shè)置的鉤子(Hook)函數(shù),對操作系統(tǒng)內(nèi)核層的線程掛起函數(shù)的調(diào)用進行監(jiān)視。
[0049] 本實施例中,Windows操作系統(tǒng)內(nèi)核層的線程掛起函數(shù)為NtSuspendThread函數(shù)。 所述鉤子函數(shù)建立在安全防護類應(yīng)用程序如金山毒霸的防御驅(qū)動中。安全防護類應(yīng)用程序的防御驅(qū)動在windows操作系統(tǒng)開機后即開始運行。
[0050]在本步驟之前,可由編程人員在所述防御驅(qū)動中建立鉤子函數(shù)。鉤子函數(shù)實際上是一個處理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達目的窗口前,鉤子函數(shù)就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。這時鉤子函數(shù)即可以加工處理該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強制結(jié)束消息的傳遞。[0051 ] 本實施例中,將NtSuspendThread函數(shù)的原始入口地址修改為本實施例中的鉤子函數(shù)的入口地址。惡意應(yīng)用程序的進程在調(diào)用NtSuspendThread函數(shù)時,由于 NtSuspendThread函數(shù)的原始入口地址已被修改為本實施例的鉤子函數(shù)的入口地址,通過對NtSuspendThread函數(shù)的調(diào)用,S卩可跳至本實施例的鉤子函數(shù)的執(zhí)行,由此實現(xiàn)對 NtSuspendThread 函數(shù)的監(jiān)視。
[0052] 為了實現(xiàn)對NtSuspendThread函數(shù)的回調(diào),在將NtSuspendThread函數(shù)的原始入口地址修改為本實施例中的鉤子函數(shù)的入口地址之前,需要對NtSuspendThread函數(shù)的原始入口地址進行保存。[0〇53] 本實施例中,惡意應(yīng)用程序的進程對NtSuspendThread函數(shù)的調(diào)用,可通過 windows操作系統(tǒng)對NtSuspendThread函數(shù)的調(diào)用來實現(xiàn)。具體來講,可以是惡意應(yīng)用程序的進程向windows操作系統(tǒng)發(fā)出調(diào)用NtSuspendThread函數(shù)的消息,windows操作系統(tǒng)根據(jù)該消息調(diào)用NtSuspendThread函數(shù)。[〇〇54] S202、所述鉤子函數(shù)根據(jù)所述監(jiān)視,獲取待掛起線程所歸屬的進程的標(biāo)識信息。
[0055]本實施例中,所述鉤子函數(shù)根據(jù)所述監(jiān)視獲取待掛起線程所歸屬的進程的標(biāo)識信息的過程和上述方法實施例的步驟S102類似,此處不再贅述。
[0056] S203、所述鉤子函數(shù)根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的進程的線程。
[0057]本實施例中,所述鉤子函數(shù)根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的進程的線程的過程和上述方法實施例的步驟S103類似,此處不再贅述。[〇〇58]本實施例中,若所述待掛起線程是要保護的進程的線程,則執(zhí)行步驟S204,否則執(zhí)行步驟S207。[〇〇59] S204、所述鉤子函數(shù)獲取此次暫停所述待掛起線程的進程的標(biāo)識信息。
[0060]本實施例中,此次暫停所述待掛起線程的進程的標(biāo)識信息,可以是此次暫停所述待掛起線程的進程的進程名或進程標(biāo)識號。
[0061] S205、所述鉤子函數(shù)根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程。
[0062]本實施例中,所述鉤子函數(shù)根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程的過程和上述方法實施例的步驟S105類似,此處不再贅述。
[0063]本實施例中,若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則執(zhí)行步驟S206,否則執(zhí)行步驟S207。[〇〇64] S206、所述鉤子函數(shù)拒絕掛起所述待掛起線程。
[0065]本實施例中,若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則返回拒絕消息,拒絕掛起所述待掛起線程。
[0066]本實施例中,所述鉤子函數(shù)可向windows操作系統(tǒng)或向惡意應(yīng)用程序的進程返回拒絕消息,從而阻止對所述待掛起線程的暫停操作。[0〇67]S207、調(diào)用操作系統(tǒng)內(nèi)核層的原始NtSuspendThread函數(shù)。[0〇68] 本實施例中,可通過所述原始NtSuspendThread函數(shù),進行所述待掛起線程的掛起操作。[〇〇69]本實施例提供的防止線程暫停的方法,能夠攔截惡意軟件通過內(nèi)核的方式暫停線程的行為。
[0070]下面采用一個具體的實施例,對圖1?圖2中任一個所示方法實施例的技術(shù)方案進行詳細(xì)說明。
[0071]在用戶電腦環(huán)境中,存在一個惡意軟件A。在金山毒霸的防御驅(qū)動中Hook了暫停線程的NtSuspendThread函數(shù),當(dāng)惡意軟件A的進程通知其驅(qū)動程序調(diào)用NtSuspendThread函數(shù)暫停金山毒霸的防御進程的線程時,防御驅(qū)動就會對此行為進行攔截,并返回拒絕消息, 使得惡意軟件A暫停金山毒霸的防御進程的線程失敗,進而使得暫停金山毒霸的防御進程失敗,從而更好地保護用戶系統(tǒng)環(huán)境不被破壞。
[0072]圖3為本發(fā)明防止線程暫停的裝置實施例一的結(jié)構(gòu)示意圖。
[0073]參看圖3,本發(fā)明防止線程暫停的裝置實施例,包括:監(jiān)視模塊11、第一獲取模塊 12、第一判斷模塊13、第二獲取模塊14、第二判斷模塊15和拒絕掛起模塊16;其中,所述監(jiān)視模塊11,用于對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視;所述第一獲取模塊12,用于根據(jù)所述監(jiān)視,獲取待掛起線程所歸屬的進程的標(biāo)識信息;所述第一判斷模塊13,用于根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的進程的線程; 所述第二獲取模塊14,用于若所述待掛起線程是要保護的進程的線程,則獲取此次暫停所述待掛起線程的進程的標(biāo)識信息;所述第二判斷模塊15,用于根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程; 所述拒絕掛起模塊16,用于若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則拒絕掛起所述待掛起線程。
[0074]本實施例的裝置,可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0075]圖4為本發(fā)明防止線程暫停的裝置實施例二的結(jié)構(gòu)示意圖。參看圖4,本實施例是在前述防止線程暫停的裝置實施例一的結(jié)構(gòu)的基礎(chǔ)上,所述操作系統(tǒng)為Windows操作系統(tǒng); 所述操作系統(tǒng)的線程掛起函數(shù)為操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù)。
[0076]其中,所述監(jiān)視模塊11,用于通過預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的 NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視。其中,所述鉤子函數(shù)可設(shè)置在安全防護類應(yīng)用程序的防御驅(qū)動程序中。
[0077]所述第二判斷模塊15,包括:判斷子模塊151,用于根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程的標(biāo)識信息與特征庫中保存的標(biāo)識信息是否匹配;確定子模塊152,用于根據(jù)所述判斷子模塊的判斷,若此次暫停所述待掛起線程的進程的標(biāo)識信息與特征庫中保存的至少一個標(biāo)識信息相匹配,則確定此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的標(biāo)識信息。
[0078]本實施例的裝置,可以用于執(zhí)行圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0079]本發(fā)明實施例還提供一種電子設(shè)備。圖5為本發(fā)明電子設(shè)備一個實施例的結(jié)構(gòu)不意圖,可以實現(xiàn)本發(fā)明圖1或圖2所示實施例的流程,如圖5所示,上述電子設(shè)備可以包括:殼體41、處理器42、存儲器43、電路板44和電源電路45,其中,電路板44安置在殼體41圍成的空間內(nèi)部,處理器42和存儲器43設(shè)置在電路板44上;電源電路45,用于為上述電子設(shè)備的各個電路或器件供電;存儲器43用于存儲可執(zhí)行程序代碼;處理器42通過讀取存儲器43中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一實施例所述的防止線程暫停的方法。
[0080]該電子設(shè)備以多種形式存在,包括但不限于:
[0081](1)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。
[0082](2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
[0083](3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、 視頻播放模塊(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
[0084](4)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。[〇〇85](5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。[〇〇86]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0087]本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0088]為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當(dāng)然,在實施本發(fā)明時可以把各單元/模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。[〇〇89]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random AccessMemory,RAM)等。
[0090]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的防護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的防護范圍之內(nèi)。因此,本發(fā)明的防護范圍應(yīng)以權(quán)利要求的防護范圍為準(zhǔn)。
【主權(quán)項】
1.一種防止線程暫停的方法,其特征在于,包括:對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視;根據(jù)所述監(jiān)視,獲取待掛起線程所歸屬的進程的標(biāo)識信息;根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起線程是否是要保護的 進程的線程;若所述待掛起線程是要保護的進程的線程,則獲取此次暫停所述待掛起線程的進程的 標(biāo)識信息;根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進 程是否是目標(biāo)應(yīng)用程序的進程;若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則拒絕掛起所述待掛起線程。2.根據(jù)權(quán)利要求1所述的防止線程暫停的方法,其特征在于,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)的線程掛起函數(shù)為操作系統(tǒng)內(nèi)核層 的 NtSuspendThread 函數(shù);其中,所述對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視,包括:通過預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù)的調(diào)用進行監(jiān) 視。3.根據(jù)權(quán)利要求2所述的防止線程暫停的方法,其特征在于,所述通過預(yù)先設(shè)置的鉤子 函數(shù),對操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視,包括:通過安全防護類應(yīng)用程序的防御驅(qū)動程序中預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層 的NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視。4.根據(jù)權(quán)利要求1至3任一項所述的防止線程暫停的方法,其特征在于,所述根據(jù)此次 暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進程是否是目標(biāo) 應(yīng)用程序的進程,包括:根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所述待掛起線程的進 程的標(biāo)識信息與特征庫中保存的標(biāo)識信息是否匹配,若此次暫停所述待掛起線程的進程的 標(biāo)識信息與特征庫中保存的至少一個標(biāo)識信息相匹配,則確定此次暫停所述待掛起線程的 進程是目標(biāo)應(yīng)用程序的進程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的標(biāo)識信息。5.—種防止線程暫停的裝置,其特征在于,包括:監(jiān)視模塊,用于對操作系統(tǒng)的線程掛起函數(shù)的調(diào)用進行監(jiān)視;第一獲取模塊,用于根據(jù)所述監(jiān)視,獲取待掛起線程所歸屬的進程的標(biāo)識信息;第一判斷模塊,用于根據(jù)所述待掛起線程所歸屬的進程的標(biāo)識信息,判斷所述待掛起 線程是否是要保護的進程的線程;第二獲取模塊,用于若所述待掛起線程是要保護的進程的線程,則獲取此次暫停所述 待掛起線程的進程的標(biāo)識信息;第二判斷模塊,用于根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停 所述待掛起線程的進程是否是目標(biāo)應(yīng)用程序的進程;拒絕掛起模塊,用于若此次暫停所述待掛起線程的進程是目標(biāo)應(yīng)用程序的進程,則拒 絕掛起所述待掛起線程。6.根據(jù)權(quán)利要求5所述的防止線程暫停的裝置,其特征在于,所述操作系統(tǒng)為Windows 操作系統(tǒng);所述操作系統(tǒng)的線程掛起函數(shù)為操作系統(tǒng)內(nèi)核層的NtSuspendThread函數(shù);其中,所述監(jiān)視模塊,用于通過預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的 NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視。7.根據(jù)權(quán)利要求6所述的防止線程暫停的裝置,其特征在于,所述監(jiān)視模塊,用于通過 安全防護類應(yīng)用程序的防御驅(qū)動程序中預(yù)先設(shè)置的鉤子函數(shù),對操作系統(tǒng)內(nèi)核層的 NtSuspendThread函數(shù)的調(diào)用進行監(jiān)視。8.根據(jù)權(quán)利要求5至7任一項所述的防止線程暫停的裝置,其特征在于,所述第二判斷 豐吳塊,包括:判斷子模塊,用于根據(jù)此次暫停所述待掛起線程的進程的標(biāo)識信息,判斷此次暫停所 述待掛起線程的進程的標(biāo)識信息與特征庫中保存的標(biāo)識信息是否匹配;確定子模塊,用于根據(jù)所述判斷子模塊的判斷,若此次暫停所述待掛起線程的進程的 標(biāo)識信息與特征庫中保存的至少一個標(biāo)識信息相匹配,則確定此次暫停所述待掛起線程的 進程是目標(biāo)應(yīng)用程序的進程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的標(biāo)識信息。9.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:殼體、處理器、存儲器、電路板和電 源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲器設(shè)置在電路板上;電源 電路,用于為上述電子設(shè)備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理 器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí) 行前述任一權(quán)利要求1 -4所述的防止線程暫停的方法。
【文檔編號】G06F21/52GK106022109SQ201610331126
【公開日】2016年10月12日
【申請日】2016年5月18日
【發(fā)明人】楊峰
【申請人】北京金山安全軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
温州市| 思茅市| 商河县| 高邑县| 乌什县| 灯塔市| 巨野县| 温宿县| 金坛市| 呼伦贝尔市| 阿图什市| 安康市| 峡江县| 耒阳市| 江西省| 迭部县| 威宁| 随州市| 集安市| 株洲市| 印江| 寿光市| 华蓥市| 武乡县| 乐平市| 名山县| 农安县| 会东县| 望谟县| 锡林郭勒盟| 徐闻县| 赣榆县| 衡阳县| 蒙阴县| 龙井市| 临夏市| 筠连县| 甘孜县| 聊城市| 古田县| 泗洪县|