一種基于pe格式的實(shí)時(shí)監(jiān)控系統(tǒng)授權(quán)碼管理的新方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于PE格式的實(shí)時(shí)監(jiān)控系統(tǒng)授權(quán)碼管理的新方法。
【背景技術(shù)】 隨著計(jì)算機(jī)、通信技術(shù)的飛速發(fā)展,信息安全已成為當(dāng)前信息時(shí)代的一個(gè)重要問(wèn)題。在 信息安全領(lǐng)域,入侵檢測(cè)技術(shù)是信息安全領(lǐng)域非常重要的一項(xiàng)技術(shù)。在此,入侵檢測(cè)系統(tǒng) (Intrusion detection systems, IDS)用來(lái)對(duì)計(jì)算機(jī)用戶可能遭受的攻擊產(chǎn)生警報(bào),它可 以分析和過(guò)濾網(wǎng)絡(luò)數(shù)據(jù)包,以及監(jiān)控系統(tǒng)中的程序行為以防止危險(xiǎn)操作的發(fā)生。實(shí)時(shí)監(jiān)控 技術(shù)是入侵檢測(cè)技術(shù)的一種,它能夠監(jiān)控計(jì)算機(jī)系統(tǒng)上運(yùn)行的所有程序,攔截未授權(quán)的操 作,由用戶決定是否繼續(xù)下一步的調(diào)用。授權(quán)管理是指實(shí)時(shí)監(jiān)控系統(tǒng)按照某種方式刪除、添 加以及查找用戶對(duì)此程序的相關(guān)授權(quán)記錄的方法。由于系統(tǒng)的易用性直接影響了實(shí)時(shí)監(jiān) 控系統(tǒng)的銷售量,而授權(quán)管理的方法是系統(tǒng)易用性的一個(gè)重要方面。就授權(quán)管理而言,現(xiàn)有 實(shí)時(shí)監(jiān)控系統(tǒng)授權(quán)管理都是以文件存放的絕對(duì)路徑來(lái)區(qū)分不同的可執(zhí)行文件,從而辨認(rèn)不 同的可執(zhí)行文件的授權(quán)。這種授權(quán)管理方法存在一定的缺陷,例如,當(dāng)可執(zhí)行文件的名字或 者存放路徑發(fā)生改變時(shí),即使可執(zhí)行文件的內(nèi)容沒有發(fā)生修改,監(jiān)控系統(tǒng)卻識(shí)辨不出此可 執(zhí)行文件,所以需要對(duì)此可執(zhí)行文件重新進(jìn)行一次繁瑣的授權(quán),這便降低了系統(tǒng)的易用性。
[0002] 時(shí)至今日,利用網(wǎng)絡(luò)技術(shù),以網(wǎng)絡(luò)為載體頻頻暴發(fā)的間諜程序、蠕蟲病毒、郵件病 毒、QQ病毒、MSN瀏病毒、游戲木馬等網(wǎng)絡(luò)新病毒,已經(jīng)顛覆了傳統(tǒng)的病毒概念。與傳統(tǒng)的計(jì) 算機(jī)病毒相比,網(wǎng)絡(luò)病毒具有以下特點(diǎn):傳播速度大大加快、數(shù)量與種類越來(lái)越多、病毒暴 發(fā)范圍廣、攻擊途徑多樣化等。在這種趨勢(shì)下,傳統(tǒng)的基于病毒特征碼的掃描技術(shù)已經(jīng)顯得 捉襟見肘,而基于行為分析的實(shí)時(shí)監(jiān)控系統(tǒng)便顯得越來(lái)越重要。而如今實(shí)時(shí)監(jiān)控系統(tǒng)并不 像基于特征碼掃描的殺毒軟件一樣普及,其中有個(gè)很重要的原因是實(shí)時(shí)監(jiān)控系統(tǒng)的易用性 不高,例如它要求用戶對(duì)所有運(yùn)行于操作系統(tǒng)的程序進(jìn)行繁瑣的授權(quán)且必須對(duì)更改文件 名或者更改了存放路徑的可執(zhí)行文件重新授權(quán),再者,如果存放授權(quán)的文件或者數(shù)據(jù)庫(kù)損 壞,那么用戶不得不對(duì)所有的程序再次授權(quán)。以上的這些弊端最終將導(dǎo)致用戶不能容忍頻 繁反復(fù)的授權(quán)而最終放棄了實(shí)時(shí)監(jiān)控系統(tǒng)的使用。所以,如果能夠?qū)崿F(xiàn)新的授權(quán)管理方案 以提高實(shí)時(shí)監(jiān)控系統(tǒng)的易用性,這將非常有利于實(shí)時(shí)監(jiān)控系統(tǒng)的普及。
[0003] 經(jīng)對(duì)現(xiàn)有技術(shù)文獻(xiàn)的檢索,發(fā)現(xiàn)沒有任何實(shí)時(shí)監(jiān)控系統(tǒng)能夠識(shí)別改名或者更改路 徑但是代碼卻沒有變化的可執(zhí)行文件。
【發(fā)明內(nèi)容】
[0004] 為解決上述現(xiàn)有的缺點(diǎn),本發(fā)明的主要目的在于提供一種實(shí)用的基于PE格式的 實(shí)時(shí)監(jiān)控系統(tǒng)授權(quán)碼管理的新方法,能保證授權(quán)碼的完整性和認(rèn)證性,對(duì)存儲(chǔ)空間的要求 小,同時(shí)提高了實(shí)時(shí)監(jiān)控系統(tǒng)的易用性。
[0005] 為達(dá)成以上所述的目的,本發(fā)明的一種基于PE格式的實(shí)時(shí)監(jiān)控系統(tǒng)授權(quán)碼管理 的新方法采取如下技術(shù)方案: 一種基于PE格式的實(shí)時(shí)監(jiān)控系統(tǒng)授權(quán)碼管理的新方法,包括授權(quán)碼的寫入和授權(quán)碼 的讀取,其特征在于,授權(quán)碼寫入的步驟為,系統(tǒng)獲取要授權(quán)的可執(zhí)行文件的全局路徑,系 統(tǒng)保存一個(gè)初始密鑰,并在內(nèi)存授權(quán)表中設(shè)定進(jìn)程文件的授權(quán)碼,其格式為,"標(biāo)識(shí)文件簽 名授權(quán)碼1…授權(quán)碼η編號(hào)",其中文件簽名為可執(zhí)行文件的校驗(yàn)碼或者哈希值,系統(tǒng) 加密授權(quán)碼,首先判斷可執(zhí)行文件的存放介質(zhì)是否可寫,如果為只讀,則系統(tǒng)直接加密授權(quán) 碼,否則系統(tǒng)判斷要寫入授權(quán)碼的可執(zhí)行文件是否為Windows保護(hù)文件,如果是,則系統(tǒng)直 接加密授權(quán)碼,否則系統(tǒng)判斷進(jìn)程的映象文件是否為PE格式的可執(zhí)行文件,如果不是,則 系統(tǒng)直接加密授權(quán)碼,如果是則系統(tǒng)計(jì)算授權(quán)碼的長(zhǎng)度,如果PE可執(zhí)行文件中現(xiàn)有的可利 用字段能完全存放下授權(quán)碼,則系統(tǒng)使用保存的密鑰加密授權(quán)碼,如果現(xiàn)有的可利用字段 不足以存放下所有的授權(quán)碼,則系統(tǒng)繼續(xù)在PE可執(zhí)行文件中尋找可利用字段,直到所找的 可利用字段能夠存放下完整的授權(quán)碼,如果系統(tǒng)搜索一遍后仍然沒有找到足夠的可利用 字段存放,則將剩余未存放的授權(quán)碼分離出來(lái)以備存入授權(quán)碼數(shù)據(jù)庫(kù)中,如果系統(tǒng)的授權(quán) 碼存放在不連續(xù)的可利用字段中,則系統(tǒng)按照上述授權(quán)碼的格式分割授權(quán)碼,并且分別對(duì) 每一段授權(quán)碼加密,授權(quán)碼格式中的編號(hào)用于指向下一段授權(quán)碼的存放位置,系統(tǒng)將授權(quán) 碼密文寫入PE可執(zhí)行文件中的可利用字段時(shí),若可執(zhí)行文件的存放介質(zhì)為只讀,或要授權(quán) 的可執(zhí)行文件為Windows保護(hù)文件,或還有PE文件中存放不下的授權(quán)碼密文,則系統(tǒng)將授 權(quán)碼密文存入授權(quán)碼數(shù)據(jù)庫(kù)文件中,否則,系統(tǒng)向文件驅(qū)動(dòng)發(fā)送寫請(qǐng)求包,將授權(quán)碼密文寫 入PE可執(zhí)行文件中。
[0006] 所述授權(quán)碼讀取的步驟為: 1) 系統(tǒng)獲取要讀取授權(quán)碼的可執(zhí)行文件的全局路徑; 2) 系統(tǒng)從PE文件中的可利用字段中讀取授權(quán)碼密文時(shí),先判斷文件的存放介質(zhì)是否 可寫,如果為只讀,則系統(tǒng)從授權(quán)碼數(shù)據(jù)庫(kù)文件中查找可執(zhí)行文件的授權(quán)碼,如果沒有找到 則給可執(zhí)行文件提供默認(rèn)授權(quán)碼,并寫入內(nèi)存的授權(quán)表,系統(tǒng)結(jié)束授權(quán)碼的讀過(guò)程;如果文 件的存放介質(zhì)屬性為可寫,則系統(tǒng)判斷可執(zhí)行文件是否為Windows保護(hù)文件,如果是,則系 統(tǒng)從授權(quán)碼數(shù)據(jù)庫(kù)文件中查找可執(zhí)行文件的授權(quán)碼,如果沒有找到則向可執(zhí)行文件提供 默認(rèn)授權(quán)碼,并寫入內(nèi)存的授權(quán)表,系統(tǒng)結(jié)束授權(quán)碼的讀過(guò)程,否則系統(tǒng)判斷可執(zhí)行文件是 否為PE格式的可執(zhí)行文件,如果不是,系統(tǒng)從授權(quán)碼數(shù)據(jù)庫(kù)文件中查找可執(zhí)行文件的授權(quán) 碼,若沒有找到則給可執(zhí)行文件提供默認(rèn)授權(quán)碼,并寫入內(nèi)存的授權(quán)表,系統(tǒng)結(jié)束授權(quán)碼 的讀過(guò)程;如果是則系統(tǒng)向文件驅(qū)動(dòng)發(fā)送讀請(qǐng)求包,從PE可執(zhí)行文件中讀入授權(quán)碼密文; 3) 系統(tǒng)用事先保存的密鑰對(duì)讀取的授權(quán)碼密文解密;檢查解密后的授權(quán)碼標(biāo)識(shí)是否 改變;如果標(biāo)識(shí)改變,則以對(duì)話框形式提示用戶,由用戶決定重新授權(quán)或刪除可執(zhí)行文件, 授權(quán)碼的讀操作結(jié)束;如果標(biāo)識(shí)未改變,則系統(tǒng)計(jì)算PE可執(zhí)行文件的校驗(yàn)碼或者哈希值, 并將得出的值與授權(quán)碼中的校驗(yàn)碼或者哈希值比較,如果不同,則以對(duì)話框形式提示用戶, 由用戶決定重新授權(quán)或刪除可執(zhí)行文件,授權(quán)碼的讀操作結(jié)束;如果文件校驗(yàn)碼或哈希值 相同,則系統(tǒng)檢查授權(quán)碼是否完全讀出,如果還有剩余的授權(quán)碼,則根據(jù)授權(quán)碼末尾的編號(hào) 讀取后續(xù)的授權(quán)碼密文,重復(fù)進(jìn)行解密步驟,直到授權(quán)碼密文完全讀出為止; 4) 系統(tǒng)將授權(quán)碼寫入內(nèi)存的授權(quán)表中,以便再次查詢。
[0007] 采用如上技術(shù)方案的本發(fā)明,具有如下有益效果: 本發(fā)明能保證授權(quán)碼的完整性和認(rèn)證性,對(duì)存儲(chǔ)空間的要求小,同時(shí)提高了實(shí)時(shí)監(jiān)控 系統(tǒng)的易用性。
【附圖說(shuō)明】
[0008] 圖1是本發(fā)明的授權(quán)碼寫入流程圖。
[0009] 圖2是本發(fā)明的授權(quán)碼讀取流程圖。
【具體實(shí)施方式】
[0010] 為了進(jìn)一步說(shuō)明本發(fā)明,下面結(jié)合附圖及實(shí)施例進(jìn)一步進(jìn)行說(shuō)明: 本發(fā)明的一種基于PE格式的實(shí)時(shí)監(jiān)控系統(tǒng)授權(quán)碼管理的新方法,授權(quán)碼寫入過(guò)程如 圖1所示,系統(tǒng)先保存一個(gè)初始密鑰,并在內(nèi)存授權(quán)表中設(shè)定進(jìn)程文件的授權(quán)碼,然后加密 授權(quán)碼。在系統(tǒng)獲取要授權(quán)的可執(zhí)行文件的全局路徑后,系統(tǒng)將授權(quán)碼密文寫入PE可執(zhí)行 文件中的可利用字段。
[0011] 以將授權(quán)碼寫入可執(zhí)行文件,"C: \Program Files\FlashFXP\FlashFXP. exe" 為 例,具體步驟如下: 1) 系統(tǒng)獲取FlashFXP. exe的全局路徑 "C:\Program Files\FlashFXP\FlashFXP. exe" 2) 系統(tǒng)保存一個(gè)初始密鑰,并在內(nèi)存授權(quán)表中設(shè)定進(jìn)程文件的授權(quán)碼。授權(quán)碼的格式 為:
系統(tǒng)計(jì)算FlashFXP. exe的CRC校驗(yàn)碼(循環(huán)冗余校驗(yàn)碼〕,為4個(gè)字節(jié),以及標(biāo)識(shí)符1 字節(jié),對(duì)FlashFXP程序文件的具體授權(quán)3個(gè)字節(jié),因此授權(quán)碼總長(zhǎng)度為7字節(jié); 3) 系統(tǒng)加密授權(quán)碼,首先判斷可執(zhí)行文件的存放介質(zhì)是否可寫,如果為只讀,則系統(tǒng)直 接加密授權(quán)碼,對(duì)于FlashFXP. exe文件來(lái)說(shuō),存放介質(zhì)C盤為可寫,則 系統(tǒng)判斷要寫入授權(quán)碼的可執(zhí)行文件是否為Windows保護(hù)文件,如果是,則系統(tǒng)直接 加密授權(quán)碼;對(duì)于FlashFXP. exe文件來(lái)說(shuō),不是Windows保護(hù)文件,貝U 系統(tǒng)判斷進(jìn)程的映象文件是否為PE格式的可執(zhí)行文件,如果不是,則系統(tǒng)直接加密授 權(quán)碼;對(duì)于FlashFXP. exe文件來(lái)說(shuō),是PE格式的可執(zhí)行文件,則系統(tǒng)計(jì)算授權(quán)碼的長(zhǎng)度,如 果PE可執(zhí)行文件中現(xiàn)有的可利用字段能完全存放下授權(quán)碼,則系統(tǒng)使用保存的密鑰加密 授權(quán)碼;如果現(xiàn)有的可利用字段不足以存放下所有的授權(quán)碼,則系統(tǒng)繼續(xù)在PE可執(zhí)行文件 中尋找可利用字段,直到所找的可利用字段能夠存放下完整的授權(quán)碼;如果系統(tǒng)搜索一遍 后仍然沒有找到足夠的可利用字段存放,則將剩余未存放的授權(quán)碼分離出來(lái)以備存入授權(quán) 碼數(shù)據(jù)庫(kù)中;如果系統(tǒng)的授權(quán)碼存放在不連續(xù)的可利用字段中,則系統(tǒng)按照上述授權(quán)碼的 格式分割授權(quán)碼,并且分別對(duì)每一段授權(quán)碼加密;授權(quán)碼格式中的編號(hào)用于指向下一段授 權(quán)碼的存放位置。
[0012] 對(duì)于FlashFXP. exe文件來(lái)說(shuō),系統(tǒng)判斷FlashFXP. exe中節(jié)表首項(xiàng)的 PointToRawData、PointToRelocations、NumberOflocations 以及 NumberOfLinenumber 四 個(gè)字段共12個(gè)字節(jié)能完全存放下授權(quán)