防止系統(tǒng)環(huán)境變量修改的方法、裝置及電子設(shè)備的制造方法
【專利摘要】本發(fā)明的實(shí)施例公開一種防止系統(tǒng)環(huán)境變量修改的方法、裝置及電子設(shè)備,涉及安全防護(hù)技術(shù)領(lǐng)域,能夠有效防止系統(tǒng)環(huán)境的破壞。所述防止系統(tǒng)環(huán)境變量修改的方法,包括:對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視;根據(jù)對(duì)設(shè)置系統(tǒng)環(huán)境變量函數(shù)的監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量,若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則判斷獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程,若是,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。所述裝置和電子設(shè)備中包括實(shí)現(xiàn)上述方法步驟的模塊。本發(fā)明適用于對(duì)操作系統(tǒng)環(huán)境的保護(hù)。
【專利說明】
防止系統(tǒng)環(huán)境變量修改的方法、裝置及電子設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及系統(tǒng)安全防護(hù)技術(shù)領(lǐng)域,尤其涉及一種防止系統(tǒng)環(huán)境變量修改的方法、裝置及電子設(shè)備。
【背景技術(shù)】
[0002]環(huán)境變量(EnvironmentVariables) —般是指在操作系統(tǒng)中用來指定操作系統(tǒng)運(yùn)行環(huán)境的一些參數(shù),如:臨時(shí)文件夾位置和系統(tǒng)文件夾位置等。
[0003]環(huán)境變量是在操作系統(tǒng)中一個(gè)具有特定名字的對(duì)象,它包含了一個(gè)或者多個(gè)應(yīng)用程序所將使用到的信息。例如Windows和DOS操作系統(tǒng)中的Path環(huán)境變量,當(dāng)要求系統(tǒng)運(yùn)行一個(gè)程序而沒有告訴它程序所在的完整路徑時(shí),系統(tǒng)除了在當(dāng)前目錄下面尋找此程序外,還應(yīng)到Path中指定的路徑去找。用戶通過設(shè)置環(huán)境變量,來更好的運(yùn)行進(jìn)程。
[0004]環(huán)境變量分為兩類:用戶環(huán)境變量與系統(tǒng)環(huán)境變量,在注冊(cè)表中都有對(duì)應(yīng)的項(xiàng)。在Windows操作系統(tǒng)中可以通過我的電腦-> 系統(tǒng)屬性-> 高級(jí)系統(tǒng)設(shè)置-> 環(huán)境變量,來手動(dòng)設(shè)置系統(tǒng)環(huán)境變量。
[0005]Windows操作系統(tǒng)提供了 SetEnvironmentVariable函數(shù),用于修改系統(tǒng)環(huán)境變量。目前,有些惡意應(yīng)用程序常通過調(diào)用SetEnvironmentVariable函數(shù)的方法來修改系統(tǒng)環(huán)境變量,從而破壞系統(tǒng)環(huán)境。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明實(shí)施例提供一種防止系統(tǒng)環(huán)境變量修改的方法、裝置及電子設(shè)備,能夠有效防止系統(tǒng)環(huán)境的破壞。
[0007]第一方面,本發(fā)明實(shí)施例提供一種防止系統(tǒng)環(huán)境變量修改的方法,包括:對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視;根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量;判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量;若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息;根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程;若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。
[0008]結(jié)合第一方面,在第一方面的第一種可實(shí)施方式中,所述對(duì)操作系統(tǒng)中的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0009]結(jié)合第一方面的第一種可實(shí)施方式,在第一方面的第二種可實(shí)施方式中,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為SetEnvironmentVariable函數(shù);其中,所述對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視包括:通過預(yù)先設(shè)置的鉤子函數(shù)對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0010]結(jié)合第一方面,在第一方面的第三種可實(shí)施方式中,所述對(duì)操作系統(tǒng)中的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0011]結(jié)合第一方面的第三種可實(shí)施方式,在第一方面的第四種可實(shí)施方式中,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為NtSetSystemEnvironmentValue函數(shù);其中,所述對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:通過安全防護(hù)類應(yīng)用程序的防御驅(qū)動(dòng)程序中預(yù)先設(shè)置的鉤子函數(shù),對(duì)操作系統(tǒng)內(nèi)核層的NtSetSystemEnvironmentValue函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0012]結(jié)合第一方面至第一方面的第四種可實(shí)施方式中的任一種可實(shí)施方式,在第一方面的第五種可實(shí)施方式中,所述根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程,包括:根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的標(biāo)識(shí)信息是否匹配,若所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的至少一個(gè)標(biāo)識(shí)信息相匹配,則確定所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的進(jìn)程的標(biāo)識(shí)信息。
[0013]第二方面,本發(fā)明實(shí)施例提供一種防止系統(tǒng)環(huán)境變量修改的裝置,包括:監(jiān)視模塊,用于對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視;第一獲取模塊,用于根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量;第一判斷模塊,用于判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量;第二獲取模塊,用于若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息;第二判斷模塊,用于根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程;拒絕修改模塊,用于若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。
[0014]結(jié)合第二方面,在第二方面的第一種可實(shí)施方式中,所述對(duì)操作系統(tǒng)中的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0015]結(jié)合第二方面的第一種可實(shí)施方式,在第二方面的第二種可實(shí)施方式中,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為SetEnvironmentVariable函數(shù);其中,所述對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視包括:通過預(yù)先設(shè)置的鉤子函數(shù)對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0016]結(jié)合第二方面,在第二方面的第三種可實(shí)施方式中,所述對(duì)操作系統(tǒng)中的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0017]結(jié)合第二方面的第三種可實(shí)施方式,在第二方面的第四種可實(shí)施方式中,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為NtSetSystemEnvironmentValue函數(shù);其中,所述對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:通過安全防護(hù)類應(yīng)用程序的防御驅(qū)動(dòng)程序中預(yù)先設(shè)置的鉤子函數(shù),對(duì)操作系統(tǒng)內(nèi)核層的NtSetSystemEnvironmentValue函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0018]結(jié)合第二方面至第二方面的第四種可實(shí)施方式,在第二方面的第五種可實(shí)施方式中,所述根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程,包括:根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的標(biāo)識(shí)信息是否匹配,若所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的至少一個(gè)標(biāo)識(shí)信息相匹配,則確定所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的進(jìn)程的標(biāo)識(shí)信息。
[0019]第三方面,本發(fā)明實(shí)施例提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存儲(chǔ)器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲(chǔ)器設(shè)置在電路板上;電源電路,用于為上述電子設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器用于存儲(chǔ)可執(zhí)行程序代碼;處理器通過讀取存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序,用于執(zhí)行前述任一可實(shí)施方式所述的防止系統(tǒng)環(huán)境變量修改的方法。
[0020]本發(fā)明實(shí)施例提供的防止系統(tǒng)環(huán)境變量修改的方法、裝置及電子設(shè)備,通過對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,當(dāng)有應(yīng)用程序的進(jìn)程調(diào)用所述設(shè)置系統(tǒng)環(huán)境變量函數(shù)時(shí),根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量,判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量,若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則進(jìn)一步獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息,根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序如惡意應(yīng)用程序的進(jìn)程,若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改,由此能夠有效防止系統(tǒng)環(huán)境的破壞。
【附圖說明】
[0021]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0022]圖1為本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例一的流程示意圖;
[0023]圖2為本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例二的流程示意圖;
[0024]圖3為本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例三的流程示意圖;
[0025]圖4為本發(fā)明防止系統(tǒng)環(huán)境變量修改的裝置實(shí)施例一的結(jié)構(gòu)示意圖;
[0026]圖5為本發(fā)明電子設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027]下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
[0028]應(yīng)當(dāng)明確,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明防護(hù)的范圍。
[0029]圖1為本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例一的流程示意圖。參看圖1,本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例,包括如下步驟:
[0030]SlOl、對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0031]操作系統(tǒng)提供了設(shè)置系統(tǒng)環(huán)境變量函數(shù)。應(yīng)用程序的進(jìn)程通過調(diào)用所述設(shè)置系統(tǒng)環(huán)境變量函數(shù)可修改系統(tǒng)環(huán)境變量。本實(shí)施例通過對(duì)所述設(shè)置系統(tǒng)環(huán)境變量函數(shù)進(jìn)行監(jiān)視,可及時(shí)截獲對(duì)系統(tǒng)環(huán)境變量進(jìn)行修改的消息。
[0032]S102、根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量。
[0033]應(yīng)用程序的進(jìn)程調(diào)用所述設(shè)置系統(tǒng)環(huán)境變量函數(shù)時(shí),會(huì)向所述設(shè)置系統(tǒng)環(huán)境變量函數(shù)傳遞待修改的系統(tǒng)環(huán)境變量。本實(shí)施例中,可在所述待修改的系統(tǒng)環(huán)境變量到達(dá)所述設(shè)置系統(tǒng)環(huán)境變量函數(shù)之前,截獲所述待修改的系統(tǒng)環(huán)境變量。
[0034]S103、判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量。
[0035]本實(shí)施例中,作為一可選的方式,可將要保護(hù)的系統(tǒng)環(huán)境變量比如%windir%、%TEMP%等系統(tǒng)環(huán)境變量寫入白名單中。在所述白名單中進(jìn)行匹配查詢,若在所述白名單中匹配到與所述待修改的系統(tǒng)環(huán)境變量相同的環(huán)境變量,則可確定所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,否則,則確定所述待修改的系統(tǒng)環(huán)境變量不是要保護(hù)的系統(tǒng)環(huán)境變量。
[0036]SI 04、若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息。
[0037]本實(shí)施例中,所述進(jìn)程的標(biāo)識(shí)信息,可以是所述進(jìn)程的進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào):每個(gè)進(jìn)程都有唯一的進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào)。在識(shí)別一個(gè)進(jìn)程時(shí),進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào)代表該進(jìn)程。
[0038]S105、根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程。
[0039]本實(shí)施例中,作為一可選方式,可根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的標(biāo)識(shí)信息是否匹配,若所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的至少一個(gè)標(biāo)識(shí)信息相匹配,則確定所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的進(jìn)程的標(biāo)識(shí)信息。
[0040]S106、若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。[0041 ]本實(shí)施例中,若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則返回拒絕消息,拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。
[0042]通過上面的步驟,目標(biāo)應(yīng)用程序?qū)ΡWo(hù)的系統(tǒng)環(huán)境變量的修改就會(huì)失敗。
[0043]本發(fā)明實(shí)施例提供的防止系統(tǒng)環(huán)境變量修改的方法,通過對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,當(dāng)有應(yīng)用程序的進(jìn)程調(diào)用所述設(shè)置系統(tǒng)環(huán)境變量函數(shù)時(shí),根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量,判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量,若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則進(jìn)一步獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息,根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序如惡意應(yīng)用程序的進(jìn)程,若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改,由此能夠有效防止系統(tǒng)環(huán)境的破壞。
[0044]圖2為本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例二的流程示意圖。本實(shí)施例適用于金山毒霸或金山衛(wèi)士等安全防護(hù)類應(yīng)用程序。參看圖2,本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例,包括如下步驟:
[0045]S201、通過預(yù)先設(shè)置的鉤子(Hook)函數(shù)對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0046]本實(shí)施例中,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為SetEnvironmentVariable函數(shù)。
[0047]在本步驟之前,可由編程人員在所述防御驅(qū)動(dòng)中建立鉤子函數(shù)。鉤子函數(shù)實(shí)際上是一個(gè)處理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達(dá)目的窗口前,鉤子函數(shù)就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。這時(shí)鉤子函數(shù)即可以加工處理該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。
[0048]本實(shí)施例中,將SetEnvironmentVariable函數(shù)的原始入口地址修改為本實(shí)施例中的鉤子函數(shù)的入口地址。惡意應(yīng)用程序的進(jìn)程在調(diào)用SetEnvironmentVariable函數(shù)時(shí),由于SetEnvironmentVariable函數(shù)的原始入口地址已被修改為本實(shí)施例的鉤子函數(shù)的入口地址,通過對(duì)SetEnvironmentVariable函數(shù)的調(diào)用,即可跳至本實(shí)施例的鉤子函數(shù)的執(zhí)行,由此實(shí)現(xiàn)對(duì)Se tEnv ironmentVar iab I e函數(shù)的監(jiān)視。
[0049]為了實(shí)現(xiàn)對(duì) SetEnvironmentVariable 函數(shù)的回調(diào),在將 SetEnvironmentVariable函數(shù)的原始入口地址修改為本實(shí)施例中的鉤子函數(shù)的入口地址之前,需要對(duì)SetEnvironmentVariable函數(shù)的原始入口地址進(jìn)行保存。
[0050]本實(shí)施例中,惡意應(yīng)用程序的進(jìn)程對(duì)SetEnvironmentVariable函數(shù)的調(diào)用,可通過windows操作系統(tǒng)對(duì)SetEnvironmentVariable函數(shù)的調(diào)用來實(shí)現(xiàn)。具體來講,可以是惡意應(yīng)用程序的進(jìn)程向windows操作系統(tǒng)發(fā)出調(diào)用SetEnvironmentVariable函數(shù)的消息,windows操作系統(tǒng)根據(jù)該消息調(diào)用SetEnvironmentVariable函數(shù)。
[0051]S202、所述鉤子函數(shù)根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量。
[0052]本實(shí)施例中,所述鉤子函數(shù)根據(jù)所述監(jiān)視獲取待修改的系統(tǒng)環(huán)境變量的過程和上述方法實(shí)施例的步驟S102類似,此處不再贅述。
[0053]S203、所述鉤子函數(shù)判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量。
[0054]本實(shí)施例中,所述鉤子函數(shù)判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量的過程和上述方法實(shí)施例的步驟S103類似,此處不再贅述。
[0055]本實(shí)施例中,經(jīng)過判斷,若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則執(zhí)行步驟S204,否則執(zhí)行步驟S207。
[0056]S204、所述鉤子函數(shù)獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息。
[0057]所述進(jìn)程的標(biāo)識(shí)信息,可以是所述進(jìn)程的進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào):每個(gè)進(jìn)程都有唯一的進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào)。在識(shí)別一個(gè)進(jìn)程時(shí),進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào)代表該進(jìn)程。
[0058]S205、所述鉤子函數(shù)根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程。
[0059]本實(shí)施例中,所述鉤子函數(shù)根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程的過程和上述方法實(shí)施例的步驟S105類似,此處不再贅述。
[0060]本實(shí)施例中,經(jīng)過判斷,若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則執(zhí)行步驟S206,否則執(zhí)行步驟S207.[0061 ] S206、所述鉤子函數(shù)拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。
[0062]本實(shí)施例中,若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,所述鉤子函數(shù)則返回拒絕消息,拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。
[0063]S207、調(diào)用操作系統(tǒng)應(yīng)用層的原始SetEnvironmentVariable函數(shù)。
[0064]本實(shí)施例中,可通過調(diào)用操作系統(tǒng)應(yīng)用層的原始SetEnvironmentVariable函數(shù),對(duì)所述環(huán)境變量進(jìn)行修改。
[0065]本發(fā)明實(shí)施例提供的防止系統(tǒng)環(huán)境變量修改的方法,通過預(yù)先設(shè)置的鉤子函數(shù)對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,能夠防止目標(biāo)應(yīng)用程序如惡意應(yīng)用程序?qū)σWo(hù)的系統(tǒng)環(huán)境變量的修改,由此能夠有效防止系統(tǒng)環(huán)境的破壞。
[0066]圖3為本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例三的流程示意圖。本實(shí)施例適用于金山毒霸或金山衛(wèi)士等安全防護(hù)類應(yīng)用程序。參看圖3,本發(fā)明防止系統(tǒng)環(huán)境變量修改的方法實(shí)施例,包括如下步驟:
[0067]S301、通過預(yù)先設(shè)置的鉤子(Hook)函數(shù)對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0068]本實(shí)施例中,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為NtSetSystemEnvironmentValue函數(shù)。
[0069]在本步驟之前,可由編程人員在所述防御驅(qū)動(dòng)中建立鉤子函數(shù)。鉤子函數(shù)實(shí)際上是一個(gè)處理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達(dá)目的窗口前,鉤子函數(shù)就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。這時(shí)鉤子函數(shù)即可以加工處理該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。
[0070]本實(shí)施例中,所述鉤子函數(shù)可設(shè)置在金山毒霸或金山衛(wèi)士等安全防護(hù)類應(yīng)用程序的防御驅(qū)動(dòng)中。
[0071 ] 本實(shí)施例中,將NtSetSystemEnvironmentValue函數(shù)的原始入口地址修改為本實(shí)施例中的鉤子函數(shù)的入口地址。惡意應(yīng)用程序的進(jìn)程在調(diào)用NtSetSystemEnvironmentValue函數(shù)時(shí),由于NtSetSystemEnvironmentValue函數(shù)的原始入口地址已被修改為本實(shí)施例的鉤子函數(shù)的入口地址,通過對(duì)NtSetSystemEnvironmentValue函數(shù)的調(diào)用,即可跳至本實(shí)施例的鉤子函數(shù)的執(zhí)行,由此實(shí)現(xiàn)對(duì)NtSetSy StemEnvironmentValue 函數(shù)的監(jiān)視。
[0072]為了實(shí)現(xiàn)對(duì)NtSetSystemEnvironmentValue 函數(shù)的回調(diào),在將NtSetSystemEnvironmentValue函數(shù)的原始入口地址修改為本實(shí)施例中的鉤子函數(shù)的入口地址之前,需要對(duì)NtSetSystemEnvironmentValue函數(shù)的原始入口地址進(jìn)行保存。
[0073]本實(shí)施例中,惡意應(yīng)用程序的進(jìn)程對(duì)NtSetSystemEnvironmentValue函數(shù)的調(diào)用,可通過windows操作系統(tǒng)對(duì)NtSetSystemEnvironmentValue函數(shù)的調(diào)用來實(shí)現(xiàn)。具體來講,可以是惡意應(yīng)用程序的進(jìn)程向windows操作系統(tǒng)發(fā)出調(diào)用NtSetSys temEnvironmentValue函數(shù)的消息,windows操作系統(tǒng)根據(jù)該消息調(diào)用NtSetSystemEnvironmentValue函數(shù)。
[0074]S302、所述鉤子函數(shù)根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量。
[0075]本實(shí)施例中,所述鉤子函數(shù)根據(jù)所述監(jiān)視獲取待修改的系統(tǒng)環(huán)境變量的過程和上述方法實(shí)施例的步驟S102類似,此處不再贅述。
[0076]S303、所述鉤子函數(shù)判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量。
[0077]本實(shí)施例中,所述鉤子函數(shù)判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量的過程和上述方法實(shí)施例的步驟S103類似,此處不再贅述。
[0078]本實(shí)施例中,經(jīng)過判斷,若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則執(zhí)行步驟S304,否則執(zhí)行步驟S307。
[0079]S304、所述鉤子函數(shù)獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息。
[0080]所述進(jìn)程的標(biāo)識(shí)信息,可以是所述進(jìn)程的進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào):每個(gè)進(jìn)程都有唯一的進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào)。在識(shí)別一個(gè)進(jìn)程時(shí),進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào)代表該進(jìn)程。
[0081]S305、所述鉤子函數(shù)根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程。
[0082]本實(shí)施例中,所述鉤子函數(shù)根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程的過程和上述方法實(shí)施例的步驟S105類似,此處不再贅述。
[0083]本實(shí)施例中,經(jīng)過判斷,若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則執(zhí)行步驟S306,否則執(zhí)行步驟S307.
[0084]S306、所述鉤子函數(shù)拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。
[0085]本實(shí)施例中,若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,所述鉤子函數(shù)則返回拒絕消息,拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改,否則執(zhí)行步驟S307。
[0086]S307、調(diào)用操作系統(tǒng)內(nèi)核層的原始NtSetSystemEnvironmentValue函數(shù)。
[0087]本實(shí)施例中,可通過調(diào)用操作系統(tǒng)內(nèi)核層的原始NtSetSystemEnvironmentValue函數(shù),對(duì)所述環(huán)境變量進(jìn)行修改。
[0088]本發(fā)明實(shí)施例提供的防止系統(tǒng)環(huán)境變量修改的方法,通過預(yù)先設(shè)置的鉤子函數(shù)對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,能夠防止目標(biāo)應(yīng)用程序如惡意應(yīng)用程序通過內(nèi)核的方式對(duì)要保護(hù)的系統(tǒng)環(huán)境變量的修改,由此能夠有效防止系統(tǒng)環(huán)境的破壞。
[0089]下面采用一個(gè)具體的實(shí)施例,對(duì)圖3所示方法實(shí)施例的技術(shù)方案進(jìn)行詳細(xì)說明。
[0090]在用戶電腦環(huán)境中,存在一個(gè)惡意軟件A。在金山毒霸的防御驅(qū)動(dòng)中Hook了修改環(huán)境變量的NtSetSystemEnvironmentValue函數(shù),當(dāng)惡意軟件A的進(jìn)程通知其驅(qū)動(dòng)程序調(diào)用NtSetSy StemEnvironmentValue函數(shù)修改系統(tǒng)環(huán)境變量時(shí),防御驅(qū)動(dòng)就會(huì)對(duì)此行為進(jìn)行攔截,并返回拒絕,使得惡意軟件修改系統(tǒng)環(huán)境變量失敗,從而更好地保護(hù)用戶系統(tǒng)環(huán)境不被破壞。
[0091]圖4為本發(fā)明防止系統(tǒng)環(huán)境變量修改的裝置實(shí)施例一的結(jié)構(gòu)示意圖。參看圖4,本發(fā)明防止系統(tǒng)環(huán)境變量修改的裝置實(shí)施例,包括:監(jiān)視模塊11、第一獲取模塊12、第一判斷模塊13、第二獲取模塊14、第二判斷模塊15和拒絕修改模塊16;其中,
[0092]所述監(jiān)視模塊11,用于對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0093]所述第一獲取模塊12,用于根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量。
[0094]所述第一判斷模塊13,用于判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量。
[0095]所述第二獲取模塊14,用于若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息。
[0096]所述第二判斷模塊15,用于根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程。
[0097]所述拒絕修改模塊16,用于若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。
[0098]作為一可選實(shí)施方式,所述第二判斷模塊15可根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的標(biāo)識(shí)信息是否匹配,若所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的至少一個(gè)標(biāo)識(shí)信息相匹配,則確定所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的進(jìn)程的標(biāo)識(shí)信息。
[0099]本實(shí)施例的裝置,可以用于執(zhí)行圖1所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0100]在前述防止系統(tǒng)環(huán)境變量修改的裝置實(shí)施例中,作為一可選的方式,所述操作系統(tǒng)為Window s操作系統(tǒng);所述操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為SetEnvironmentVariable函數(shù);所述監(jiān)視模塊11,具體用于通過預(yù)先設(shè)置的鉤子函數(shù)對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0101]進(jìn)一步地,本實(shí)施例的裝置,還可包括第一調(diào)用模塊,用于在所述待修改的系統(tǒng)環(huán)境變量不是要保護(hù)的系統(tǒng)環(huán)境變量,或者修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程不是目標(biāo)應(yīng)用程序的進(jìn)程時(shí),調(diào)用操作系統(tǒng)應(yīng)用層的原始SetEnvironmentVariable函數(shù)。
[0102]本實(shí)施例的裝置,可以用于執(zhí)行圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0103]在前述防止系統(tǒng)環(huán)境變量修改的裝置實(shí)施例中,作為另一可選的方式,所述操作系統(tǒng)為Windows操作系統(tǒng);所述操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為NtSetSystemEnvironmentValue函數(shù);所述監(jiān)視模塊11,具體用于通過安全防護(hù)類應(yīng)用程序的防御驅(qū)動(dòng)程序中預(yù)先設(shè)置的鉤子函數(shù),對(duì)操作系統(tǒng)內(nèi)核層的NtSetSy s temEnvironmentValue 函數(shù)的調(diào)用進(jìn)行監(jiān)視。
[0104]進(jìn)一步地,本實(shí)施例的裝置,還可包括第一調(diào)用模塊,用于在所述待修改的系統(tǒng)環(huán)境變量不是要保護(hù)的系統(tǒng)環(huán)境變量,或者修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程不是目標(biāo)應(yīng)用程序的進(jìn)程時(shí),調(diào)用操作系統(tǒng)內(nèi)核層的原始NtSetSystemEnvironmentValue函數(shù)。
[0105]本實(shí)施例的裝置,可以用于執(zhí)行圖3所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0106]本發(fā)明實(shí)施例還提供一種電子設(shè)備。圖5為本發(fā)明電子設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)不意圖,可以實(shí)現(xiàn)本發(fā)明圖1、圖2或圖3所示實(shí)施例的流程,如圖5所示,上述電子設(shè)備可以包括:殼體41、處理器42、存儲(chǔ)器43、電路板44和電源電路45,其中,電路板44安置在殼體41圍成的空間內(nèi)部,處理器42和存儲(chǔ)器43設(shè)置在電路板44上;電源電路45,用于為上述電子設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器43用于存儲(chǔ)可執(zhí)行程序代碼;處理器42通過讀取存儲(chǔ)器43中存儲(chǔ)的可執(zhí)行程序代碼來運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序,用于執(zhí)行前述任一實(shí)施例所述的防止系統(tǒng)環(huán)境變量修改的方法。
[0107]該電子設(shè)備以多種形式存在,包括但不限于:
[0108](I)移動(dòng)通信設(shè)備:這類設(shè)備的特點(diǎn)是具備移動(dòng)通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(jī)(例如iPhone)、多媒體手機(jī)、功能性手機(jī),以及低端手機(jī)等。
[0109](2)超移動(dòng)個(gè)人計(jì)算機(jī)設(shè)備:這類設(shè)備屬于個(gè)人計(jì)算機(jī)的范疇,有計(jì)算和處理功能,一般也具備移動(dòng)上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
[0110](3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放模塊(例如iPod),掌上游戲機(jī),電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
[0111](4)服務(wù)器:提供計(jì)算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計(jì)算機(jī)架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。
[0112](5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。
[0113]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0114]本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0115]為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當(dāng)然,在實(shí)施本發(fā)明時(shí)可以把各單元/模塊的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
[0116]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory,RAM)等。
[0117]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的防護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的防護(hù)范圍之內(nèi)。因此,本發(fā)明的防護(hù)范圍應(yīng)以權(quán)利要求的防護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種防止系統(tǒng)環(huán)境變量修改的方法,其特征在于,包括: 對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視; 根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量; 判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量; 若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息; 根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程; 若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。2.根據(jù)權(quán)利要求1所述的防止系統(tǒng)環(huán)境變量修改的方法,其特征在于,所述對(duì)操作系統(tǒng)中的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括: 對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。3.根據(jù)權(quán)利要求2所述的防止系統(tǒng)環(huán)境變量修改的方法,其特征在于,所述操作系統(tǒng)為W i n d ο w s操作系統(tǒng);所述操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為SetEnvironmentVariable 函數(shù); 其中,所述對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視包括:通過預(yù)先設(shè)置的鉤子函數(shù)對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。4.根據(jù)權(quán)利要求1所述的防止系統(tǒng)環(huán)境變量修改的方法,其特征在于,所述對(duì)操作系統(tǒng)中的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。5.根據(jù)權(quán)利要求4所述的防止系統(tǒng)環(huán)境變量修改的方法,其特征在于,所述操作系統(tǒng)為W i n d ο w s操作系統(tǒng);所述操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為NtSetSystemEnvironmentValue 函數(shù); 其中,所述對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:通過安全防護(hù)類應(yīng)用程序的防御驅(qū)動(dòng)程序中預(yù)先設(shè)置的鉤子函數(shù),對(duì)操作系統(tǒng)內(nèi)核層的NtSetSy StemEnvironmentValue 函數(shù)的調(diào)用進(jìn)行監(jiān)視。6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的防止系統(tǒng)環(huán)境變量修改的方法,其特征在于,所述根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程,包括:根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的標(biāo)識(shí)信息是否匹配,若所述進(jìn)程的標(biāo)識(shí)信息與特征庫中保存的至少一個(gè)標(biāo)識(shí)信息相匹配,則確定所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程;其中,所述特征庫中保存有目標(biāo)應(yīng)用程序的進(jìn)程的標(biāo)識(shí)信息。7.一種防止系統(tǒng)環(huán)境變量修改的裝置,其特征在于,包括: 監(jiān)視模塊,用于對(duì)操作系統(tǒng)的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視; 第一獲取模塊,用于根據(jù)所述監(jiān)視,獲取待修改的系統(tǒng)環(huán)境變量; 第一判斷模塊,用于判斷所述待修改的系統(tǒng)環(huán)境變量是否是要保護(hù)的系統(tǒng)環(huán)境變量;第二獲取模塊,用于若所述待修改的系統(tǒng)環(huán)境變量是要保護(hù)的系統(tǒng)環(huán)境變量,則獲取此次修改所述待修改的系統(tǒng)環(huán)境變量的進(jìn)程的標(biāo)識(shí)信息; 第二判斷模塊,用于根據(jù)所述進(jìn)程的標(biāo)識(shí)信息,判斷所述進(jìn)程是否是目標(biāo)應(yīng)用程序的進(jìn)程; 拒絕修改模塊,用于若所述進(jìn)程是目標(biāo)應(yīng)用程序的進(jìn)程,則拒絕對(duì)所述系統(tǒng)環(huán)境變量的修改。8.根據(jù)權(quán)利要求7所述的防止系統(tǒng)環(huán)境變量修改的裝置,其特征在于,所述對(duì)操作系統(tǒng)中的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。9.根據(jù)權(quán)利要求8所述的防止系統(tǒng)環(huán)境變量修改的裝置,其特征在于,所述操作系統(tǒng)為W i n d ο w s操作系統(tǒng);所述操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)為SetEnvironmentVariable 函數(shù); 其中,所述對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視包括:通過預(yù)先設(shè)置的鉤子函數(shù)對(duì)操作系統(tǒng)應(yīng)用層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。10.根據(jù)權(quán)利要求7所述的防止系統(tǒng)環(huán)境變量修改的裝置,其特征在于,所述對(duì)操作系統(tǒng)中的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視,包括:對(duì)操作系統(tǒng)內(nèi)核層的設(shè)置系統(tǒng)環(huán)境變量函數(shù)的調(diào)用進(jìn)行監(jiān)視。
【文檔編號(hào)】G06F21/55GK106022117SQ201610332855
【公開日】2016年10月12日
【申請(qǐng)日】2016年5月18日
【發(fā)明人】楊峰
【申請(qǐng)人】北京金山安全軟件有限公司