一種信息處理方法及裝置的制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例提供了一種信息處理方法及裝置。該方法包括:檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型;若為是,判斷重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型;若為是,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序;若為是,攔截第一函數(shù),以拒絕響應(yīng)調(diào)用請(qǐng)求。與現(xiàn)有技術(shù)相比,本發(fā)明中,當(dāng)檢測(cè)到對(duì)第一函數(shù)的調(diào)用請(qǐng)求時(shí),在重畫(huà)類(lèi)型為無(wú)效類(lèi)型,且第一程序是惡意程序的情況下,電子設(shè)備會(huì)對(duì)第一函數(shù)進(jìn)行攔截,故待重畫(huà)窗口不會(huì)被重畫(huà)為無(wú)效類(lèi)型的窗口,創(chuàng)建待重畫(huà)窗口的程序仍可正常運(yùn)行,這樣大大地提高了用戶的使用體驗(yàn),同時(shí)也較好地保證了電子設(shè)備的安全性。
【專(zhuān)利說(shuō)明】
_種信息處理方法及裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種信息處理方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,病毒、木馬等惡意程序技術(shù)層出不窮,這些惡意程序可能會(huì)對(duì)電子設(shè)備的正常運(yùn)行帶來(lái)非常不利的影響。具體來(lái)說(shuō),惡意程序會(huì)通過(guò)調(diào)用特定的函數(shù)來(lái)對(duì)電子設(shè)備中的程序所創(chuàng)建的窗口進(jìn)行重畫(huà),并使該重畫(huà)類(lèi)型為無(wú)效類(lèi)型。這樣,在重畫(huà)操作完成后,該窗口將無(wú)法接收消息,故創(chuàng)建該窗口的程序?qū)o(wú)法正常運(yùn)行,相應(yīng)地,用戶也無(wú)法使用該程序,這樣會(huì)給用戶帶來(lái)非常不好的使用體驗(yàn)。因此,如何避免惡意程序?qū)㈦娮釉O(shè)備中的程序所創(chuàng)建的窗口重畫(huà)為無(wú)效類(lèi)型的窗口是一個(gè)亟待解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實(shí)施例的目的在于提供一種信息處理方法及裝置,以避免惡意程序?qū)㈦娮釉O(shè)備中的程序所創(chuàng)建的窗口重畫(huà)為無(wú)效類(lèi)型的窗口,從而大大地提高了用戶的使用體驗(yàn)。
[0004]本發(fā)明實(shí)施例提供了一種信息處理方法,所述方法包括:
[0005]檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,所述第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),所述調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型;
[0006]若為是,判斷所述重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型;
[0007]若所述重畫(huà)類(lèi)型是無(wú)效類(lèi)型,判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序;
[0008]若所述第一程序是惡意程序,攔截所述第一函數(shù),進(jìn)而拒絕響應(yīng)所述調(diào)用請(qǐng)求。
[0009]更進(jìn)一步的,上述方法中,所述判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序之后,所述方法還包括:
[0010]若所述第一程序不是惡意程序,調(diào)用所述第一函數(shù),以響應(yīng)所述調(diào)用請(qǐng)求。
[0011 ] 更進(jìn)一步的,上述方法中,若所述重畫(huà)類(lèi)型是無(wú)效類(lèi)型,所述方法還包括:
[0012]判斷所述待重畫(huà)窗口是否為生成所述調(diào)用請(qǐng)求的第一程序創(chuàng)建的,若為否,執(zhí)行所述判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序。
[0013]更進(jìn)一步的,上述方法中,所述判斷所述待重畫(huà)窗口是否為生成所述調(diào)用請(qǐng)求的第一程序創(chuàng)建的,包括:
[0014]獲取所述待重畫(huà)窗口的窗口句柄標(biāo)識(shí);
[0015]根據(jù)所述窗口句柄標(biāo)識(shí),獲取與所述窗口句柄標(biāo)識(shí)相對(duì)應(yīng)的程序路徑信息;
[0016]獲取所述第一程序的路徑信息;
[0017]判斷所述路徑信息與所述程序路徑信息是否相同,如果不是,表明所述待重畫(huà)窗口不是生成所述調(diào)用請(qǐng)求的第一程序創(chuàng)建的。
[0018]更進(jìn)一步的,上述方法中,所述判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序,包括:
[0019]獲取生成所述調(diào)用請(qǐng)求的第一程序的路徑信息;
[0020]根據(jù)所述路徑信息,獲取所述路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件;
[0021]根據(jù)所述數(shù)據(jù)文件的文件內(nèi)容,確定所述第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值;
[0022]根據(jù)所述目標(biāo)內(nèi)容標(biāo)識(shí)值和預(yù)設(shè)對(duì)應(yīng)關(guān)系,確定所述第一程序是否為惡意程序,其中,所述預(yù)設(shè)對(duì)應(yīng)關(guān)系為關(guān)于多個(gè)內(nèi)容標(biāo)識(shí)值與程序安全類(lèi)型的對(duì)應(yīng)關(guān)系,所述程序安全類(lèi)型的種類(lèi)包括惡意類(lèi)型和非惡意類(lèi)型。
[0023]更進(jìn)一步的,上述方法中,所述判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序,包括:
[0024]獲取生成所述調(diào)用請(qǐng)求的第一程序的路徑信息;
[0025]根據(jù)所述路徑信息,獲取所述路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件;
[0026]根據(jù)所述數(shù)據(jù)文件的文件內(nèi)容,確定所述第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值;
[0027]判斷本地存儲(chǔ)的惡意數(shù)據(jù)庫(kù)中是否存在所述目標(biāo)內(nèi)容標(biāo)識(shí)值,其中,所述惡意數(shù)據(jù)庫(kù)中存儲(chǔ)有多個(gè)惡意程序的內(nèi)容標(biāo)識(shí)值,若存在,表明所述第一程序是惡意程序。
[0028]更進(jìn)一步的,上述方法中,所述內(nèi)容標(biāo)識(shí)值為MD5值或哈希值。
[0029]更進(jìn)一步的,上述方法中,所述檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,包括:
[0030]通過(guò)設(shè)置鉤子函數(shù)的方式,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求。
[0031]本發(fā)明實(shí)施例還提供了一種信息處理裝置,包括:
[0032]調(diào)用請(qǐng)求檢測(cè)模塊,用于檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,所述第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),所述調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型;
[0033]調(diào)用請(qǐng)求類(lèi)型判斷模塊,用于在檢測(cè)到對(duì)第一函數(shù)的調(diào)用請(qǐng)求的情況下,判斷所述重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型;
[0034]惡意程序判斷模塊,用于在所述重畫(huà)類(lèi)型是無(wú)效類(lèi)型的情況下,判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序;
[0035]第一執(zhí)行模塊,用于在所述第一程序是惡意程序的情況下,攔截所述第一函數(shù),進(jìn)而拒絕響應(yīng)所述調(diào)用請(qǐng)求。
[0036]更進(jìn)一步的,上述裝置還包括:
[0037]第二執(zhí)行模塊,用于在判斷所述第一程序是否為惡意程序,且判斷結(jié)果為否的情況下,調(diào)用所述第一函數(shù),以響應(yīng)所述調(diào)用請(qǐng)求。
[0038]更進(jìn)一步的,上述裝置還包括:
[0039]窗口創(chuàng)建對(duì)象判斷模塊,用于在所述重畫(huà)類(lèi)型是無(wú)效類(lèi)型的情況下,判斷所述待重畫(huà)窗口是否為生成所述調(diào)用請(qǐng)求的第一程序創(chuàng)建的,若為否,觸發(fā)所述惡意程序判斷模塊。
[0040]更進(jìn)一步的,上述裝置中,所述窗口創(chuàng)建對(duì)象判斷模塊,包括:
[0041 ]窗口句柄標(biāo)識(shí)獲取單元,用于獲取所述待重畫(huà)窗口的窗口句柄標(biāo)識(shí);
[0042]程序路徑信息獲取單元,用于根據(jù)所述窗口句柄標(biāo)識(shí),獲取與所述窗口句柄標(biāo)識(shí)相對(duì)應(yīng)的程序路徑信息;
[0043]第一路徑信息獲取單元,用于獲取所述第一程序的路徑信息;
[0044]路徑信息判斷單元,用于判斷所述路徑信息與所述程序路徑信息是否相同,如果不是,表明所述待重畫(huà)窗口不是生成所述調(diào)用請(qǐng)求的第一程序創(chuàng)建的。
[0045]更進(jìn)一步的,上述裝置中,所述惡意程序判斷模塊,包括:
[0046]第二路徑信息獲取單元,用于獲取生成所述調(diào)用請(qǐng)求的第一程序的路徑信息;
[0047]第一數(shù)據(jù)文件獲取單元,用于根據(jù)所述路徑信息,獲取所述路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件;
[0048]第一目標(biāo)內(nèi)容標(biāo)識(shí)值確定單元,用于根據(jù)所述數(shù)據(jù)文件的文件內(nèi)容,確定所述第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值;
[0049]第一惡意程序確定單元,用于根據(jù)所述目標(biāo)內(nèi)容標(biāo)識(shí)值和預(yù)設(shè)對(duì)應(yīng)關(guān)系,確定所述第一程序是否為惡意程序,其中,所述預(yù)設(shè)對(duì)應(yīng)關(guān)系為關(guān)于多個(gè)內(nèi)容標(biāo)識(shí)值與程序安全類(lèi)型的對(duì)應(yīng)關(guān)系,所述程序安全類(lèi)型的種類(lèi)包括惡意類(lèi)型和非惡意類(lèi)型。
[0050]更進(jìn)一步的,上述裝置中,所述惡意程序判斷模塊,包括:
[0051]第三路徑信息獲取單元,用于獲取生成所述調(diào)用請(qǐng)求的第一程序的路徑信息;
[0052]第二數(shù)據(jù)文件獲取單元,用于根據(jù)所述路徑信息,獲取所述路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件;
[0053]第二目標(biāo)內(nèi)容標(biāo)識(shí)值確定單元,用于根據(jù)所述數(shù)據(jù)文件的文件內(nèi)容,確定所述第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值;
[0054]第二惡意程序確定單元,用于判斷本地存儲(chǔ)的惡意數(shù)據(jù)庫(kù)中是否存在所述目標(biāo)內(nèi)容標(biāo)識(shí)值,其中,所述惡意數(shù)據(jù)庫(kù)中存儲(chǔ)有多個(gè)惡意程序的內(nèi)容標(biāo)識(shí)值,若存在,表明所述第一程序是惡意程序。
[0055]更進(jìn)一步的,上述裝置中,所述內(nèi)容標(biāo)識(shí)值為MD5值或哈希值。
[0056]更進(jìn)一步的,上述裝置中,所述調(diào)用請(qǐng)求檢測(cè)模塊具體用于通過(guò)設(shè)置鉤子函數(shù)的方式,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求。
[0057]本發(fā)明實(shí)施例提供了一種信息處理方法及裝置。該方法包括:檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型;若為是,判斷重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型;若重畫(huà)類(lèi)型是無(wú)效類(lèi)型,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序;若第一程序是惡意程序,攔截第一函數(shù),進(jìn)而拒絕響應(yīng)調(diào)用請(qǐng)求。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例中,當(dāng)檢測(cè)到對(duì)系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的第一函數(shù)的調(diào)用請(qǐng)求時(shí),電子設(shè)備不會(huì)立即調(diào)用第一函數(shù),而是依次判斷調(diào)用請(qǐng)求中的重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型,以及生成調(diào)用請(qǐng)求的第一程序是否為惡意程序,在重畫(huà)類(lèi)型為無(wú)效類(lèi)型,且生成調(diào)用請(qǐng)求的第一程序是惡意程序的情況下,電子設(shè)備會(huì)對(duì)第一函數(shù)進(jìn)行攔截,進(jìn)而拒絕響應(yīng)調(diào)用請(qǐng)求,相應(yīng)地,待重畫(huà)窗口將不會(huì)被重畫(huà)為無(wú)效類(lèi)型的窗口,創(chuàng)建待重畫(huà)窗口的程序仍可正常運(yùn)行,用戶仍可繼續(xù)使用該程序,這樣可以大大地提高用戶的使用體驗(yàn),同時(shí)也較好地保證了電子設(shè)備的安全性。
【附圖說(shuō)明】
[0058]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0059]圖1為本發(fā)明實(shí)施例提供的信息處理方法的流程圖;
[0060]圖2為本發(fā)明實(shí)施例提供的信息處理方法的又一流程圖;
[0061 ]圖3為本發(fā)明實(shí)施例提供的信息處理方法的又一流程圖;
[0062]圖4為本發(fā)明實(shí)施例提供的信息處理裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0063]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0064]為了解決現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明實(shí)施例提供了一種信息處理方法及裝置。
[0065]下面首先對(duì)本發(fā)明實(shí)施例所提供的一種信息處理方法進(jìn)行介紹。
[0066]需要說(shuō)明的是,本發(fā)明實(shí)施例所提供的一種信息處理方法可以應(yīng)用于電子設(shè)備中。在實(shí)際應(yīng)用中,該電子設(shè)備可以為智能手機(jī)、平板電腦、筆記本電腦等,這都是合理的。
[0067]另外,實(shí)現(xiàn)本發(fā)明實(shí)施例所提供的一種信息處理方法的功能軟件可以為獨(dú)立的客戶端軟件,或者,也可以為現(xiàn)有客戶端軟件中的插件,這都是合理的。
[0068]參見(jiàn)圖1,圖中示出了本發(fā)明所提供的一種信息處理方法的流程圖。如圖1所示,該方法可以包括:
[0069]SlOl,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型,如果是,執(zhí)行S102o
[0070]本領(lǐng)域技術(shù)人員可以理解的是,窗口是電子設(shè)備的用戶界面中最為重要的組成部分。具體地,窗口是電子設(shè)備的屏幕上與一個(gè)程序相對(duì)應(yīng)的矩形區(qū)域,該矩形區(qū)域包括框架和客戶區(qū),由框架和客戶區(qū)組合而成的矩形區(qū)域構(gòu)成了用戶與創(chuàng)建該窗口的程序之間進(jìn)行交互的可視界面。每當(dāng)用戶開(kāi)始運(yùn)行一個(gè)程序時(shí),該程序就會(huì)向電子設(shè)備的操作系統(tǒng)發(fā)送請(qǐng)求,以使操作系統(tǒng)創(chuàng)建并顯示一個(gè)與該程序相對(duì)應(yīng)的窗口,當(dāng)用戶操作該窗口中的對(duì)象時(shí),該程序就會(huì)作出相應(yīng)的反應(yīng),例如,當(dāng)用戶關(guān)閉該窗口時(shí),創(chuàng)建該窗口的程序就會(huì)停止運(yùn)行。
[0071]目前,在很多情況下,需要對(duì)電子設(shè)備中的窗口進(jìn)行重畫(huà),為了實(shí)現(xiàn)該目的,電子設(shè)備的操作系統(tǒng)提供了兩個(gè)用于執(zhí)行窗口重畫(huà)操作的函數(shù),其中,一個(gè)函數(shù)位于系統(tǒng)內(nèi)核層中,另一個(gè)函數(shù)位于系統(tǒng)應(yīng)用層中。具體地,位于系統(tǒng)內(nèi)核層中的函數(shù),即第一函數(shù)可以為NtUserRedrawWindow函數(shù),位于系統(tǒng)應(yīng)用層中的函數(shù)可以為RedrawWindow函數(shù)。
[0072]這樣,當(dāng)系統(tǒng)內(nèi)核層中的程序希望對(duì)待重畫(huà)窗口進(jìn)行重畫(huà)時(shí),該程序就會(huì)發(fā)出對(duì)系統(tǒng)內(nèi)核層中的NtUserRedrawWindow函數(shù)的調(diào)用請(qǐng)求,并在調(diào)用請(qǐng)求中明確待重畫(huà)窗口具體是哪一個(gè)窗口,以及重畫(huà)類(lèi)型具體是無(wú)效類(lèi)型還是非無(wú)效類(lèi)型,最終,若NtUserRedrawWindow函數(shù)被成功調(diào)用,待重畫(huà)窗口即可被成功重畫(huà)。
[0073]類(lèi)似地,當(dāng)系統(tǒng)應(yīng)用層中的程序希望對(duì)待重畫(huà)窗口進(jìn)行重畫(huà)時(shí),該程序會(huì)發(fā)出對(duì)系統(tǒng)應(yīng)用層中的Re dr awW i ndow函數(shù)以及對(duì)系統(tǒng)內(nèi)核層中的NtU s erRedrawff i ndo w函數(shù)的調(diào)用請(qǐng)求,并在調(diào)用請(qǐng)求中明確待重畫(huà)窗口具體是哪一個(gè)窗口,以及重畫(huà)類(lèi)型具體是無(wú)效類(lèi)型還是非無(wú)效類(lèi)型,最終,若RedrawWindow函數(shù)和NtUserRedrawWindow函數(shù)被依次成功調(diào)用,待重畫(huà)窗口即可被成功重畫(huà)。
[0074]可以看出,不管程序是屬于系統(tǒng)內(nèi)核層還是系統(tǒng)應(yīng)用層,若其要對(duì)待重畫(huà)窗口進(jìn)行重畫(huà),最終都需要調(diào)用系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),即第一函數(shù)。也就是說(shuō),只要檢測(cè)到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,就說(shuō)明有程序請(qǐng)求對(duì)待重畫(huà)窗口進(jìn)行重畫(huà)。因此,只要對(duì)針對(duì)第一函數(shù)的調(diào)用請(qǐng)求進(jìn)行檢測(cè),就可以有效地檢測(cè)所有程序的重畫(huà)請(qǐng)求,從而避免對(duì)某些程序發(fā)出的重畫(huà)請(qǐng)求的遺漏。
[0075]需要說(shuō)明的是,根據(jù)重畫(huà)類(lèi)型的不同,若第一函數(shù)被成功調(diào)用,則創(chuàng)建待重畫(huà)窗口的程序的狀態(tài)會(huì)存在較大的差異。
[0076]具體來(lái)說(shuō),若重畫(huà)類(lèi)型是非無(wú)效類(lèi)型,則當(dāng)?shù)谝缓瘮?shù)被成功調(diào)用后,待重畫(huà)窗口中將不會(huì)存在無(wú)效區(qū)域,并且,待重畫(huà)窗口仍能正常地接收消息,相應(yīng)地,創(chuàng)建待重畫(huà)窗口的程序仍能正常運(yùn)行。也就是說(shuō),當(dāng)重畫(huà)類(lèi)型不是無(wú)效類(lèi)型時(shí),無(wú)論發(fā)出調(diào)用請(qǐng)求的程序是不是惡意程序,創(chuàng)建待重畫(huà)窗口的程序的正常運(yùn)行均不會(huì)受到影響,故此時(shí)電子設(shè)備可以直接調(diào)用第一函數(shù),以響應(yīng)調(diào)用請(qǐng)求。
[0077]若重畫(huà)類(lèi)型是無(wú)效類(lèi)型,則當(dāng)?shù)谝缓瘮?shù)被成功調(diào)用后,待重畫(huà)窗口中將不會(huì)存在無(wú)效區(qū)域,并且,待重畫(huà)窗口將無(wú)法接收消息,即創(chuàng)建待重畫(huà)窗口的程序無(wú)法正常運(yùn)行。這種情況下,發(fā)出調(diào)用請(qǐng)求的程序極有可能是惡意程序,并且,由于創(chuàng)建待重畫(huà)窗口的程序無(wú)法正常運(yùn)行,這樣會(huì)給用戶帶來(lái)非常不好的使用體驗(yàn)。更為嚴(yán)重的是,當(dāng)待重畫(huà)窗口為安全軟件創(chuàng)建的窗口時(shí),一旦第一函數(shù)被成功調(diào)用,安全軟件將無(wú)法正常運(yùn)行,即無(wú)法執(zhí)行正常的防御功能,此時(shí)電子設(shè)備很容易受到惡意軟件的攻擊,整個(gè)電子設(shè)備的安全性會(huì)大大地降低。因此,為了較好地解決上述隱患,當(dāng)接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求時(shí),電子設(shè)備不會(huì)立即執(zhí)行調(diào)用第一函數(shù)的步驟,而會(huì)先執(zhí)行S102,相應(yīng)地,待重畫(huà)窗口將不會(huì)立即被重畫(huà)。
[0078]需要強(qiáng)調(diào)的是,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求的具體實(shí)現(xiàn)方式存在多種,為了布局清楚,后續(xù)進(jìn)行舉例介紹。
[0079]S102,判斷重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型,如果是,執(zhí)行S103。
[0080]具體地,電子設(shè)備可以通過(guò)判斷調(diào)用請(qǐng)求中的重畫(huà)標(biāo)志是否為RDW_INVALIDATE
(I)來(lái)判斷重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型。若重畫(huà)標(biāo)志是RDW_INVALIDATE(1),則表明重畫(huà)類(lèi)型是無(wú)效類(lèi)型,此時(shí)調(diào)用請(qǐng)求很有可能是由惡意軟件發(fā)出的,為了避免惡意軟件對(duì)創(chuàng)建待重畫(huà)窗口的程序的正常運(yùn)行造成影響,電子設(shè)備不會(huì)立即執(zhí)行調(diào)用第一函數(shù)的步驟,而會(huì)先執(zhí)行S103,相應(yīng)地,待重畫(huà)窗口將不會(huì)立即被重畫(huà)。若重畫(huà)標(biāo)志不是RDW_INVALIDATE(1),則表明重畫(huà)類(lèi)型是非無(wú)效類(lèi)型,電子設(shè)備會(huì)直接執(zhí)行調(diào)用第一函數(shù)的步驟,以響應(yīng)調(diào)用請(qǐng)求。
[0081]S103,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序,如果是,執(zhí)行S104。
[0082]需要說(shuō)明的是,惡意程序一般是指計(jì)算機(jī)系統(tǒng)中用來(lái)執(zhí)行惡意任務(wù)的病毒、蠕蟲(chóng)或者特洛伊木馬等,惡意程序一般通過(guò)破壞電子設(shè)備的軟件進(jìn)程來(lái)實(shí)施對(duì)電子設(shè)備的攻擊。
[0083]本領(lǐng)域技術(shù)人員可以理解的是,進(jìn)程是指計(jì)算機(jī)系統(tǒng)中的程序關(guān)于某數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),其是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。在早期面向進(jìn)程設(shè)計(jì)的計(jì)算機(jī)結(jié)構(gòu)中,進(jìn)程是程序的基本執(zhí)行實(shí)體;在當(dāng)代面向線程設(shè)計(jì)的計(jì)算機(jī)結(jié)構(gòu)中,進(jìn)程是線程的容器。簡(jiǎn)單來(lái)說(shuō),程序是指令、數(shù)據(jù)及其組織形式的描述,進(jìn)程是程序的實(shí)體。
[0084]需要強(qiáng)調(diào)的是,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序的具體實(shí)現(xiàn)方式存在多種,為了布局清楚,后續(xù)進(jìn)行舉例介紹。
[0085]S104,攔截第一函數(shù),進(jìn)而拒絕響應(yīng)調(diào)用請(qǐng)求。
[0086]當(dāng)判斷出第一程序是惡意程序時(shí),為了避免惡意程序?qū)?chuàng)建待重畫(huà)窗口的程序的正常運(yùn)行造成影響,電子設(shè)備會(huì)對(duì)第一函數(shù)進(jìn)行攔截,以拒絕響應(yīng)調(diào)用請(qǐng)求。
[0087]與現(xiàn)有技術(shù)相比,本實(shí)施例中,當(dāng)檢測(cè)到對(duì)系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的第一函數(shù)的調(diào)用請(qǐng)求時(shí),電子設(shè)備不會(huì)立即調(diào)用第一函數(shù),而是依次判斷調(diào)用請(qǐng)求中的重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型,以及生成調(diào)用請(qǐng)求的第一程序是否為惡意程序,在重畫(huà)類(lèi)型為無(wú)效類(lèi)型,且生成調(diào)用請(qǐng)求的第一程序是惡意程序的情況下,電子設(shè)備會(huì)對(duì)第一函數(shù)進(jìn)行攔截,進(jìn)而拒絕響應(yīng)調(diào)用請(qǐng)求,相應(yīng)地,待重畫(huà)窗口將不會(huì)被重畫(huà)為無(wú)效類(lèi)型的窗口,創(chuàng)建待重畫(huà)窗口的程序仍可正常運(yùn)行,用戶仍可繼續(xù)使用該程序,這樣可以大大地提高用戶的使用體驗(yàn),同時(shí)也較好地保證了電子設(shè)備的安全性。
[0088]參見(jiàn)圖2,圖中示出了本發(fā)明所提供的一種信息處理方法的又一流程圖。如圖2所示,該方法可以包括:
[0089]S201,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型,如果是,執(zhí)行S202o
[0090]S202,判斷重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型,如果是,執(zhí)行S203。
[0091]S203,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序,如果是,執(zhí)行S204,否則,執(zhí)行S205。
[0092]S204,攔截第一函數(shù),進(jìn)而拒絕響應(yīng)調(diào)用請(qǐng)求。
[0093]S205,調(diào)用第一函數(shù),以響應(yīng)調(diào)用請(qǐng)求。
[0094]其中,S201至S204的具體實(shí)施過(guò)程參照對(duì)SlOl至S104的說(shuō)明即可,在此不再贅述。
[0095]當(dāng)S203中判斷出第一程序不是惡意程序時(shí),則說(shuō)明希望將待重畫(huà)窗口重畫(huà)為無(wú)效類(lèi)型的窗口的程序并不是惡意程序,而是非惡意程序,此時(shí),將待重畫(huà)窗口重畫(huà)為無(wú)效類(lèi)型的窗口的操作是用戶所希望的,因此,電子設(shè)備可以調(diào)用第一函數(shù)。當(dāng)?shù)谝缓瘮?shù)被成功調(diào)用后,待重畫(huà)窗口即可按照用戶的需求被重畫(huà)。
[0096]參見(jiàn)圖3,圖中示出了本發(fā)明所提供的一種信息處理方法的又一流程圖。如圖3所示,該方法可以包括:
[0097]S301,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型,如果是,執(zhí)行S302o
[0098]S302,判斷重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型,如果是,執(zhí)行S303。
[0099]其中,S301和S302的具體實(shí)施過(guò)程參照對(duì)SlOl和S102的說(shuō)明即可,在此不再贅述。
[0100]S303,判斷待重畫(huà)窗口是否為生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的,如果是,執(zhí)行S304。
[0101]本實(shí)施例中,若判斷出待重畫(huà)窗口是生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的,則說(shuō)明第一程序希望對(duì)自身創(chuàng)建的窗口進(jìn)行重畫(huà),相應(yīng)地,對(duì)待重畫(huà)窗口的重畫(huà)操作不會(huì)對(duì)其他程序的正常運(yùn)行造成影響,因此,電子設(shè)備可以直接調(diào)用第一函數(shù),以響應(yīng)調(diào)用請(qǐng)求,而不需要再判斷發(fā)出調(diào)用請(qǐng)求的第一程序是否為惡意程序。若判斷出待重畫(huà)窗口不是生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的,則說(shuō)明第一程序希望對(duì)其他程序創(chuàng)建的窗口進(jìn)行重畫(huà),此時(shí),第一程序有可能會(huì)對(duì)其他程序的正常運(yùn)行造成影響,因此,此時(shí)電子設(shè)備不會(huì)立即調(diào)用第一函數(shù),而會(huì)先判斷第一程序是否為惡意程序。
[0102]需要說(shuō)明的是,判斷待重畫(huà)窗口是否為生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的具體實(shí)現(xiàn)方式存在多種,為了布局清楚,后續(xù)進(jìn)行舉例介紹。
[0103]S304,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序,如果是,執(zhí)行S305。
[0104]S305,攔截第一函數(shù),進(jìn)而拒絕響應(yīng)調(diào)用請(qǐng)求。
[0105]可以看出,本實(shí)施例也可以較好地避免了惡意程序?qū)㈦娮釉O(shè)備中的程序所創(chuàng)建的窗口重畫(huà)為無(wú)效類(lèi)型的窗口,從而大大地提高了用戶的使用體驗(yàn)。
[0106]更進(jìn)一步的,判斷待重畫(huà)窗口是否為生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的具體實(shí)現(xiàn)方式存在多種,下面進(jìn)行舉例介紹:
[0107]在一種具體實(shí)現(xiàn)方式中,判斷待重畫(huà)窗口是否為生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的,可以包括:
[0108]獲取待重畫(huà)窗口的窗口句柄標(biāo)識(shí);
[0109]根據(jù)窗口句柄標(biāo)識(shí),獲取與窗口句柄標(biāo)識(shí)相對(duì)應(yīng)的程序路徑信息;
[0110]獲取第一程序的路徑信息;
[0111]判斷路徑信息與程序路徑信息是否相同,如果不是,表明待重畫(huà)窗口不是生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的。
[0112]本領(lǐng)域技術(shù)人員可以理解的是,當(dāng)電子設(shè)備檢測(cè)到對(duì)第一函數(shù)的調(diào)用請(qǐng)求后,電子設(shè)備根據(jù)調(diào)用請(qǐng)求可以非常容易地獲得待重畫(huà)窗口的窗口句柄標(biāo)識(shí)以及生成調(diào)用請(qǐng)求的第一程序的路徑信息,并且,在獲得窗口句柄標(biāo)識(shí)后,電子設(shè)備根據(jù)該窗口句柄標(biāo)識(shí)也可以非常容易地獲得與該窗口句柄標(biāo)識(shí)相對(duì)應(yīng)的程序路徑信息,該程序路徑信息即為創(chuàng)建待重畫(huà)窗口的程序的路徑信息。接下來(lái),電子設(shè)備會(huì)將獲取到的兩個(gè)路徑信息進(jìn)行比對(duì),若兩者相同,則說(shuō)明生成調(diào)用請(qǐng)求的第一程序與創(chuàng)建待重畫(huà)窗口的程序?yàn)橥粋€(gè)程序,即待重畫(huà)窗口是生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的,此時(shí)對(duì)待重畫(huà)窗口的重畫(huà)操作不會(huì)對(duì)其他的程序的正常運(yùn)行造成影響,故電子設(shè)備可以直接調(diào)用第一函數(shù),否則,電子設(shè)備需要先對(duì)第一程序是否為惡意程序進(jìn)行判斷,在判斷結(jié)果為否的情況下,電子設(shè)備才會(huì)去調(diào)用第一函數(shù)。
[0113]更進(jìn)一步的,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序的具體實(shí)現(xiàn)方式存在多種,下面進(jìn)行舉例介紹:
[0114]在一種具體實(shí)現(xiàn)方式中,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序,可以包括:
[0115]獲取生成調(diào)用請(qǐng)求的第一程序的路徑信息;
[0116]根據(jù)路徑信息,獲取路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件;
[0117]根據(jù)數(shù)據(jù)文件的文件內(nèi)容,確定第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值;
[0118]根據(jù)目標(biāo)內(nèi)容標(biāo)識(shí)值和預(yù)設(shè)對(duì)應(yīng)關(guān)系,確定第一程序是否為惡意程序,其中,預(yù)設(shè)對(duì)應(yīng)關(guān)系為關(guān)于多個(gè)內(nèi)容標(biāo)識(shí)值與程序安全類(lèi)型的對(duì)應(yīng)關(guān)系,程序安全類(lèi)型的種類(lèi)包括惡意類(lèi)型和非惡意類(lèi)型。
[0119]本實(shí)施例中,電子設(shè)備內(nèi)可以具有一數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)內(nèi)可以存儲(chǔ)有多個(gè)內(nèi)容標(biāo)識(shí)值與程序安全類(lèi)型之間的預(yù)設(shè)對(duì)應(yīng)關(guān)系。
[0120]實(shí)際判斷過(guò)程中,電子設(shè)備可以先獲取生成調(diào)用請(qǐng)求的第一程序的路徑信息,然后根據(jù)該路徑信息,從與該路徑信息對(duì)應(yīng)的存儲(chǔ)區(qū)域中獲取第一程序所對(duì)應(yīng)的數(shù)據(jù)文件,該數(shù)據(jù)文件的文件內(nèi)容即為構(gòu)成第一程序的所有代碼,然后,電子設(shè)備可以根據(jù)構(gòu)成第一程序的所有代碼,確定第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值。具體地,電子設(shè)備可以通過(guò)預(yù)設(shè)的加密算法對(duì)構(gòu)成第一程序的所有代碼進(jìn)行加密,以獲得目標(biāo)內(nèi)容標(biāo)識(shí)值,該目標(biāo)內(nèi)容標(biāo)識(shí)值可以對(duì)第一程序進(jìn)行標(biāo)識(shí)。接下來(lái),電子設(shè)備可以根據(jù)目標(biāo)內(nèi)容標(biāo)識(shí)值和預(yù)設(shè)對(duì)應(yīng)關(guān)系,從數(shù)據(jù)庫(kù)中獲取與目標(biāo)內(nèi)容標(biāo)識(shí)值相對(duì)應(yīng)的程序安全類(lèi)型。若與目標(biāo)內(nèi)容標(biāo)識(shí)值所對(duì)應(yīng)的程序安全類(lèi)型為惡意類(lèi)型,則說(shuō)明第一程序是惡意程序,此時(shí)電子設(shè)備攔截第一函數(shù),故待重畫(huà)窗口將不會(huì)被重畫(huà)為無(wú)效類(lèi)型的窗口;若與目標(biāo)內(nèi)容標(biāo)識(shí)值所對(duì)應(yīng)的程序安全類(lèi)型為非惡意類(lèi)型,則說(shuō)明第一程序不是惡意程序,此時(shí)電子設(shè)備會(huì)調(diào)用第一函數(shù),故待重畫(huà)窗口將會(huì)被重畫(huà)為無(wú)效類(lèi)型的窗口。
[0121]在另一種具體實(shí)現(xiàn)方式中,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序,可以包括:
[0122]獲取生成調(diào)用請(qǐng)求的第一程序的路徑信息;
[0123]根據(jù)路徑信息,獲取路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件;
[0124]根據(jù)數(shù)據(jù)文件的文件內(nèi)容,確定第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值;
[0125]判斷本地存儲(chǔ)的惡意數(shù)據(jù)庫(kù)中是否存在目標(biāo)內(nèi)容標(biāo)識(shí)值,其中,惡意數(shù)據(jù)庫(kù)中存儲(chǔ)有多個(gè)惡意程序的內(nèi)容標(biāo)識(shí)值,若存在,表明第一程序是惡意程序。
[0126]本實(shí)施例中,電子設(shè)備內(nèi)可以具有一惡意數(shù)據(jù)庫(kù),該惡意數(shù)據(jù)庫(kù)內(nèi)可以存儲(chǔ)有多個(gè)惡意程序的內(nèi)容標(biāo)識(shí)值。
[0127]實(shí)際判斷過(guò)程中,電子設(shè)備可以先獲取生成調(diào)用請(qǐng)求的第一程序的路徑信息,然后根據(jù)該路徑信息,從與該路徑信息對(duì)應(yīng)的存儲(chǔ)區(qū)域中獲取第一程序所對(duì)應(yīng)的數(shù)據(jù)文件,該數(shù)據(jù)文件的文件內(nèi)容即為構(gòu)成第一程序的所有代碼,然后,電子設(shè)備可以根據(jù)構(gòu)成第一程序的所有代碼,確定第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值。具體地,電子設(shè)備可以通過(guò)預(yù)設(shè)的加密算法對(duì)構(gòu)成第一程序的所有代碼進(jìn)行加密,以獲得目標(biāo)內(nèi)容標(biāo)識(shí)值,該目標(biāo)內(nèi)容標(biāo)識(shí)值可以對(duì)第一程序進(jìn)行標(biāo)識(shí)。接下來(lái),電子設(shè)備可以在惡意數(shù)據(jù)庫(kù)中查找目標(biāo)內(nèi)容標(biāo)識(shí)值,若在惡意數(shù)據(jù)庫(kù)中查找到目標(biāo)內(nèi)容標(biāo)識(shí)值,即表明第一程序是惡意程序,此時(shí)電子設(shè)備攔截第一函數(shù),故待重畫(huà)窗口將不會(huì)被重畫(huà)為無(wú)效類(lèi)型的窗口;若在惡意數(shù)據(jù)庫(kù)中未查找到目標(biāo)內(nèi)容標(biāo)識(shí)值,即表明第一程序不是惡意程序,此時(shí)電子設(shè)備會(huì)調(diào)用第一函數(shù),故待重畫(huà)窗口將會(huì)被重畫(huà)為無(wú)效類(lèi)型的窗口。
[0128]需要說(shuō)明的是,上述實(shí)施例中,內(nèi)容標(biāo)識(shí)值可以為MD5值或哈希值。這樣,在獲取到第一程序所對(duì)應(yīng)的數(shù)據(jù)文件后,電子設(shè)備可以根據(jù)現(xiàn)有的、用于獲得MD5值或哈希值的加密算法來(lái)對(duì)構(gòu)成第一程序的所有代碼進(jìn)行加密,以獲得第一程序所對(duì)應(yīng)的目標(biāo)MD5值或目標(biāo)哈希值。接下來(lái),電子設(shè)備會(huì)根據(jù)目標(biāo)MD5值或目標(biāo)哈希值所對(duì)應(yīng)的程序安全類(lèi)型,或者目標(biāo)MD5值或目標(biāo)哈希值是否存在于惡意數(shù)據(jù)庫(kù)中,從而最終確定第一程序是否為惡意程序。
[0129]需要強(qiáng)調(diào)的是,內(nèi)容標(biāo)識(shí)值的類(lèi)型并不僅僅限于MD5值或哈希值,其也可以為其他類(lèi)型的、可以通過(guò)加密算法得到的標(biāo)識(shí)值,這都是可行的。
[0130]可以看出,通過(guò)上述方式來(lái)判斷第一程序是否為惡意程序時(shí),判斷過(guò)程實(shí)施起來(lái)均非常便捷。
[0131]更進(jìn)一步的,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求的具體實(shí)現(xiàn)方式存在多種,下面進(jìn)行舉例介紹:
[0132]在一種具體實(shí)現(xiàn)方式中,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,可以包括:
[0133]通過(guò)設(shè)置鉤子函數(shù)的方式,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求。
[0134]需要說(shuō)明的是,鉤子是Windows處理機(jī)制的一個(gè)平臺(tái),程序可以在該平臺(tái)上設(shè)置子程序以監(jiān)視指定窗口的某種動(dòng)作,并且,其所監(jiān)視的窗口可以是其他程序創(chuàng)建的。對(duì)于鉤子函數(shù)而言,其實(shí)際上是一個(gè)處理消息的程序段,其可以掛入系統(tǒng)中,這樣,每當(dāng)有特定的消息發(fā)出之后,在該消息到達(dá)目標(biāo)窗口之前,鉤子函數(shù)就會(huì)將該消息捕獲,并取得對(duì)該消息的控制權(quán)。具體地,鉤子函數(shù)可以加工處理該消息,或者鉤子函數(shù)也可以不做處理并傳遞該消息,或者鉤子函數(shù)也可以強(qiáng)制結(jié)束該消息的傳遞。
[0135]下面以第一函數(shù)為NtUserRedrawWindow函數(shù),倉(cāng)Li建待重畫(huà)窗口的程序?yàn)榻鹕蕉景缘那闆r為例,對(duì)本實(shí)施例中的鉤子函數(shù)的工作原理進(jìn)行詳細(xì)說(shuō)明。
[0136]首先,可以在金山毒霸的防御驅(qū)動(dòng)程序中設(shè)置一鉤子函數(shù),并使該鉤子函數(shù)與NtUserRedrawWindow函數(shù)進(jìn)行掛鉤。這樣,當(dāng)?shù)谝怀绦蛳M麑?duì)金山毒霸的窗口進(jìn)行重畫(huà)時(shí),第一程序就會(huì)發(fā)出調(diào)用請(qǐng)求,以通知電子設(shè)備的操作系統(tǒng)去調(diào)用NtUserRedrawWindow函數(shù),該鉤子函數(shù)會(huì)先于NtUserRedrawWindow函數(shù)接收到調(diào)用請(qǐng)求,此時(shí)電子設(shè)備會(huì)在鉤子函數(shù)中判斷重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型,若重畫(huà)類(lèi)型不是無(wú)效類(lèi)型,電子設(shè)備就會(huì)直接調(diào)用NtUserRedrawWindow函數(shù),否則,電子設(shè)備就會(huì)在鉤子函數(shù)中判斷創(chuàng)建待重畫(huà)窗口的程序和第一程序是不是同一個(gè)程序。若創(chuàng)建待重畫(huà)窗口的程序和第一程序是同一個(gè)程序,那么電子設(shè)備就會(huì)直接調(diào)用NtUserRedrawWindow函數(shù),否則,電子設(shè)備就會(huì)在鉤子函數(shù)中判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序。若第一程序不是惡意程序,電子設(shè)備就會(huì)直接調(diào)用NtUserRedrawWindow函數(shù),以響應(yīng)調(diào)用請(qǐng)求,否則,金山毒霸的防御驅(qū)動(dòng)程序就會(huì)攔截NtUserRedrawWindow函數(shù),這樣,惡意程序?qū)⒔鹕蕉景缘拇翱谥禺?huà)為無(wú)效類(lèi)型的窗口的請(qǐng)求失敗,金山毒霸能夠正常地運(yùn)行,以可靠地保證電子設(shè)備的安全性。
[0137]需要說(shuō)明的是,驅(qū)動(dòng)程序一般是指設(shè)備驅(qū)動(dòng)程序,其是一種可以使計(jì)算機(jī)和設(shè)備通信的特殊程序,其相當(dāng)于硬件的接口,操作系統(tǒng)只有通過(guò)這個(gè)接口,才能控制硬件設(shè)備的工作,若某設(shè)備的驅(qū)動(dòng)程序未能正確安裝,那么該設(shè)備將無(wú)法正常工作。因此,驅(qū)動(dòng)程序被比作“硬件的靈魂”、“硬件的主宰”和“硬件和系統(tǒng)之間的橋梁”等。
[0138]可以看出,當(dāng)采用鉤子函數(shù)的方式來(lái)檢測(cè)對(duì)第一函數(shù)的調(diào)用請(qǐng)求時(shí),該檢測(cè)操作執(zhí)行起來(lái)非常方便。
[0139]綜上,本實(shí)施例提供的信息處理方法較好地避免了惡意程序?qū)㈦娮釉O(shè)備中的程序所創(chuàng)建的窗口重畫(huà)為無(wú)效類(lèi)型的窗口,從而大大地提高了用戶的使用體驗(yàn)。
[0140]相應(yīng)于上述方法實(shí)施例,本發(fā)明實(shí)施例還提供了一種信息處理裝置。下面對(duì)本發(fā)明所提供的一種信息處理裝置進(jìn)行說(shuō)明。
[0141]參見(jiàn)圖4,圖中示出了本發(fā)明所提供的一種信息處理裝置的結(jié)構(gòu)框圖。如圖4所示,該裝置可以包括:
[0142]調(diào)用請(qǐng)求檢測(cè)模塊41,用于檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型;
[0143]調(diào)用請(qǐng)求類(lèi)型判斷模塊42,用于在檢測(cè)到對(duì)第一函數(shù)的調(diào)用請(qǐng)求的情況下,判斷重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型;
[0144]惡意程序判斷模塊43,用于在重畫(huà)類(lèi)型是無(wú)效類(lèi)型的情況下,判斷生成調(diào)用請(qǐng)求的第一程序是否為惡意程序;
[0145]第一執(zhí)行模塊44,用于在第一程序是惡意程序的情況下,攔截第一函數(shù),進(jìn)而拒絕響應(yīng)調(diào)用請(qǐng)求。
[0146]與現(xiàn)有技術(shù)相比,本實(shí)施例中,當(dāng)檢測(cè)到對(duì)系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的第一函數(shù)的調(diào)用請(qǐng)求時(shí),電子設(shè)備不會(huì)立即調(diào)用第一函數(shù),而是依次判斷調(diào)用請(qǐng)求中的重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型,以及生成調(diào)用請(qǐng)求的第一程序是否為惡意程序,在重畫(huà)類(lèi)型為無(wú)效類(lèi)型,且生成調(diào)用請(qǐng)求的第一程序是惡意程序的情況下,電子設(shè)備會(huì)對(duì)第一函數(shù)進(jìn)行攔截,進(jìn)而拒絕響應(yīng)調(diào)用請(qǐng)求,相應(yīng)地,待重畫(huà)窗口將不會(huì)被重畫(huà)為無(wú)效類(lèi)型的窗口,創(chuàng)建待重畫(huà)窗口的程序仍可正常運(yùn)行,用戶仍可繼續(xù)使用該程序,這樣可以大大地提高用戶的使用體驗(yàn),同時(shí)也較好地保證了電子設(shè)備的安全性。
[0147]更進(jìn)一步的,上述裝置還包括:
[0148]第二執(zhí)行模塊,用于在判斷第一程序是否為惡意程序,且判斷結(jié)果為否的情況下,調(diào)用第一函數(shù),以響應(yīng)調(diào)用請(qǐng)求。
[0149]更進(jìn)一步的,上述裝置還包括:
[0150]窗口創(chuàng)建對(duì)象判斷模塊,用于在重畫(huà)類(lèi)型是無(wú)效類(lèi)型的情況下,判斷待重畫(huà)窗口是否為生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的,若為否,觸發(fā)惡意程序判斷模塊。
[0151]更進(jìn)一步的,上述裝置中,窗口創(chuàng)建對(duì)象判斷模塊,包括:
[0152]窗口句柄標(biāo)識(shí)獲取模塊,用于獲取待重畫(huà)窗口的窗口句柄標(biāo)識(shí);
[0153]程序路徑信息獲取單元,用于根據(jù)窗口句柄標(biāo)識(shí),獲取與窗口句柄標(biāo)識(shí)相對(duì)應(yīng)的程序路徑信息;
[0154]第一路徑信息獲取單元,用于獲取第一程序的路徑信息;
[0155]路徑信息判斷單元,用于判斷路徑信息與程序路徑信息是否相同,如果不是,表明待重畫(huà)窗口不是生成調(diào)用請(qǐng)求的第一程序創(chuàng)建的。
[0156]更進(jìn)一步的,上述裝置中,惡意程序判斷模塊,包括:
[0157]第二路徑信息獲取單元,用于獲取生成調(diào)用請(qǐng)求的第一程序的路徑信息;
[0158]第一數(shù)據(jù)文件獲取單元,用于根據(jù)路徑信息,獲取路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件;
[0159]第一目標(biāo)內(nèi)容標(biāo)識(shí)值確定單元,用于根據(jù)數(shù)據(jù)文件的文件內(nèi)容,確定第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值;
[0160]第一惡意程序確定單元,用于根據(jù)目標(biāo)內(nèi)容標(biāo)識(shí)值和預(yù)設(shè)對(duì)應(yīng)關(guān)系,確定第一程序是否為惡意程序,其中,預(yù)設(shè)對(duì)應(yīng)關(guān)系為關(guān)于多個(gè)內(nèi)容標(biāo)識(shí)值與程序安全類(lèi)型的對(duì)應(yīng)關(guān)系,程序安全類(lèi)型的種類(lèi)包括惡意類(lèi)型和非惡意類(lèi)型。
[0161 ]更進(jìn)一步的,上述裝置中,惡意程序判斷模塊,包括:
[0162]第三路徑信息獲取單元,用于獲取生成調(diào)用請(qǐng)求的第一程序的路徑信息;
[0163]第二數(shù)據(jù)文件獲取單元,用于根據(jù)路徑信息,獲取路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件;
[0164]第二目標(biāo)內(nèi)容標(biāo)識(shí)值確定單元,用于根據(jù)數(shù)據(jù)文件的文件內(nèi)容,確定第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值;
[0165]第二惡意程序確定單元,用于判斷本地存儲(chǔ)的惡意數(shù)據(jù)庫(kù)中是否存在目標(biāo)內(nèi)容標(biāo)識(shí)值,其中,惡意數(shù)據(jù)庫(kù)中存儲(chǔ)有多個(gè)惡意程序的內(nèi)容標(biāo)識(shí)值,若存在,表明第一程序是惡意程序。
[0166]更進(jìn)一步的,上述裝置中,內(nèi)容標(biāo)識(shí)值為MD5值或哈希值。
[0167]更進(jìn)一步的,上述裝置中,調(diào)用請(qǐng)求檢測(cè)模塊具體用于通過(guò)設(shè)置鉤子函數(shù)的方式,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求。
[0168]綜上,本實(shí)施例提供的信息處理裝置較好地避免了惡意程序?qū)㈦娮釉O(shè)備中的程序所創(chuàng)建的窗口重畫(huà)為無(wú)效類(lèi)型的窗口,從而大大地提高了用戶的使用體驗(yàn)。
[0169]需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0170]本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
[0171]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種信息處理方法,其特征在于,所述方法包括: 檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,所述第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),所述調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型; 若為是,判斷所述重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型; 若所述重畫(huà)類(lèi)型是無(wú)效類(lèi)型,判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序; 若所述第一程序是惡意程序,攔截所述第一函數(shù),進(jìn)而拒絕響應(yīng)所述調(diào)用請(qǐng)求。2.如權(quán)利要求1所述的方法,其特征在于,所述判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序之后,所述方法還包括: 若所述第一程序不是惡意程序,調(diào)用所述第一函數(shù),以響應(yīng)所述調(diào)用請(qǐng)求。3.如權(quán)利要求1所述的方法,其特征在于,若所述重畫(huà)類(lèi)型是無(wú)效類(lèi)型,所述方法還包括: 判斷所述待重畫(huà)窗口是否為生成所述調(diào)用請(qǐng)求的第一程序創(chuàng)建的,若為否,執(zhí)行所述判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序。4.如權(quán)利要求3所述的方法,其特征在于,所述判斷所述待重畫(huà)窗口是否為生成所述調(diào)用請(qǐng)求的第一程序創(chuàng)建的,包括: 獲取所述待重畫(huà)窗口的窗口句柄標(biāo)識(shí); 根據(jù)所述窗口句柄標(biāo)識(shí),獲取與所述窗口句柄標(biāo)識(shí)相對(duì)應(yīng)的程序路徑信息; 獲取所述第一程序的路徑信息; 判斷所述路徑信息與所述程序路徑信息是否相同,如果不是,表明所述待重畫(huà)窗口不是生成所述調(diào)用請(qǐng)求的第一程序創(chuàng)建的。5.如權(quán)利要求1所述的方法,其特征在于,所述判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序,包括: 獲取生成所述調(diào)用請(qǐng)求的第一程序的路徑信息; 根據(jù)所述路徑信息,獲取所述路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件; 根據(jù)所述數(shù)據(jù)文件的文件內(nèi)容,確定所述第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值; 根據(jù)所述目標(biāo)內(nèi)容標(biāo)識(shí)值和預(yù)設(shè)對(duì)應(yīng)關(guān)系,確定所述第一程序是否為惡意程序,其中,所述預(yù)設(shè)對(duì)應(yīng)關(guān)系為關(guān)于多個(gè)內(nèi)容標(biāo)識(shí)值與程序安全類(lèi)型的對(duì)應(yīng)關(guān)系,所述程序安全類(lèi)型的種類(lèi)包括惡意類(lèi)型和非惡意類(lèi)型。6.如權(quán)利要求1所述的方法,其特征在于,所述判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序,包括: 獲取生成所述調(diào)用請(qǐng)求的第一程序的路徑信息; 根據(jù)所述路徑信息,獲取所述路徑信息所對(duì)應(yīng)的數(shù)據(jù)文件; 根據(jù)所述數(shù)據(jù)文件的文件內(nèi)容,確定所述第一程序的目標(biāo)內(nèi)容標(biāo)識(shí)值; 判斷本地存儲(chǔ)的惡意數(shù)據(jù)庫(kù)中是否存在所述目標(biāo)內(nèi)容標(biāo)識(shí)值,其中,所述惡意數(shù)據(jù)庫(kù)中存儲(chǔ)有多個(gè)惡意程序的內(nèi)容標(biāo)識(shí)值,若存在,表明所述第一程序是惡意程序。7.如權(quán)利要求5或6所述的方法,其特征在于,所述內(nèi)容標(biāo)識(shí)值為MD5值或哈希值。8.如權(quán)利要求1-6中任一項(xiàng)所述的方法,其特征在于,所述檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,包括: 通過(guò)設(shè)置鉤子函數(shù)的方式,檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求。9.一種信息處理裝置,其特征在于,包括: 調(diào)用請(qǐng)求檢測(cè)模塊,用于檢測(cè)是否接收到對(duì)第一函數(shù)的調(diào)用請(qǐng)求,其中,所述第一函數(shù)為:系統(tǒng)內(nèi)核層中用于執(zhí)行窗口重畫(huà)操作的函數(shù),所述調(diào)用請(qǐng)求中包括針對(duì)待重畫(huà)窗口的重畫(huà)類(lèi)型; 調(diào)用請(qǐng)求類(lèi)型判斷模塊,用于在檢測(cè)到對(duì)第一函數(shù)的調(diào)用請(qǐng)求的情況下,判斷所述重畫(huà)類(lèi)型是否為無(wú)效類(lèi)型; 惡意程序判斷模塊,用于在所述重畫(huà)類(lèi)型是無(wú)效類(lèi)型的情況下,判斷生成所述調(diào)用請(qǐng)求的第一程序是否為惡意程序; 第一執(zhí)行模塊,用于在所述第一程序是惡意程序的情況下,攔截所述第一函數(shù),進(jìn)而拒絕響應(yīng)所述調(diào)用請(qǐng)求。10.如權(quán)利要求9所述的裝置,其特征在于,還包括: 第二執(zhí)行模塊,用于在判斷所述第一程序是否為惡意程序,且判斷結(jié)果為否的情況下,調(diào)用所述第一函數(shù),以響應(yīng)所述調(diào)用請(qǐng)求。
【文檔編號(hào)】G06F21/55GK106022122SQ201610373229
【公開(kāi)日】2016年10月12日
【申請(qǐng)日】2016年5月31日
【發(fā)明人】楊峰
【申請(qǐng)人】北京金山安全軟件有限公司