一種攔截控制碼的方法、裝置及電子設備的制造方法
【專利摘要】本發明的實施例公開一種攔截控制碼的方法、裝置及電子設備,涉及計算機系統優化技術領域,為更加安全地保護用戶系統不被破壞而發明。所述攔截控制碼的方法,包括:創建用于對控制碼進行過濾的設備對象;將創建的所述設備對象附加到目標設備對象上;通過附加到所述目標設備對象上的所述設備對象,接收操作系統傳遞的請求包,對所述請求包中包含的控制碼進行分析,確定所述控制碼是否是需要攔截的控制碼,若所述控制碼是需要攔截的控制碼,則拒絕將所述控制碼傳遞給所述目標設備對象。所述裝置和電子設備中包括實現上述方法步驟的模塊。本發明適用于計算機系統優化的場合。
【專利說明】
-種攔截控制碼的方法、裝置及電子設備
技術領域
[0001] 本發明設及計算機系統優化技術領域,尤其設及一種攔截控制碼的方法、裝置及 電子設備。
【背景技術】
[0002] 目前安全軟件或稱為安全應用程序能夠攔截常規的惡意行為,比如采用系統導出 的函數進行惡意操作,結束進程,修改注冊表等。但是惡意軟件可W采用非常規的方法進行 惡意行為,比如采用系統未導出的函數進行惡意操作,運種方法的前提是惡意軟件的進程 會把信息通過控制碼傳遞給其惡意驅動程序。其中,控制碼為應用層進程與驅動程序的相 互約定,應用層進程通過控制碼來約定對應驅動程序完成特定的功能。惡意驅動程序收到 相應控制碼的數據時,采用非常規的方法進行惡意操作,攔截運種行為的方法就是攔截控 制碼的傳遞,常規的做法就是采用鉤子化ook)的方式攔截控制碼。
[0003] 鉤子是Windows消息處理機制的一個平臺,應用程序可W在上面設置子程W監視 指定窗口的某種消息,而且所監視的窗口可W是其他進程所創建的。當消息到達后,在目標 窗口處理函數之前處理它。鉤子機制允許應用程序截獲處理window消息或特定事件。
[0004] 鉤子實際上是一個處理消息的程序段,通過系統調用,把它掛入系統。每當特定的 消息發出,在沒有到達目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數先得到控制 權。運時鉤子函數即可W加工處理(改變)該消息,也可W不作處理而繼續傳遞該消息,還可 W強制結束消息的傳遞。
[0005] 現有技術中,采用鉤子的方式攔截控制碼的缺點是需要改變系統的處理機制,不 夠安全。
【發明內容】
[0006] 有鑒于此,本發明實施例提供一種攔截控制碼的方法、裝置及電子設備,能夠更加 安全地保護用戶系統不被破壞。
[0007] 第一方面,本發明實施例提供一種攔截控制碼的方法,包括:創建用于對控制碼進 行過濾的設備對象;將創建的所述設備對象附加到目標設備對象上;通過附加到所述目標 設備對象上的所述設備對象,接收操作系統傳遞的請求包,對所述請求包中包含的控制碼 進行分析,確定所述控制碼是否是需要攔截的控制碼,若所述控制碼是需要攔截的控制碼, 則拒絕將所述控制碼傳遞給所述目標設備對象。
[0008] 結合第一方面,在第一方面的第一種實施方式中,所述創建用于對控制碼進行過 濾的設備對象,包括:調用操作系統中用于生成過濾設備的函數,創建屬于一反病毒應用程 序的防御驅動程序的設備對象;其中,創建的所述設備對象用于對控制碼進行過濾,并且創 建的所述設備對象的設備類型與所述目標設備對象的設備類型相一致。
[0009] 結合第一方面或第一方面的第一種實施方式,在第一方面的第二種實施方式中, 所述將創建的所述設備對象附加到目標設備對象上,包括:調用操作系統的內核中用于設 備綁定的應用程序編程接口函數;將創建的所述用于對控制碼進行過濾的設備對象和目標 設備對象傳入所述應用程序編程接口函數;通過所述應用程序編程接口函數,將創建的所 述用于對控制碼進行過濾的設備對象附加到目標設備對象上。
[0010] 結合第一方面的第二種實施方式,在第一方面的第Ξ種實施方式中,所述操作系 統為Windows操作系統;其中,所述調用操作系統的內核中用于設備綁定的應用程序編程接 口函數,包括:判斷所述目標設備對象是否有設備名稱;若所述目標設備對象有設備名稱, 則調用操作系統的內核中用于設備綁定的loAttachDevice函數;若所述目標設備對象沒有 設備名稱,則調用操作系統的內核中用于設備綁定的loAt化chDeviceToDeviceStack函數。
[0011] 結合第一方面的第一種實施方式,在第一方面的第四種實施方式中,若所述控制 碼是需要攔截的控制碼,所述方法還包括:所述用于對控制碼進行過濾的設備對象,將所述 控制碼是需要攔截的控制碼的信息,或者將拒絕將所述控制碼傳遞給所述目標設備對象的 信息,通知給所述反病毒應用程序的防御驅動程序。
[0012] 結合第一方面,在第一方面的第五種實施方式中,在創建用于對控制碼進行過濾 的設備對象之前,所述方法還包括:對控制碼進行分析,確定所述控制碼是否是需要攔截的 控制碼;若所述控制碼是需要攔截的控制碼,則確定所述控制碼所對應的目標設備對象。
[0013] 第二方面,本發明實施例提供一種攔截控制碼的裝置,包括:設備對象創建模塊, 用于創建用于對控制碼進行過濾的設備對象;附加模塊,用于將所述用于對控制碼進行過 濾的設備對象附加到目標設備對象上;攔截模塊,用于通過附加到所述目標設備對象上的 所述設備對象,接收操作系統傳遞的請求包,對所述請求包中包含的控制碼進行分析,確定 所述控制碼是否是需要攔截的控制碼,若所述控制碼是需要攔截的控制碼,則拒絕將所述 控制碼傳遞給所述目標設備對象。
[0014] 結合第二方面,在第二方面的第一種實施方式中,所述設備對象創建模塊,用于調 用操作系統中用于生成過濾設備的函數,創建屬于一反病毒應用程序的防御驅動程序的設 備對象;其中,創建的所述設備對象用于對控制碼進行過濾,并且創建的所述設備對象的設 備類型與所述目標設備對象的設備類型相一致。
[0015] 結合第二方面或第二方面的第一種實施方式,在第二方面的第二種實施方式中, 所述附加模塊,包括:調用子模塊,用于調用操作系統的內核中用于設備綁定的應用程序編 程接口函數;傳入子模塊,用于將創建的所述用于對控制碼進行過濾的設備對象和目標設 備對象傳入所述應用程序編程接口函數;附件附加子模塊,用于通過所述應用程序編程接 口函數,將創建的所述用于對控制碼進行過濾的設備對象附加到目標設備對象上。
[0016] 結合第二方面的第二種實施方式,在第二方面的第Ξ種實施方式中,所述操作系 統為Windows操作系統;其中,所述調用子模塊包括:判斷單元,用于判斷所述目標設備對象 是否有設備名稱;第一調用單元,用于若所述目標設備對象有設備名稱,則調用操作系統的 內核中用于設備綁定的loAttachDevice函數;第二調用單元,用于若所述目標設備對象沒 有設備名稱,則調用操作系統的內核中用于設備綁定的loAttachDeviceToDeviceStack函 數。
[0017] 結合第二方面的第一種實施方式,在第二方面的第四種實施方式中,所述的攔截 控制碼的裝置,還包括:通知模塊,用于若所述控制碼是需要攔截的控制碼,則將所述控制 碼是需要攔截的控制碼的信息,或者將拒絕將所述控制碼傳遞給所述目標設備對象的信 息,通知給所述反病毒應用程序的防御驅動程序。
[0018] 結合第二方面,在第二方面的第五種實施方式中,所述的攔截控制碼的裝置,還包 括:目標設備對象確定模塊,用于在所述設備對象創建模塊創建用于對控制碼進行過濾的 設備對象之前,對控制碼進行分析,確定所述控制碼是否是需要攔截的控制碼,若所述控制 碼是需要攔截的控制碼,則確定所述控制碼所對應的目標設備對象。
[0019] 第Ξ方面,本發明實施例提供一種電子設備,所述電子設備包括:殼體、處理器、存 儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內部,處理器和存儲器設置 在電路板上;電源電路,用于為上述電子設備的各個電路或器件供電;存儲器用于存儲可執 行程序代碼;處理器通過讀取存儲器中存儲的可執行程序代碼來運行與可執行程序代碼對 應的程序,用于執行前述任一實施方式所述的攔截控制碼的方法。
[0020] 本發明實施例提供的一種攔截控制碼的方法、裝置及電子設備,對控制碼進行攔 截的方式,只需在目標設備對象上附加一個用于對控制碼進行過濾的設備對象,通過該設 備對象即可實現對控制碼的過濾攔截,無需改變操作系統的處理機制,能夠更加安全地保 護用戶系統不被破壞。
【附圖說明】
[0021] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可W 根據運些附圖獲得其它的附圖。
[0022] 圖1為本發明攔截控制碼的方法實施例一的流程示意圖;
[0023] 圖2為本發明攔截控制碼的方法實施例二的流程圖;
[0024] 圖3為本發明攔截控制碼的裝置實施例一的結構示意圖;
[0025] 圖4為本發明攔截控制碼的裝置實施例二的結構示意圖;
[0026] 圖5為本發明電子設備一個實施例的結構示意圖。
【具體實施方式】
[0027] 下面結合附圖對本發明實施例進行詳細描述。
[0028] 應當明確,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基 于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其 它實施例,都屬于本發明保護的范圍。
[0029] 為了更加安全地對控制碼進行攔截,本發明實施例采用過濾驅動的方式進行控制 碼攔截。過濾驅動就是掛載在其他驅動上,對某驅動設備的IRP( I/O Request化ckage)進 行攔截過濾,并可W對設備進行功能擴展,或是數據加密等處理的驅動程序。
[0030] 圖1為本發明攔截控制碼的方法實施例一的流程示意圖。如圖1所示,本實施例的 方法可W包括:
[0031] 步驟101、創建用于對控制碼進行過濾的設備對象。
[0032] 本實施例中,驅動程序指的是設備驅動程序(Device化iver),是一種可W使計算 機和設備通信的特殊程序。相當于硬件的接口,操作系統只有通過運個接口,才能控制硬件 設備的工作,假如某設備的驅動程序未能正確安裝,便不能正常工作。
[0033] 驅動程序對象,簡稱驅動對象(DRIVER_0B巧CT),是指驅動程序在內核中的數據結 構,每個驅動程序有唯一的DRIVER_0B巧CT,10管理器使用驅動程序對象代表每個設備驅動 程序,驅動程序描述了驅動程序的載入到內存什么地方,驅動程序的大小和它的主要入口 點(Major化nction數組);驅動程序對象有一個DeviceObject域指向一個設備對象鏈表。
[0034] 設備對象(DEVICE_0B巧CT)是用于保存設備特征和狀態的相關信息。一個設備對 象表示一個邏輯的、虛擬的或物理的設備,設備對象的I/O請求由一個驅動對象操控著。
[0035] 每一個內核模式的驅動程序必須創建與該驅動程序相對應的設備對象,驅動程序 通過調用1〇化eateDevice函數一次或多次來創建設備對象。
[0036] 步驟102、將創建的所述設備對象附加到目標設備對象上。
[0037] 本實施例中,操作系統的內核中提供了用于設備附加(綁定)的APKApplication Programming Inte計ace,應用程序編程接口函數)。通過調用操作系統的內核中用于設備 綁定的API,并將創建的所述用于對控制碼進行過濾的設備對象和目標設備對象傳入所述 API;通過所述API將創建的所述用于對控制碼進行過濾的設備對象附加到目標設備對象 上。
[0038] 作為一可選實施方式,所述操作系統為Windows操作系統。在Windows操作系統中, 一個能夠實現綁定功能的內核API函數如下:
[0039]
[0040] IoAt1:achDevice 參數如下:
[0041 ] SourceDevice是調用者生成的用來過濾的設備對象;而化rgetDevice是要被綁定 的目標設備對象。運里的化rgetDevice是一個字符串,運個字符串是要被綁定的目標設備 對象的名字。
[0042] Windows中許多設備對象是有名字的,但是并不是所有的設備對象都有名字。必須 是有名字的設備,才能用運個內核API進行綁定。
[0043] 為了能夠適應不同的設備對象,作為一可選實施例,所述調用操作系統的內核中 用于設備綁定的API,可W包括:
[0044] 判斷所述目標設備對象是否有設備名稱;
[0045] 若所述目標設備對象有設備名稱,則調用操作系統的內核中用于設備綁定的 IoAt1:achDevice函數。
[0046] 若所述目標設備對象沒有設備名稱,則調用操作系統的內核中的 loAttachDeviceToDeviceStack函數,或者調用操作系統的內核中的 IoAttachDeviceToDeviceSl:ackSafe函數。運兩個函數功能一樣,都是根據設備對象的指針 (而不是名字)進行綁定;區別是loAt化chDeviceToDeviceStackSafe更加安全,而且只有在 Windows 2000SP4和Windows XPW上的系統中才有。一般都使用 IoAt1:achDeviceToDeviceStackSafe,但當試圖兼容較低版本的Windows 2000時,應該使用 loAttachDeviceToDeviceStack。
[0047] 步驟103、通過附加到所述目標設備對象上的所述設備對象,接收操作系統傳遞的 請求包,對所述請求包中包含的控制碼進行分析,確定所述控制碼是否是需要攔截的控制 碼,若所述控制碼是需要攔截的控制碼,則拒絕將所述控制碼傳遞給所述目標設備對象。
[0048] 本實施例中,上層應用程序與底層驅動程序通信時,應用程序會發出1/0請求,操 作系統將相應的1/0請求轉換成相應的IRPQ/0 request packets,簡稱IRP),不同的IRP會 根據類型被分派到不同的派遣例程中進行處理。
[0049] 本實施例中,當創建的所述用于對控制碼進行過濾的設備對象附加到目標設備對 象上之后,則本來操作系統發送給目標設備對象的IRP,就會首先發送到所述用于對控制碼 進行過濾的設備對象,所述用于對控制碼進行過濾的設備對象接收操作系統傳遞的請求 包,對所述請求包中包含的控制碼進行分析,確定所述控制碼是否是需要攔截的控制碼,比 如所述控制碼中包含有進行惡意操作的信息時則可認為是需要攔截的控制碼,若所述控制 碼是需要攔截的控制碼,則拒絕將所述控制碼傳遞給所述目標設備對象。
[0050] 本發明實施例提供的一種攔截控制碼的方法,只需在目標設備對象上附加一個用 于對控制碼進行過濾的設備對象,通過該設備對象即可實現對控制碼的過濾攔截,無需改 變操作系統的處理機制,能夠更加安全地保護用戶系統不被破壞。
[0051] 圖2為本發明攔截控制碼的方法實施例二的流程圖。本發明的方法實施例應用于 Windows操作系統中對控制碼的攔截。如圖2所示,本實施例的方法可W包括:
[0052] 步驟201、對控制碼進行分析,確定所述控制碼是否是需要攔截的控制碼;
[0053] 本實施例中,可通過對控制碼進行分析,確定所述控制碼是否是需要攔截的控制 碼,若所述控制碼中包含有進行惡意操作的信息時則可認為是需要攔截的控制碼。若所述 控制碼是需要攔截的控制碼,則執行步驟202。
[0054] 步驟202、確定需要攔截的控制碼所對應的目標設備對象。
[0055] 本實施例中,在分析出需要攔截某個控制碼時,同時需要分析出此控制碼對應的 目標驅動設備名稱,目標驅動設備名稱形式可為:\Device\XXX。根據目標驅動設備名稱,可 通過調用Windows內核IoGetDevice0bjec1:Pointe;r函數獲得目標設備對象。
[0056] 本實施例中,步驟201和步驟202可W通過運營分析來確定需要攔截的控制碼及其 所對應的目標設備對象。
[0057] 步驟203、在反病毒應用程序的防御驅動程序中,創建用于對控制碼進行過濾的設 備對象。
[0058] 本實施例中,反病毒應用程序如金山毒霸的防御驅動程序可調用操作系統中用于 生成過濾設備的函數1〇化eateDevice,創建屬于該反病毒應用程序的防御驅動程序的設備 對象;其中,創建的所述設備對象用于對控制碼進行過濾,并且創建的所述設備對象的設備 類型與所述目標設備對象的設備類型相一致。
[0059] 本實施例可通過反病毒應用程序的防御驅動程序在內核層對控制碼進行過濾攔 截。
[0060] 步驟204、將創建的所述設備對象附加到目標設備對象上。
[0061 ]本實施例中,將創建的所述設備對象附加到目標設備對象上的過程和上述方法實 施例的步驟102類似,此處不再寶述。
[0062] 步驟205、通過附加到所述目標設備對象上的所述設備對象,接收操作系統傳遞的 請求包,對所述請求包中包含的控制碼進行分析,確定所述控制碼是否是需要攔截的控制 碼。
[0063] 本實施例中,若所述控制碼是需要攔截的控制碼,則執行步驟206,否則執行步驟 208。
[0064] 步驟206、拒絕將所述控制碼傳遞給所述目標設備對象。
[0065] 本實施例中,步驟205和步驟206的過程和上述方法實施例的步驟103類似,此處不 再寶述。
[0066] 步驟207、將所述控制碼是需要攔截的控制碼的信息,或者將拒絕將所述控制碼傳 遞給所述目標設備對象的信息,通知給所述反病毒應用程序的防御驅動程序。
[0067] 本步驟是可選的。本步驟中,所述用于對控制碼進行過濾的設備對象,將所述控制 碼是需要攔截的控制碼的信息,或者將拒絕將所述控制碼傳遞給所述目標設備對象的信 息,通知給所述反病毒應用程序的防御驅動程序,運樣能夠在內核層獲取惡意應用程序的 相關信息并及時采取防護措施W保護系統的安全,比如,所述反病毒應用程序的防御驅動 程序接收到所述用于對控制碼進行過濾的設備對象的通知后,可通過所述反病毒應用程序 的上層應用程序結束發送所述控制碼的惡意應用程序的進程,W有效保護系統不受惡意應 用程序的破壞;其中,所述通知中包含有所述控制碼是需要攔截的控制碼的信息,或者包含 有拒絕將所述控制碼傳遞給所述目標設備對象的信息。
[0068] 步驟208、將所述控制碼傳遞給所述目標設備對象。
[0069] 本實施例中,若所述控制碼不是需要攔截的控制碼,則將所述控制碼正常傳遞給 目標設備對象,W使目標設備對象進行相應的正常操作。
[0070] 本發明實施例提供的一種攔截控制碼的方法,只需在目標設備對象上附加一個用 于對控制碼進行過濾的設備對象,通過該設備對象即可實現對控制碼的過濾攔截,無需改 變操作系統的處理機制,能夠更加安全地保護用戶系統不被破壞。
[0071] 下面采用一個具體的實施例,對圖1~圖2中任一個所示方法實施例的技術方案進 行詳細說明。
[0072] 在用戶電腦環境中,存在一個惡意軟件A,找到惡意軟件A的驅動設備對象B后,在 金山毒霸的防御驅動程序中創建一個屬于金山毒霸的防御驅動程序的設備對象C;將設備 對象C附加到驅動設備對象B上,當惡意軟件A的進程利用控制碼通知其驅動程序采用非常 規方式破壞系統時,所述防御驅動程序的設備對象C能夠先一步截獲此控制碼信息,所述防 御驅動程序對此控制碼進行分析,如果是需要攔截的控制碼,則進行攔截,不把此控制碼傳 遞給惡意軟件A的驅動設備對象B,惡意軟件A的驅動設備對象B沒有收到相關控制碼信息, 則不會做相關操作,運樣使得惡意軟件A破壞系統失敗,從而更好地保護用戶系統不被破 壞。
[0073] 圖3為本發明攔截控制碼的裝置實施例一的結構示意圖。如圖3所示,本實施例的 裝置可W包括:設備對象創建模塊11、附加模塊12和攔截模塊13,其中,設備對象創建模塊 11,用于創建用于對控制碼進行過濾的設備對象;附加模塊12,用于將所述用于對控制碼進 行過濾的設備對象附加到目標設備對象上;攔截模塊13,用于通過附加到所述目標設備對 象上的所述設備對象,接收操作系統傳遞的請求包,對所述請求包中包含的控制碼進行分 析,確定所述控制碼是否是需要攔截的控制碼,若所述控制碼是需要攔截的控制碼,則拒絕 將所述控制碼傳遞給所述目標設備對象。
[0074] 本實施例的裝置,可W用于執行圖1所示方法實施例的技術方案,其實現原理和技 術效果類似,此處不再寶述。
[0075] 圖4為本發明攔截控制碼的裝置實施例二的結構示意圖。本發明的裝置實施例應 用于Windows操作系統中對控制碼的攔截。如圖4所示,本實施例的裝置在圖3所示裝置結構 的基礎上,進一步地,所述設備對象創建模塊11,用于在反病毒應用程序的防御驅動程序 中,創建用于對控制碼進行過濾的設備對象。
[0076] 具體來講,所述設備對象創建模塊11,可用于調用操作系統中用于生成過濾設備 的函數,創建屬于一反病毒應用程序的防御驅動程序的設備對象;其中,創建的所述設備對 象用于對控制碼進行過濾,并且創建的所述設備對象的設備類型與所述目標設備對象的設 備類型相一致。
[0077] 所述附加模塊12,可W包括:調用子模塊121,用于調用操作系統的內核中用于設 備綁定的應用程序編程接口函數;傳入子模塊122,用于將創建的所述用于對控制碼進行過 濾的設備對象和目標設備對象傳入所述應用程序編程接口函數;附加子模塊123,用于通過 所述應用程序編程接口函數,將創建的所述用于對控制碼進行過濾的設備對象附加到目標 設備對象上。
[0078] 其中,所述調用子模塊121可W包括:判斷單元1211,用于判斷所述目標設備對象 是否有設備名稱;第一調用單元1212,用于若所述目標設備對象有設備名稱,則調用操作系 統的內核中用于設備綁定的loAttachDevice函數;第二調用單元1213,用于若所述目標設 備對象沒有設備名稱,則調用操作系統的內核中用于設備綁定的 IoAttachDeviceToDeviceSl:ack函數。
[0079] 可選地,所述攔截控制碼的裝置,還可包括通知模塊14,用于若所述控制碼是需要 攔截的控制碼,則將所述控制碼是需要攔截的控制碼的信息,或者將拒絕將所述控制碼傳 遞給所述目標設備對象的信息,通知給所述反病毒應用程序的防御驅動程序。
[0080] 可選地,所述攔截控制碼的裝置,還可包括目標設備對象確定模塊15,用于在所述 設備對象創建模塊11創建用于對控制碼進行過濾的設備對象之前,對控制碼進行分析,確 定所述控制碼是否是需要攔截的控制碼,若所述控制碼是需要攔截的控制碼,則確定所述 控制碼所對應的目標設備對象。
[0081] 本實施例的裝置,可W用于執行圖2所示方法實施例的技術方案,其實現原理和技 術效果類似,此處不再寶述。
[0082] 本發明實施例還提供一種電子設備,圖5為本發明電子設備一個實施例的結構示 意圖,可W實現本發明圖1或圖2所示實施例的流程,如圖5所示,上述電子設備可W包括:殼 體41、處理器42、存儲器43、電路板44和電源電路45,其中,電路板44安置在殼體41圍成的空 間內部,處理器42和存儲器43設置在電路板44上;電源電路45,用于為上述電子設備的各個 電路或器件供電;存儲器43用于存儲可執行程序代碼;處理器42通過讀取存儲器43中存儲 的可執行程序代碼來運行與可執行程序代碼對應的程序,用于執行前述任一實施例所述的 攔截控制碼的方法。
[0083] 處理器42對上述步驟的具體執行過程W及處理器42通過運行可執行程序代碼來 進一步執行的步驟,可W參見本發明圖1-2所示實施例的描述,在此不再寶述。
[0084] 該電子設備W多種形式存在,包括但不限于:
[0085] (1)移動通信設備:運類設備的特點是具備移動通信功能,并且W提供話音、數據 通信為主要目標。運類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,W及低 端手機等。
[0086] (2)超移動個人計算機設備:運類設備屬于個人計算機的范疇,有計算和處理功 能,一般也具備移動上網特性。運類終端包括:PDA、MID和UMPC設備等,例如iPad。
[0087] (3)便攜式娛樂設備:運類設備可W顯示和播放多媒體內容。該類設備包括:音頻、 視頻播放器(例如iPod),掌上游戲機,電子書,W及智能玩具和便攜式車載導航設備。
[0088] (4)服務器:提供計算服務的設備,服務器的構成包括處理器、硬盤、內存、系統總 線等,服務器和通用的計算機架構類似,但是由于需要提供高可靠的服務,因此在處理能 力、穩定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
[0089] (5)其他具有數據交互功能的電子設備。
[0090] 需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實 體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示運些實體或操作之間存 在任何運種實際的關系或者順序。而且,術語"包括"、"包含"或者其任何其他變體意在涵蓋 非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要 素,而且還包括沒有明確列出的其他要素,或者是還包括為運種過程、方法、物品或者設備 所固有的要素。在沒有更多限制的情況下,由語句"包括一個……"限定的要素,并不排除在 包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0091] 本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部 分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。
[0092] 尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所W描述的比較簡 單,相關之處參見方法實施例的部分說明即可。
[0093] 在流程圖中表示或在此W其他方式描述的邏輯和/或步驟,例如,可W被認為是用 于實現邏輯功能的可執行指令的定序列表,可W具體實現在任何計算機可讀介質中,W供 指令執行系統、裝置或設備(如基于計算機的系統、包括處理器的系統或其他可W從指令執 行系統、裝置或設備取指令并執行指令的系統)使用,或結合運些指令執行系統、裝置或設 備而使用。就本說明書而言,"計算機可讀介質"可W是任何可W包含、存儲、通信、傳播或傳 輸程序W供指令執行系統、裝置或設備或結合運些指令執行系統、裝置或設備而使用的裝 置。計算機可讀介質的更具體的示例(非窮盡性列表)包括W下:具有一個或多個布線的電 連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器 (ROM),可擦除可編輯只讀存儲器巧PROM或閃速存儲器),光纖裝置,W及便攜式光盤只讀存 儲器(CDR0M)。另外,計算機可讀介質甚至可W是可在其上打印所述程序的紙或其他合適的 介質,因為可w例如通過對紙或其他介質進行光學掃描,接著進行編輯、解譯或必要時w其 他合適方式進行處理來W電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
[0094]應當理解,本發明的各部分可W用硬件、軟件、固件或它們的組合來實現。
[00M]在上述實施方式中,多個步驟或方法可W用存儲在存儲器中且由合適的指令執行 系統執行的軟件或固件來實現。例如,如果用硬件來實現,和在另一實施方式中一樣,可用 本領域公知的下列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功 能的邏輯口電路的離散邏輯電路,具有合適的組合邏輯口電路的專用集成電路,可編程口 陣列(PGA),現場可編程口陣列(FPGA)等。
[0096] 本技術領域的普通技術人員可W理解實現上述實施例方法攜帶的全部或部分步 驟是可W通過程序來指令相關的硬件完成,所述的程序可W存儲于一種計算機可讀存儲介 質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
[0097] 為了描述的方便,描述W上裝置是W功能分為各種單元/模塊分別描述。當然,在 實施本發明時可W把各單元/模塊的功能在同一個或多個軟件和/或硬件中實現。
[0098] 通過W上的實施方式的描述可知,本領域的技術人員可W清楚地了解到本發明可 借助軟件加必需的通用硬件平臺的方式來實現。基于運樣的理解,本發明的技術方案本質 上或者說對現有技術做出貢獻的部分可軟件產品的形式體現出來,該計算機軟件產品 可W存儲在存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用W使得一臺計算機設備 (可W是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例或者實施例的某些 部分所述的方法。
[0099] W上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發明掲露的技術范圍內,可輕易想到的變化或替換,都應 涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應W權利要求的保護范圍為準。
【主權項】
1. 一種攔截控制碼的方法,其特征在于,包括: 創建用于對控制碼進行過濾的設備對象; 將創建的所述設備對象附加到目標設備對象上; 通過附加到所述目標設備對象上的所述設備對象,接收操作系統傳遞的請求包,對所 述請求包中包含的控制碼進行分析,確定所述控制碼是否是需要攔截的控制碼,若所述控 制碼是需要攔截的控制碼,則拒絕將所述控制碼傳遞給所述目標設備對象。2. 根據權利要求1所述的攔截控制碼的方法,其特征在于,所述創建用于對控制碼進行 過濾的設備對象,包括: 調用操作系統中用于生成過濾設備的函數,創建屬于一反病毒應用程序的防御驅動程 序的設備對象;其中, 創建的所述設備對象用于對控制碼進行過濾,并且創建的所述設備對象的設備類型與 所述目標設備對象的設備類型相一致。3. 根據權利要求1或2所述的攔截控制碼的方法,其特征在于,所述將創建的所述設備 對象附加到目標設備對象上,包括: 調用操作系統的內核中用于設備綁定的應用程序編程接口函數; 將創建的所述用于對控制碼進行過濾的設備對象和目標設備對象傳入所述應用程序 編程接口函數; 通過所述應用程序編程接口函數,將創建的所述用于對控制碼進行過濾的設備對象附 加到目標設備對象上。4. 根據權利要求3所述的攔截控制碼的方法,其特征在于,所述操作系統為Windows操 作系統;其中, 所述調用操作系統的內核中用于設備綁定的應用程序編程接口函數,包括: 判斷所述目標設備對象是否有設備名稱; 若所述目標設備對象有設備名稱,則調用操作系統的內核中用于設備綁定的 IoAttachDevice函數; 若所述目標設備對象沒有設備名稱,則調用操作系統的內核中用于設備綁定的5. 根據權利要求2所述的攔截控制碼的方法,其特征在于,若所述控制碼是需要攔截的 控制碼,所述方法還包括: 所述用于對控制碼進行過濾的設備對象,將所述控制碼是需要攔截的控制碼的信息, 或者將拒絕將所述控制碼傳遞給所述目標設備對象的信息,通知給所述反病毒應用程序的 防御驅動程序。6. 根據權利要求1所述的攔截控制碼的方法,其特征在于,在創建用于對控制碼進行過 濾的設備對象之前,所述方法還包括: 對控制碼進行分析,確定所述控制碼是否是需要攔截的控制碼; 若所述控制碼是需要攔截的控制碼,則確定所述控制碼所對應的目標設備對象。7. -種攔截控制碼的裝置,其特征在于,包括: 設備對象創建模塊,用于創建用于對控制碼進行過濾的設備對象; 附加模塊,用于將所述用于對控制碼進行過濾的設備對象附加到目標設備對象上; 攔截模塊,用于通過附加到所述目標設備對象上的所述設備對象,接收操作系統傳遞 的請求包,對所述請求包中包含的控制碼進行分析,確定所述控制碼是否是需要攔截的控 制碼,若所述控制碼是需要攔截的控制碼,則拒絕將所述控制碼傳遞給所述目標設備對象。8. 根據權利要求7所述的攔截控制碼的裝置,其特征在于,所述設備對象創建模塊,用 于調用操作系統中用于生成過濾設備的函數,創建屬于一反病毒應用程序的防御驅動程序 的設備對象;其中 創建的所述設備對象用于對控制碼進行過濾,并且創建的所述設備對象的設備類型與 所述目標設備對象的設備類型相一致。9. 根據權利要求7或8所述的攔截控制碼的裝置,其特征在于,所述附加模塊,包括: 調用子模塊,用于調用操作系統的內核中用于設備綁定的應用程序編程接口函數; 傳入子模塊,用于將創建的所述用于對控制碼進行過濾的設備對象和目標設備對象傳 入所述應用程序編程接口函數; 附加子模塊,用于通過所述應用程序編程接口函數,將創建的所述用于對控制碼進行 過濾的設備對象附加到目標設備對象上。10. 根據權利要求9所述的攔截控制碼的裝置,其特征在于,所述操作系統為Windows操 作系統;其中, 所述調用子模塊包括: 判斷單元,用于判斷所述目標設備對象是否有設備名稱; 第一調用單元,用于若所述目標設備對象有設備名稱,則調用操作系統的內核中用于 設備綁定的IoAttachDevice函數; 第二調用單元,用于若所述目標設備對象沒有設備名稱,則調用操作系統的內核中用 于設備綁定的
【文檔編號】G06F21/55GK106066962SQ201610369696
【公開日】2016年11月2日
【申請日】2016年5月30日 公開號201610369696.4, CN 106066962 A, CN 106066962A, CN 201610369696, CN-A-106066962, CN106066962 A, CN106066962A, CN201610369696, CN201610369696.4
【發明人】楊峰
【申請人】北京金山安全軟件有限公司