一種目標應用程序的保護方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及終端技術領域,特別是涉及一種目標應用程序的保護方法及裝置。
【背景技術】
[0002]隨著互聯(lián)網(wǎng)技術的快速發(fā)展,終端設備中可能存在各種各樣的不安全因素,如病毒木馬等。為了保護終端設備的安全,可以在終端設備中安裝殺毒應用程序。但是,病毒木馬為了不被殺毒應用程序發(fā)現(xiàn)有可能會先把殺毒應用程序的進程結(jié)束,來達到存活的目的。因此,為了保護終端設備的安全,需要保證殺毒應用程序的進程可以一直在終端設備中運行。
[0003]病毒木馬等在結(jié)束殺毒應用程序時,向病毒木馬驅(qū)動程序發(fā)送控制碼,當其控制碼為結(jié)束殺毒應用程序時,其驅(qū)動程序調(diào)用一些函數(shù),并將待結(jié)束進程的殺毒應用程序的進程標識(PID)提供給這些函數(shù),來結(jié)束殺毒應用程序的進程。這些函數(shù)例如可以是NtTerminateProcess 函數(shù)、PspTerminateThreadByP ointer 函數(shù)、NtAssignProcessToJobObject 函數(shù)或 Ki InsertQueueApc 函數(shù)等。
[0004]因此,現(xiàn)有技術的在對殺毒應用程序進行保護時,可以通過掛鉤用于結(jié)束殺毒應用程序的進程的這些函數(shù)來實現(xiàn)。掛鉤這些函數(shù)后,任意其他應用程序在結(jié)束殺毒應用程序的進程時,殺毒應用程序就會檢測到,并向相應的函數(shù)返回STATUS_ACCESS_DENIED,讓該函數(shù)退出,意為結(jié)束進程時拒絕訪問,結(jié)束殺毒應用程序進程的操作就會失敗,這樣就可以達到攔截結(jié)束殺毒應用程序的進程的目的。
[0005]然而,在掛鉤用于結(jié)束殺毒應用程序的進程的這些函數(shù)來保護殺毒應用程序時,由于這些函數(shù)均比較底層,對這些函數(shù)做掛鉤過程比較復雜,不容易實現(xiàn),并且,可能導致系統(tǒng)不穩(wěn)定,因此現(xiàn)有技術中對殺毒應用程序進行保護的措施并不理想。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例的目的在于提供一種目標應用程序的保護方法及裝置,用以有效的實現(xiàn)對目標應用程序的保護。具體技術方案如下:
[0007]第一方面,本發(fā)明提供了一種目標應用程序的保護方法,應用于終端設備,所述方法包括:
[0008]當檢測到第一應用程序調(diào)用目標函數(shù)時,獲取所述第一應用程序向其驅(qū)動程序發(fā)送的控制碼和該控制碼將要進行控制的第二應用程序的信息;
[0009]判斷所述控制碼是否為結(jié)束應用程序的進程的控制碼,若是,判斷所述控制碼將要進行控制的第二應用程序是否為目標應用程序;
[0010]若是,攔截所述控制碼。
[0011]進一步地,通過掛鉤所述目標函數(shù),檢測所述第一應用程序?qū)λ瞿繕撕瘮?shù)的調(diào)用。
[0012]進一步地,所述獲取所述第一應用程序向其驅(qū)動程序發(fā)送的控制碼包括:
[0013]根據(jù)操作系統(tǒng)提供的調(diào)試工具,在所述目標函數(shù)下進行斷點調(diào)試,獲取所述第一應用程序向其驅(qū)動程序發(fā)送的控制碼。
[0014]進一步地,所述調(diào)試工具為:windbg調(diào)試工具。
[0015]進一步地,所述目標函數(shù)為:NtDeviceloControlFile函數(shù)。
[0016]進一步地,所述第二應用程序的信息包括以下至少一項:第二應用程序的進程對應的標識信息和路徑信息。
[0017]進一步地,所述方法還包括:
[0018]當判斷所述控制碼非結(jié)束應用程序的進程的控制碼,或,判斷所述控制碼將要進行控制的第二應用程序非目標應用程序時,對該控制碼進行放行,使其發(fā)送到第一應用程序?qū)尿?qū)動程序。
[0019]第二方面,本發(fā)明提供了一種目標應用程序的保護裝置,應用于終端設備,所述裝置包括:
[0020]獲取模塊,用于當檢測到第一應用程序調(diào)用目標函數(shù)時,獲取所述第一應用程序向其驅(qū)動程序發(fā)送的控制碼和該控制碼將要進行控制的第二應用程序的信息;
[0021]判斷模塊,用于判斷所述控制碼是否為結(jié)束應用程序的進程的控制碼,若是,判斷所述控制碼將要進行控制的第二應用程序是否為目標應用程序;
[0022]攔截模塊,用于當所述判斷模塊判斷結(jié)果為是時,攔截所述控制碼。
[0023]進一步地,所述獲取模塊,具體用于通過掛鉤所述目標函數(shù),檢測所述第一應用程序?qū)λ瞿繕撕瘮?shù)的調(diào)用。
[0024]進一步地,所述獲取模塊,具體用于根據(jù)操作系統(tǒng)提供的調(diào)試工具,在所述目標函數(shù)下進行斷點調(diào)試,獲取所述第一應用程序向其驅(qū)動程序發(fā)送的控制碼。
[0025]進一步地,所述調(diào)試工具為:windbg調(diào)試工具。
[0026]進一步地,所述目標函數(shù)為:NtDeviceloControlFile函數(shù)。
[0027]進一步地,所述第二應用程序的信息包括以下至少一項:第二應用程序的進程對應的標識信息和路徑信息。
[0028]進一步地,所述裝置還包括:
[0029]放行模塊,用于當判斷模塊判斷所述控制碼非結(jié)束應用程序的進程的控制碼,或,判斷所述控制碼將要進行控制的第二應用程序非目標應用程序時,對該控制碼進行放行,使其發(fā)送到第一應用程序?qū)尿?qū)動程序。
[0030]本發(fā)明實施例提供的一種目標應用程序的保護方法及裝置,當檢測到第一應用程序調(diào)用目標函數(shù)時,可以獲取該第一應用程序向其驅(qū)動程序發(fā)送的控制碼和該控制碼將要進行控制的第二應用程序的信息,然后判斷該控制碼是否為結(jié)束應用程序的進程的控制碼,若是,判斷該控制碼將要進行控制的第二應用程序是否為目標應用程序,若是,攔截所述控制碼,從而導致第一應用程序結(jié)束目標應用程序的進程失敗。本發(fā)明實施例中在第一應用程序調(diào)用目標函數(shù)向其驅(qū)動程序發(fā)送控制碼之前,獲取向其驅(qū)動程序發(fā)送的控制碼,并在確定該控制碼是結(jié)束目標應用程序的控制碼時,對該控制碼進行攔截,實現(xiàn)了對目標應用程序的保護,并且由于該過程相對于現(xiàn)有技術中在底層對函數(shù)進行掛鉤的方式,容易實現(xiàn),且不影響系統(tǒng)的穩(wěn)定性。
【附圖說明】
[0031]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0032]圖1為本發(fā)明實施例提供的一種目標應用程序的保護方法的流程圖;
[0033]圖2為本發(fā)明實施例提供的一種目標應用程序的保護裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0034]為了有效的實現(xiàn)對目標應用程序的保護,本發(fā)明實施例提供了一種目標應用程序的保護方法及裝置。
[0035]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0036]需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
[0037]隨著互聯(lián)網(wǎng)技術的快速發(fā)展,終端設備中可能存在各種各樣的不安全因素,如病毒木馬等。為了保護終端設備的安全,可以在終端設備中安裝殺毒應用程序。但是,病毒木