一種進程控制方法及用戶終端的制作方法
【專利摘要】本發(fā)明實施例公開了一種進程控制方法及用戶終端,包括:當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息,目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程;獲取第二目標進程的進程信息,第二目標進程為將目標窗口從剪貼板監(jiān)聽鏈中移除的進程;檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配;若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。由此可見,實施該發(fā)明實施例能夠避免第二目標進程的惡意破壞,以確保窗口所屬進程(第一目標進程)的正常操作,提高用戶終端的安全性。
【專利說明】
一種進程控制方法及用戶終端
技術領域
[0001]本發(fā)明涉及安全技術領域,尤其涉及一種進程控制方法及用戶終端?!颈尘凹夹g】
[0002]進程是計算機中程序關于某數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調度的基本單位,是操作系統(tǒng)結構的基礎。而剪貼板是內存中的一塊區(qū)域,是Windows內置的一個非常有用的工具,通過小小的剪貼板,架起了一座彩橋,使得在各種應用程序之間, 傳遞和共享信息成為可能。在實際應用中發(fā)現(xiàn),操作系統(tǒng)會給剪貼板提供監(jiān)聽鏈機制,也即,操作系統(tǒng)會對與剪貼板相關的窗口進行實時監(jiān)聽,以使窗口可以接收到剪貼板更新的消息。然而,非法用戶可以使用惡意進程將窗口從操作系統(tǒng)的剪貼板監(jiān)聽鏈中移除,導致在用戶復制或者剪切時,該窗口不能接收到剪貼板更新的消息,以至于該窗口的所屬進程實施獲取剪貼板數(shù)據(jù)失敗,破壞了窗口所屬進程的正常操作。
【發(fā)明內容】
[0003]本發(fā)明實施例提供了一種進程控制方法及用戶終端,能夠確保窗口所屬進程的正常操作。
[0004]第一方面,本發(fā)明實施例公開了一種進程控制方法,包括:
[0005]當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息,所述目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),所述第一目標進程為將被從所述剪貼板監(jiān)聽鏈中移除的窗口的所屬進程;
[0006]獲取第二目標進程的進程信息,所述第二目標進程為將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除的進程;
[0007]檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息是否匹配;
[0008]若檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息不匹配,禁止所述第二目標進程將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除。
[0009]結合第一方面的實現(xiàn)方式,在第一方面的第一種可能的實現(xiàn)方式中,還可以包括以下步驟:
[0010]檢測所述第二目標進程是否為惡意進程;
[0011]若檢測所述第二目標進程為所述惡意進程,則執(zhí)行所述禁止所述第二目標進程將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除的步驟。
[0012]結合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述第二目標進程的進程信息為進程路徑,所述獲取第二目標進程的進程信息,包括:
[0013]獲取所述第二目標進程的進程句柄參數(shù);
[0014]根據(jù)所述句柄參數(shù)從預設的映射表中獲取與所述句柄參數(shù)匹配的進程路徑,其中,所述映射表用于描述進程路徑與句柄關系的對應關系。
[0015]結合第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述檢測所述第二目標進程是否為惡意進程,包括:
[0016]檢測所述第二目標進程的進程路徑是否屬于預設的惡意進程路徑集合;
[0017]若檢測所述第二目標進程的進程路徑屬于所述預設的惡意進程路徑集合,則確定所述第二目標進程為所述惡意進程;若檢測所述第二目標進程的進程路徑不屬于所述預設的惡意進程路徑集合,則確定所述第二目標進程不為所述惡意進程。
[0018]結合第一方面的實現(xiàn)方式、第一方面的第一種可能的實現(xiàn)方式、第一方面的第二種可能的實現(xiàn)方式以及第一方面的第三種可能的實現(xiàn)方式中的任意一種實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,還可以包括以下步驟:
[0019]若檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息匹配,則不對所述第二目標進程進行控制。
[0020]第二方面,本發(fā)明實施例還公開了一種用戶終端,包括:[0021 ]獲取模塊,用于當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息,所述目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),所述第一目標進程為將被從所述剪貼板監(jiān)聽鏈中移除的窗口的所屬進程;
[0022]所述獲取模塊,用于獲取第二目標進程的進程信息,所述第二目標進程為將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除的進程;
[0023]檢測模塊,用于檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息是否匹配;
[0024]控制模塊,用于若所述檢測模塊檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息不匹配,則控制所述用戶終端禁止所述第二目標進程將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除。
[0025]結合第二方面的用戶終端,在第二方面的第一種可能的用戶終端中,所述檢測模塊,還用于檢測所述第二目標進程是否為惡意進程;
[0026]所述控制模塊控制所述用戶終端禁止所述第二目標進程將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除的【具體實施方式】為若所述檢測模塊檢測所述第二目標進程為所述惡意進程,控制所述用戶終端禁止所述第二目標進程將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除。
[0027]結合第二方面的第一種可能的用戶終端,在第二方面的第二種可能的用戶終端中,所述第二目標進程的進程信息為進程路徑,所述獲取模塊包括:
[0028]第一獲取單元,用于獲取所述第二目標進程的進程句柄參數(shù);
[0029]第二獲取單元,用于根據(jù)所述句柄參數(shù)從預設的映射表中獲取與所述句柄參數(shù)匹配的進程路徑,其中,所述映射表用于描述進程路徑與句柄關系的對應關系。
[0030]結合第二方面的第二種可能的用戶終端,在第二方面的第三種可能的用戶終端中,所述檢測模塊包括:[0031 ]檢測單元,用于檢測所述第二目標進程的進程路徑是否屬于預設的惡意進程路徑集合;[〇〇32]確定單元,用于若所述檢測單元檢測所述第二目標進程的進程路徑屬于所述預設的惡意進程路徑集合,則確定所述第二目標進程為所述惡意進程;若所述檢測單元檢測所述第二目標進程的進程路徑不屬于所述預設的惡意進程路徑集合,則確定所述第二目標進程不為所述惡意進程。
[0033]結合第二方面的用戶終端、第二方面的第一種可能的用戶終端、第二方面的第二種可能的用戶終端以及第二方面的第三種可能的用戶終端中的任意一種用戶終端,在第二方面的第四種可能的用戶終端中,所述控制模塊,還用于若所述檢測模塊檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息匹配,則不對所述第二目標進程進行控制。
[0034]本發(fā)明實施例中,當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息,目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程;獲取第二目標進程的進程信息,第二目標進程為將目標窗口從剪貼板監(jiān)聽鏈中移除的進程;檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配;若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。在本發(fā)明實施例中,當檢測到目標函數(shù)被調用時,則說明有窗口將被從剪貼板監(jiān)聽鏈中移除,則用戶終端可以檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配,若檢測第一目標進程的進程信息與第二目標進程的進程信息匹配,則說明是第一目標進程自身控制窗口移除剪貼板監(jiān)聽鏈,則說明是正常的移除行為,若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,則說明目標窗口是被迫從剪貼板監(jiān)聽鏈移除,則可以禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除,避免第二目標進程的惡意破壞,以確保窗口所屬進程(第一目標進程)的正常操作,提高用戶終端的安全性。【附圖說明】
[0035]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0036]圖1是本發(fā)明實施例公開的一種進程控制方法的流程示意圖;
[0037]圖2是本發(fā)明實施例公開的另一種進程控制方法的流程示意圖;
[0038]圖3是本發(fā)明實施例公開的一種用戶終端的結構示意圖;
[0039]圖4是本發(fā)明實施例公開的另一種用戶終端的結構示意圖;
[0040]圖5是本發(fā)明實施例公開的又一種用戶終端的結構示意圖?!揪唧w實施方式】
[0041]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0042]本發(fā)明實施例提供了一種進程控制方法及用戶終端,在本發(fā)明實施例中,當檢測到目標函數(shù)被調用時,則說明有窗口將被從剪貼板監(jiān)聽鏈中移除,則用戶終端可以檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配,若檢測第一目標進程的進程信息與第二目標進程的進程信息匹配,則說明是第一目標進程自身控制窗口移除剪貼板監(jiān)聽鏈,且說明是正常的移除行為,若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,則說明目標窗口是被迫從剪貼板監(jiān)聽鏈移除,則可以禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除,避免第二目標進程的惡意破壞,以確保窗口所屬進程(第一目標進程)的正常操作,提高用戶終端的安全性。以下分別進行詳細描述。
[0043]請參閱圖1,圖1是本發(fā)明實施例公開的一種進程控制方法的流程示意圖。其中,圖 1所示的方法可以適用于智能手機(如Android手機、1S手機等)、平板電腦、掌上電腦以及移動互聯(lián)網設備(Mobile Internet Devices,MID)等用戶終端中。如圖1所示,該進程控制方法可以包括以下步驟:
[0044]101、當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息。
[0045]本發(fā)明實施例中,目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),也即, 當目標函數(shù)被調用時,也就意味著當前可能正在修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口。舉例來說,通常情況下是Hook應用層的ChangeCl ipboardChain函數(shù),Changed ipboardChain函數(shù)對應于系統(tǒng)內核的函數(shù)是NtUserChangeCl ipboardChain函數(shù),惡意程序可以通過調用內核的NtUserChangeCl ipboardChain函數(shù)來阻止正常窗口對系統(tǒng)剪貼板的監(jiān)聽。也即, NtUserChangeClipboardChain函數(shù)也即為上述目標函數(shù)。
[0046]本發(fā)明實施例中,第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程。舉例來說,將被從剪貼板監(jiān)聽鏈中移除的窗口為窗口A,窗口A的所屬進程為進程A,也即,進程A為上述目標進程。[〇〇47]本發(fā)明實施例中,第一目標進程是用戶終端中程序關于某數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調度的基本單位,是用戶終端的操作系統(tǒng)結構的基礎。在早期面向進程設計的計算機結構中,進程是程序的基本執(zhí)行實體;在當代面向線程設計的計算機結構中,進程是線程的容器;程序是指令、數(shù)據(jù)及其組織形式的描述,進程是程序的實體。
[0048] 其中,第一目標進程的進程信息可以包括但不限于進程名稱、進程編號、進程句柄數(shù)、進程路徑以及線程數(shù)中的一種或多種。[〇〇49]其中,進程句柄數(shù)是WINDOWS用來標識被應用程序所建立或使用的對象的唯一整數(shù),WINDOWS使用各種各樣的句柄標識諸如應用程序實例、窗口、控制以及位圖等等。 WINDOWS句柄有點像C語言中的文件句柄。句柄是一個標識符,是拿來標識對象或者項目的, 它就像我們的姓名一樣,每個人都會有一個,不同的人的姓名不一樣,但是,也可能有一個名字和你一樣的人,而句柄則是唯一的。從數(shù)據(jù)類型上來看它只是一個32位的無符號整數(shù) (16位機是16位)。應用程序幾乎總是通過調用一個WINDOWS函數(shù)來獲得一個句柄,之后其他的WINDOWS函數(shù)就可以使用該句柄,以引用相應的對象。[〇〇50] 具體地,當NtUserChangeCl ipboardChain函數(shù)檢測到被調用時,貝lj系統(tǒng)會首先調用H00K函數(shù),以獲取第一目標進程的進程信息。[0051 ]102、獲取第二目標進程的進程信息。
[0052]本發(fā)明實施例中,第二目標進程為將目標窗口從剪貼板監(jiān)聽鏈中移除的進程。舉例來說,目標窗口為窗口 A,將窗口 A從剪貼板監(jiān)聽鏈中移除的進程為進程A,則進程A為上述的第二目標進程。[〇〇53] 本發(fā)明實施例中,第二目標進程的進程信息可以包括但不限于進程名稱、進程編號、進程句柄數(shù)、進程路徑以及線程數(shù)中的一種或多種。
[0054]103、檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配。
[0055]本發(fā)明實施例中,在獲取第一目標進程的進程信息以及第二目標進程的進程信息之后,則可以檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配。其中,檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配可以包括檢測第一目標進程的進程信息與第二目標進程的進程信息是否一致。具體地,若檢測到第一目標進程的進程信息與第二目標進程的進程信息匹配,則說明是目標窗口所屬進程(第一目標進程)將目標窗口從剪貼板監(jiān)聽鏈中移除,而不是惡意進程的攻擊行為,則不需要對第二目標進程進行控制;若檢測到第一目標進程的進程信息與第二目標進程的進程信息不匹配,則可能第二目標進程為惡意進程,目前正在對系統(tǒng)有攻擊破壞行為。
[0056]104、若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。
[0057]本發(fā)明實施例中,若檢測到第一目標進程的進程信息與第二目標進程的進程信息不匹配,則可能第二目標進程為惡意進程,目前正在對系統(tǒng)有攻擊破壞行為,則可以禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。
[0058]在圖1中,詳細描述了當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息,目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程;獲取第二目標進程的進程信息,第二目標進程為將目標窗口從剪貼板監(jiān)聽鏈中移除的進程;檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配;若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。在本發(fā)明實施例中,當檢測到目標函數(shù)被調用時,則說明有窗口將被從剪貼板監(jiān)聽鏈中移除,則用戶終端可以檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配,若檢測第一目標進程的進程信息與第二目標進程的進程信息匹配,則說明是第一目標進程自身控制窗口移除剪貼板監(jiān)聽鏈,則說明是正常的移除行為,若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,則說明目標窗口是被迫從剪貼板監(jiān)聽鏈移除,則可以禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除,避免第二目標進程的惡意破壞,以確保窗口所屬進程(第一目標進程)的正常操作,提高用戶終端的安全性。
[0059]請參閱圖2,圖2是本發(fā)明實施例公開的另一種進程控制方法的流程示意圖。如圖2 所示,該進程控制方法可以包括以下步驟:
[0060]201、當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息。
[0061]本發(fā)明實施例中,目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程。
[0062]本發(fā)明實施例中,第一目標進程的進程信息可以包括但不限于進程名稱、進程編號、進程句柄數(shù)、進程路徑以及線程數(shù)中的一種或多種。[〇〇63]202、獲取第二目標進程的進程信息。
[0064]本發(fā)明實施例中,第二目標進程為將目標窗口從所述剪貼板監(jiān)聽鏈中移除的進程。
[0065]本發(fā)明實施例中,第二目標進程的進程信息可以包括但不限于進程名稱、進程編號、進程句柄數(shù)、進程路徑以及線程數(shù)中的一種或多種。
[0066]本發(fā)明實施例中,當?shù)诙繕诉M程的進程信息為進程路徑時,則上述獲取第二目標進程的進程信息的【具體實施方式】為獲取第二目標進程的進程句柄參數(shù);并根據(jù)句柄參數(shù)從預設的映射表中獲取與句柄參數(shù)匹配的進程路徑,其中,映射表用于描述進程路徑與句柄關系的對應關系。
[0067]具體地,預設的映射表用于描述進程路徑與句柄關系的對應關系,也即,根據(jù)目標進程的句柄參數(shù)可以在預設的映射表中查找到第二目標進程的進程路徑。
[0068]其中,該預設的映射表可以是用戶根據(jù)需要進行設定,也可以是用戶終端根據(jù)用戶的歷史設定記錄進行設定,還可以是用戶終端系統(tǒng)默認的,本發(fā)明實施例不作限定。 [〇〇69]其中,句柄參數(shù)是WINDOWS用來標識被應用程序所建立或使用的對象的唯一整數(shù), WINDOWS使用各種各樣的句柄標識諸如應用程序實例、窗口、控制以及位圖等等。WINDOWS句柄有點像C語言中的文件句柄。句柄是一個標識符,是拿來標識對象或者項目的,它就像我們的姓名一樣,每個人都會有一個,不同的人的姓名不一樣,但是,也可能有一個名字和你一樣的人,而句柄則是唯一的。從數(shù)據(jù)類型上來看它只是一個32位的無符號整數(shù)(16位機是 16位)。應用程序幾乎總是通過調用一個WINDOWS函數(shù)來獲得一個句柄,之后其他的WINDOWS 函數(shù)就可以使用該句柄,以引用相應的對象。
[0070]203、檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配。[0071 ]本發(fā)明實施例中,在獲取第一目標進程的進程信息以及第二目標進程的進程信息之后,則可以檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配。其中,檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配可以包括檢測第一目標進程的進程信息與第二目標進程的進程信息是否一致。具體地,若檢測到第一目標進程的進程信息與第二目標進程的進程信息匹配,則說明是目標窗口所屬進程(第一目標進程)將目標窗口從剪貼板監(jiān)聽鏈中移除,而不是惡意進程的攻擊行為,則不需要對第二目標進程進行控制。[〇〇72]204、若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,檢測第二目標進程是否為惡意進程。
[0073]本發(fā)明實施例中,若檢測到第一目標進程的進程信息與第二目標進程的進程信息不匹配,則第二目標進程可能為惡意進程,目前正在對系統(tǒng)有攻擊破壞行為,為了進一步確定第二目標進程的進程性質(惡意進程或者非惡意進程),則可以檢測第二目標進程是否為惡意進程。
[0074]進一步,用戶終端檢測第二目標進程是否為惡意進程的【具體實施方式】為檢測第二目標進程的進程路徑是否屬于預設的惡意進程路徑集合;若檢測第二目標進程的進程路徑屬于預設的惡意進程路徑集合,則確定第二目標進程為惡意進程;若檢測第二目標進程的進程路徑不屬于預設的惡意進程路徑集合,則確定第二目標進程不為惡意進程。
[0075]本發(fā)明實施例中,可以在用戶終端中預先設置一個惡意進程路徑集合,其中,該惡意進程路徑集合可以是用戶根據(jù)需要設置,并可以實時更新,也可以是用戶終端根據(jù)用戶的歷史設定記錄進行設定,還可以是用戶終端中系統(tǒng)默認的,本發(fā)明實施不作限定。
[0076]本發(fā)明實施例中,在獲取第二目標進程的進程路徑之后,則可以檢測第二目標進程的進程路徑是否屬于預設惡意進程路徑集合,若檢測第二目標進程的進程路徑屬于預設惡意進程路徑集合,則說明第二目標進程為惡意進程,若檢測第二目標進程的進程路徑不屬于預設惡意進程路徑集合,則說明第二目標進程不為惡意進程。舉例來說,若預設惡意進程路徑集合為{aedf.exe,3828.exe,aedx.exe,aedg.exe},第二目標進程的進程路徑為 aedf.exe,則說明第二目標進程的進程路徑屬于預設惡意進程路徑集合,則說明第二目標進程為惡意進程。[〇〇77]205、若檢測第二目標進程為惡意進程,禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。
[0078]本發(fā)明實施例中,若檢測第二目標進程為惡意進程,則第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除是一個非法攻擊行為,則用戶終端可以禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除,以保證第一目標進程的正常操作,提高用戶終端系統(tǒng)的安全性。
[0079]在圖2中,詳細描述了如何確定第二目標進程是否為惡意進程的方式,且在檢測到第二目標進程為惡意進程時,用戶終端可以禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除,以保證第一目標進程的正常操作,提高用戶終端系統(tǒng)的安全性。
[0080]請參閱圖3,圖3是本發(fā)明實施例公開的一種用戶終端的結構示意圖,用于執(zhí)行上述進程控制方法。其中,圖3所示的用戶終端可以包括但不限于智能手機(如Android手機、 1S手機等)、平板電腦、掌上電腦以及移動互聯(lián)網設備(Mobile Internet Devices,MID)等用戶終端。如圖3所示,該用戶終端可以包括:[0081 ]獲取模塊301,用于當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息, 目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程。
[0082]本發(fā)明實施例中,目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),也即, 當目標函數(shù)被調用時,也就意味著當前可能正在修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口。舉例來說,通常情況下是Hook應用層的ChangeCl ipboardChain函數(shù),Changed ipboardChain函數(shù)對應于系統(tǒng)內核的函數(shù)是NtUserChangeCl ipboardChain函數(shù),惡意程序可以通過調用內核的NtUserChangeCl ipboardChain函數(shù)來阻止正常窗口對系統(tǒng)剪貼板的監(jiān)聽。也即, NtUserChangeClipboardChain函數(shù)也即為上述目標函數(shù)。
[0083]本發(fā)明實施例中,第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程。舉例來說,將被從剪貼板監(jiān)聽鏈中移除的窗口為窗口A,窗口A的所屬進程為進程A,也即,進程A為上述目標進程。[〇〇84]本發(fā)明實施例中,第一目標進程是用戶終端中程序關于某數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調度的基本單位,是用戶終端的操作系統(tǒng)結構的基礎。在早期面向進程設計的計算機結構中,進程是程序的基本執(zhí)行實體;在當代面向線程設計的計算機結構中,進程是線程的容器;程序是指令、數(shù)據(jù)及其組織形式的描述,進程是程序的實體。
[0085] 其中,第一目標進程的進程信息可以包括但不限于進程名稱、進程編號、進程句柄數(shù)、進程路徑以及線程數(shù)中的一種或多種。[〇〇86]其中,進程句柄數(shù)是WINDOWS用來標識被應用程序所建立或使用的對象的唯一整數(shù),WINDOWS使用各種各樣的句柄標識諸如應用程序實例、窗口、控制以及位圖等等。 WINDOWS句柄有點像C語言中的文件句柄。句柄是一個標識符,是拿來標識對象或者項目的, 它就像我們的姓名一樣,每個人都會有一個,不同的人的姓名不一樣,但是,也可能有一個名字和你一樣的人,而句柄則是唯一的。從數(shù)據(jù)類型上來看它只是一個32位的無符號整數(shù)(16位機是16位)。應用程序幾乎總是通過調用一個WINDOWS函數(shù)來獲得一個句柄,之后其他的WINDOWS函數(shù)就可以使用該句柄,以引用相應的對象。
[0087] 具體地,當NtUserChangeClipboardChain函數(shù)檢測到被調用時,貝lj系統(tǒng)會首先調用HOOK函數(shù),以獲取模塊301獲取第一目標進程的進程信息。[〇〇88]獲取模塊301,用于獲取第二目標進程的進程信息,第二目標進程為將目標窗口從剪貼板監(jiān)聽鏈中移除的進程。
[0089]本發(fā)明實施例中,第二目標進程為將目標窗口從剪貼板監(jiān)聽鏈中移除的進程。舉例來說,目標窗口為窗口 A,將窗口 A從剪貼板監(jiān)聽鏈中移除的進程為進程A,則進程A為上述的第二目標進程。
[0090]本發(fā)明實施例中,第二目標進程的進程信息可以包括但不限于進程名稱、進程編號、進程句柄數(shù)、進程路徑以及線程數(shù)中的一種或多種。[0091 ]檢測模塊302,用于檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配。
[0092]本發(fā)明實施例中,在獲取模塊301獲取第一目標進程的進程信息以及第二目標進程的進程信息之后,則檢測模塊302可以檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配。其中,檢測模塊302檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配可以包括檢測模塊302檢測第一目標進程的進程信息與第二目標進程的進程信息是否一致。具體地,若檢測模塊302檢測到第一目標進程的進程信息與第二目標進程的進程信息匹配,則說明是目標窗口所屬進程(第一目標進程)將目標窗口從剪貼板監(jiān)聽鏈中移除,而不是惡意進程的攻擊行為,則不需要對第二目標進程進行控制;若檢測模塊302 檢測到第一目標進程的進程信息與第二目標進程的進程信息不匹配,則可能第二目標進程為惡意進程,目前正在對系統(tǒng)有攻擊破壞行為。[〇〇93]控制模塊303,用于若檢測模塊302檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,則控制用戶終端禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。
[0094]本發(fā)明實施例中,若檢測模塊302檢測到第一目標進程的進程信息與第二目標進程的進程信息不匹配,則可能第二目標進程為惡意進程,目前正在對系統(tǒng)有攻擊破壞行為, 則控制模塊303可以控制用戶終端禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。
[0095]在圖3中,詳細描述了當檢測到目標函數(shù)被調用時,獲取模塊301獲取第一目標進程的進程信息,目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程;獲取模塊301獲取第二目標進程的進程信息,第二目標進程為將目標窗口從剪貼板監(jiān)聽鏈中移除的進程;檢測模塊302檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配;若檢測模塊302檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。在本發(fā)明實施例中,當檢測模塊302檢測到目標函數(shù)被調用時,則說明有窗口將被從剪貼板監(jiān)聽鏈中移除,則檢測模塊302可以檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配,若檢測模塊302檢測第一目標進程的進程信息與第二目標進程的進程信息匹配,則說明是第一目標進程自身控制窗口移除剪貼板監(jiān)聽鏈,則說明是正常的移除行為,若檢測模塊302檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,則說明目標窗口是被迫從剪貼板監(jiān)聽鏈移除,則控制模塊303可以控制用戶終端可以禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除,避免第二目標進程的惡意破壞, 以確保窗口所屬進程(第一目標進程)的正常操作,提高用戶終端的安全性。
[0096]請參閱圖4,圖4是本發(fā)明實施例公開的另一種用戶終端的結構示意圖,用于執(zhí)行上述進程控制方法。其中,圖4是在圖3的基礎上進一步細化得到,除包括圖3所示的所有模塊以外,還可以將各模塊細化包括單元,具體地,可參閱以下詳細描述。[〇〇97]當?shù)诙繕诉M程的進程信息為進程路徑,獲取模塊301可以進一步細化包括:第一獲取單元3010以及第二獲取單元3011,其中,[〇〇98]第一獲取單元3010,用于獲取第二目標進程的進程句柄參數(shù)。
[0099]第二獲取單元3011,用于根據(jù)句柄參數(shù)從預設的映射表中獲取與句柄參數(shù)匹配的進程路徑,其中,映射表用于描述進程路徑與句柄關系的對應關系。
[0100]進一步,檢測模塊302可以進一步細化包括:檢測單元3020以及確定單元3021,其中,
[0101]檢測單元3020,用于檢測第二目標進程的進程路徑是否屬于預設的惡意進程路徑集合。
[0102]確定單元3021,用于若檢測單元3020檢測第二目標進程的進程路徑屬于預設的惡意進程路徑集合,則確定第二目標進程為惡意進程;若檢測單元3020檢測第二目標進程的進程路徑不屬于預設的惡意進程路徑集合,則確定第二目標進程不為惡意進程。
[0103]本發(fā)明實施例中,檢測模塊302還用于檢測第二目標進程是否為惡意進程。
[0104]控制模塊303控制用戶終端禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除的【具體實施方式】為若檢測模塊302檢測第二目標進程為惡意進程,控制用戶終端禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。
[0105]本發(fā)明實施例中,控制模塊303還用于若檢測模塊302檢測第一目標進程的進程信息與第二目標進程的進程信息匹配,則不對第二目標進程進行控制。
[0106]通過實施圖4所示的實施方式,當確定第二目標進程為惡意進程時,能夠禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除,從而能夠避免第二目標進程的惡意破壞,以確保窗口所屬進程(第一目標進程)的正常操作,提高用戶終端的安全性。
[0107]請參閱圖5,圖5是本發(fā)明實施例公開的又一種用戶終端的結構示意圖,用于執(zhí)行上述進程控制方法。其中,如圖5所示,該用戶終端可以包括:殼體501、處理器502,存儲器 503,顯示屏504,電路板505和電源電路506等組件。其中,電路板505安置在殼體501圍成的空間內部,處理器502和存儲器503設置在電路板505上,顯示屏504外嵌于殼體501上且連接電路板505。本領域技術人員可以理解,圖5中示出的用戶終端的結構并不構成對本發(fā)明實施例的限定,它既可以是總線形結構,也可以是星型結構,還可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:[〇1〇8]處理器502為用戶終端的控制中心,利用各種接口和線路連接整個用戶終端的各個部分,通過運行或執(zhí)行存儲在存儲器503內的程序和/或模塊,以及調用存儲在存儲器503 內的數(shù)據(jù),以執(zhí)行用戶終端的各種功能和處理數(shù)據(jù)。處理器502可以由集成電路 (Integrated Circuit,簡稱1C)組成,例如可以由單顆封裝的1C所組成,也可以由連接多顆相同功能或不同功能的封裝1C而組成。舉例來說,處理器502可以僅包括中央處理器(Central Processing Unit,簡稱CPU),也可以是CPU、數(shù)字信號處理器(digital signal processor,簡稱DSP)、圖形處理器(Graphic Processing Unit,簡稱GPU)及各種控制芯片的組合。在本發(fā)明實施方式中,CPU可以是單運算核心,也可以包括多運算核心。
[0109]顯示屏504可以包括觸控面板、觸摸屏等,可以用于輸出提醒消息、圖片等信息,也可以接收用戶觸發(fā)的各項觸控操作。
[0110]電源電路506,用于為用戶終端的各個電路或器件供電。
[0111]存儲器503可用于存儲軟件程序以及模塊,處理器502通過調用存儲在存儲器503 中的軟件程序以及模塊,從而執(zhí)行用戶終端的各項功能應用以及實現(xiàn)數(shù)據(jù)處理。存儲器503 主要包括程序存儲區(qū)和數(shù)據(jù)存儲區(qū),其中,程序存儲區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序等;數(shù)據(jù)存儲區(qū)可存儲根據(jù)用戶終端的使用所創(chuàng)建的數(shù)據(jù)等。在本發(fā)明實施例中,操作系統(tǒng)可以是Android系統(tǒng)、1S系統(tǒng)或Windows操作系統(tǒng)等等。[〇112]在圖5所示的用戶終端中,處理器502調用存儲在存儲器503中的應用程序,用于執(zhí)行以下操作:
[0113]當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息,目標函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),第一目標進程為將被從剪貼板監(jiān)聽鏈中移除的窗口的所屬進程;
[0114]獲取第二目標進程的進程信息,第二目標進程為將目標窗口從剪貼板監(jiān)聽鏈中移除的進程;
[0115]檢測第一目標進程的進程信息與第二目標進程的進程信息是否匹配;
[0116]若檢測第一目標進程的進程信息與第二目標進程的進程信息不匹配,禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除。
[0117]本發(fā)明實施例中,處理器502調用存儲在存儲器503中的應用程序,還可以用于執(zhí)行以下步驟:
[0118]檢測第二目標進程是否為惡意進程;
[0119]若檢測第二目標進程為惡意進程,則執(zhí)行禁止第二目標進程將目標窗口從剪貼板監(jiān)聽鏈中移除的步驟。[〇12〇]本發(fā)明實施例中,第二目標進程的進程信息為進程路徑,處理器502調用存儲在存儲器503中的應用程序,執(zhí)行步驟獲取第二目標進程的進程信息,包括:[0121 ]獲取第二目標進程的進程句柄參數(shù);
[0122]根據(jù)句柄參數(shù)從預設的映射表中獲取與句柄參數(shù)匹配的進程路徑,其中,映射表用于描述進程路徑與句柄關系的對應關系。
[0123]本發(fā)明實施例中,處理器502調用存儲在存儲器503中的應用程序,執(zhí)行步驟檢測第二目標進程是否為惡意進程,包括:
[0124]檢測第二目標進程的進程路徑是否屬于預設的惡意進程路徑集合;
[0125]若檢測第二目標進程的進程路徑屬于預設的惡意進程路徑集合,則確定第二目標進程為惡意進程;若檢測第二目標進程的進程路徑不屬于預設的惡意進程路徑集合,則確定第二目標進程不為惡意進程。
[0126]本發(fā)明實施例中,處理器502調用存儲在存儲器503中的應用程序,還可以用于執(zhí)行以下步驟:
[0127]若檢測第一目標進程的進程信息與第二目標進程的進程信息匹配,則不對第二目標進程進行控制。
[0128]具體的,本發(fā)明實施例中介紹的用戶終端可以實施本發(fā)明結合圖1、圖2介紹的進程控制方法實施例中的部分或全部流程。
[0129]本發(fā)明所有實施例中的模塊或子模塊,可以通過通用集成電路,例如CPU(Central Processing Unit,中央處理器),或通過ASIC(Applicat1n Specific Integrated Circuit,專用集成電路)來實現(xiàn)。
[0130]本發(fā)明實施例方法中的步驟可以根據(jù)實際需要進行順序調整、合并和刪減。
[0131]本發(fā)明實施例用戶終端中的單元可以根據(jù)實際需要進行合并、劃分和刪減。
[0132]本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存取存儲器(Random Access Memory,簡稱RAM)等。
[0133]以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【主權項】
1.一種進程控制方法,其特征在于,包括:當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息,所述目標函數(shù)為用于修 改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),所述第一目標進程為將被從所述剪貼板監(jiān)聽鏈中移 除的窗口的所屬進程;獲取第二目標進程的進程信息,所述第二目標進程為將所述目標窗口從所述剪貼板監(jiān) 聽鏈中移除的進程;檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息是否匹配;若檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息不匹配,則禁止 所述第二目標進程將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除。2.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括:檢測所述第二目標進程是否為惡意進程;若檢測所述第二目標進程為所述惡意進程,則執(zhí)行所述禁止所述第二目標進程將所述 目標窗口從所述剪貼板監(jiān)聽鏈中移除的步驟。3.根據(jù)權利要求2所述的方法,其特征在于,所述第二目標進程的進程信息為進程路 徑,所述獲取第二目標進程的進程信息,包括:獲取所述第二目標進程的進程句柄參數(shù);根據(jù)所述句柄參數(shù)從預設的映射表中獲取與所述句柄參數(shù)匹配的進程路徑,其中,所 述映射表用于描述進程路徑與句柄關系的對應關系。4.根據(jù)權利要求3所述的方法,其特征在于,所述檢測所述第二目標進程是否為惡意進 程,包括:檢測所述第二目標進程的進程路徑是否屬于預設的惡意進程路徑集合;若檢測所述第二目標進程的進程路徑屬于所述預設的惡意進程路徑集合,則確定所述 第二目標進程為所述惡意進程;若檢測所述第二目標進程的進程路徑不屬于所述預設的惡 意進程路徑集合,則確定所述第二目標進程不為所述惡意進程。5.根據(jù)權利要求1?4中任意一項所述的方法,其特征在于,所述方法還包括:若檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息匹配,則不對所 述第二目標進程進行控制。6.—種用戶終端,其特征在于,包括:獲取模塊,用于當檢測到目標函數(shù)被調用時,獲取第一目標進程的進程信息,所述目標 函數(shù)為用于修改剪貼板監(jiān)聽鏈所監(jiān)聽的窗口的函數(shù),所述第一目標進程為將被從所述剪貼 板監(jiān)聽鏈中移除的窗口的所屬進程;所述獲取模塊,用于獲取第二目標進程的進程信息,所述第二目標進程為將所述目標 窗口從所述剪貼板監(jiān)聽鏈中移除的進程;檢測模塊,用于檢測所述第一目標進程的進程信息與所述第二目標進程的進程信息是 否匹配;控制模塊,用于若所述檢測模塊檢測所述第一目標進程的進程信息與所述第二目標進 程的進程信息不匹配,則控制所述用戶終端禁止所述第二目標進程將所述目標窗口從所述 剪貼板監(jiān)聽鏈中移除。7.根據(jù)權利要求6所述的用戶終端,其特征在于,所述檢測模塊,還用于檢測所述第二目標進程是否為惡意進程;所述控制模塊控制所述用戶終端禁止所述第二目標進程將所述目標窗口從所述剪貼 板監(jiān)聽鏈中移除的【具體實施方式】為若所述檢測模塊檢測所述第二目標進程為所述惡意進 程,控制所述用戶終端禁止所述第二目標進程將所述目標窗口從所述剪貼板監(jiān)聽鏈中移除。8.根據(jù)權利要求7所述的用戶終端,其特征在于,所述第二目標進程的進程信息為進程 路徑,所述獲取模塊包括:第一獲取單元,用于獲取所述第二目標進程的進程句柄參數(shù);第二獲取單元,用于根據(jù)所述句柄參數(shù)從預設的映射表中獲取與所述句柄參數(shù)匹配的 進程路徑,其中,所述映射表用于描述進程路徑與句柄關系的對應關系。9.根據(jù)權利要求8所述的用戶終端,其特征在于,所述檢測模塊包括:檢測單元,用于檢測所述第二目標進程的進程路徑是否屬于預設的惡意進程路徑集 合;確定單元,用于若所述檢測單元檢測所述第二目標進程的進程路徑屬于所述預設的惡 意進程路徑集合,則確定所述第二目標進程為所述惡意進程;若所述檢測單元檢測所述第 二目標進程的進程路徑不屬于所述預設的惡意進程路徑集合,則確定所述第二目標進程不 為所述惡意進程。10.根據(jù)權利要求6?9中任意一項所述的用戶終端,其特征在于,所述控制模塊,還用于若所述檢測模塊檢測所述第一目標進程的進程信息與所述第二 目標進程的進程信息匹配,則不對所述第二目標進程進行控制。
【文檔編號】G06F21/56GK106096410SQ201610390382
【公開日】2016年11月9日
【申請日】2016年6月2日 公開號201610390382.2, CN 106096410 A, CN 106096410A, CN 201610390382, CN-A-106096410, CN106096410 A, CN106096410A, CN201610390382, CN201610390382.2
【發(fā)明人】楊峰
【申請人】北京金山安全軟件有限公司