本發(fā)明涉及線程檢測領(lǐng)域,尤其涉及一種惡意線程檢測方法及系統(tǒng)。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,計算機已經(jīng)成為人們生活中必不可少的日常用品。無論是工作、學(xué)習(xí)還是娛樂,計算機都給人們提供了很多的便利。但是,會有不法分子通過線程注入技術(shù)破壞我們的計算機系統(tǒng),竊取計算機中的重要數(shù)據(jù),破解受合法保護的軟件產(chǎn)品和游戲作弊等,我們將上述對計算機系統(tǒng)造成損害或?qū)τ嬎銠C使用者的權(quán)益造成損害的外部線程稱為惡意線程。因此,需要及時檢測出惡意線程并進行攔截。
現(xiàn)有技術(shù)中,已存在使用HOOK技術(shù)掛鉤線程初始化函數(shù),當系統(tǒng)調(diào)用線程初始化函數(shù)時,轉(zhuǎn)向偽線程初始化函數(shù),所述偽線程初始化函數(shù)可先對待初始化線程進行檢測,若檢測到待初始化線程為惡意線程,則不創(chuàng)建該線程并返回警報信息,否則調(diào)用初始化函數(shù)創(chuàng)建該線程。但是,可通過PCHunter工具檢測到上述方法中的掛鉤位置,使得不法分子可定位到掛鉤位置從而做出相應(yīng)的應(yīng)對策略。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:提供一種惡意線程檢測方法及系統(tǒng),實現(xiàn)可檢測惡意線程的同時隱藏檢測的位置。
為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
本發(fā)明提供一種惡意線程檢測方法,包括:
獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
獲取所述第一函數(shù)的入口地址,得到第二地址;
設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址。
本發(fā)明還提供一種惡意線程檢測系統(tǒng),包括:
第一獲取模塊,用于獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)模塊,用于預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
第二獲取模塊,用于獲取所述第一函數(shù)的入口地址,得到第二地址;
第一設(shè)置模塊,用于設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
第二設(shè)置模塊,用于設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址。
本發(fā)明的有益效果在于:通過調(diào)換中轉(zhuǎn)指針和第一函數(shù)的函數(shù)指針所指向的入口地址,實現(xiàn)在系統(tǒng)初始化線程之前,檢測待測線程是否為惡意線程,若所述待測線程為惡意線程,則不初始化該線程,否則初始化該線程,有利于保護系統(tǒng)安全和計算機使用者的權(quán)益;其中,所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站,所述第一函數(shù)用于檢測惡意線程和初始化線程;由于中轉(zhuǎn)指針是所有函數(shù)都要經(jīng)過的地址,以中轉(zhuǎn)指針作為待測點可實現(xiàn)檢測工具無法定位具體的待測點,從而避免了不法分子針對待測點做出相對應(yīng)的操作破壞計算機的系統(tǒng)安全及計算機使用者的權(quán)益。
附圖說明
圖1為本發(fā)明一種惡意線程檢測方法的流程框架;
圖2為本發(fā)明一種惡意線程檢測方法的結(jié)構(gòu)框圖;
圖3為PCHunter檢測工具檢測掛鉤位置的示意圖;
圖4為PCHunter檢測工具檢測掛鉤位置的另一示意圖;
標號說明:
1、第一獲取模塊;2、預(yù)設(shè)模塊;3、第二獲取模塊;4、第一設(shè)置模塊;5、第二設(shè)置模塊。
具體實施方式
為詳細說明本發(fā)明的技術(shù)內(nèi)容、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附圖予以說明。
本發(fā)明最關(guān)鍵的構(gòu)思在于:通過調(diào)換中轉(zhuǎn)指針和第一函數(shù)的函數(shù)指針所指向的入口地址,實現(xiàn)在系統(tǒng)初始化線程之前,檢測待測線程是否為惡意線程;其中,所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站,所述第一函數(shù)用于檢測惡意線程和初始化線程。
如圖1所示,本發(fā)明提供一種惡意線程檢測方法,包括:
獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
獲取所述第一函數(shù)的入口地址,得到第二地址;
設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址。
中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站,即內(nèi)核級線程的創(chuàng)建和調(diào)用均必須先將線程地址暫存在中轉(zhuǎn)指針中,然后再進行相應(yīng)的線程初始化或調(diào)用操作;通過交換中轉(zhuǎn)指針的地址和第一函數(shù)的函數(shù)指針所指向的入口地址,使得當系統(tǒng)調(diào)用中轉(zhuǎn)指針時,中轉(zhuǎn)指針的地址是第一函數(shù)的入口地址,因此,執(zhí)行的是第一函數(shù)的函數(shù)體。第一函數(shù)先檢測待初始化的線程是否為惡意線程,若不是,則繼續(xù)初始化所述待初始化的線程。
進一步地,所述檢測惡意線程具體為:
獲取所述中轉(zhuǎn)指針中存儲的線程地址;
獲取安全的地址空間;
判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,返回錯誤信息。
由上述描述可知,通過將待初始化的線程地址與安全的地址空間進行比較,可識別出待初始化的線程是否為惡意線程。
其中,所述安全的地址空間為系統(tǒng)中已知安全程序的地址空間,若待初始化的線程地址不屬于安全的地址空間范圍內(nèi),則待初始化的線程為外來線程,可能會對系統(tǒng)進行惡意攻擊,因此為了保障計算機系統(tǒng)安全需要攔截惡意線程。
進一步地,所述檢測惡意線程具體為:
獲取所述中轉(zhuǎn)指針中存儲的線程地址;
獲取系統(tǒng)函數(shù)的索引;
根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識別出線程所要執(zhí)行的操作,得到當前操作名;
獲取危險操作表;所述危險操作表中存儲對創(chuàng)建所述線程的進程會造成損害的操作的名稱;
在所述危險操作表中搜索是否存在所述當前操作名,若是,則返回錯誤信息,否則,初始化線程。
由上述描述可知,可通過分析待初始化線程的地址,識別出待初始化線程所要執(zhí)行的操作,并攔截會對創(chuàng)建所述待初始化線程的進程造成損害的待初始化線程。
每個函數(shù)都有相應(yīng)的索引號,通過調(diào)用索引號獲取相應(yīng)函數(shù)的入口地址實現(xiàn)調(diào)用函數(shù)。將函數(shù)的入口地址與特征庫中記錄的函數(shù)地址進行比較,識別出函數(shù)所能執(zhí)行的操作。所述特征庫中存儲了系統(tǒng)中各個函數(shù)的入口地址及其相對應(yīng)的操作。
進一步地,所述返回錯誤信息之前,還包括:
存儲所述線程地址至黑名單;所述黑名單用于保存已識別的惡意線程的地址。
進一步地,所述檢測惡意線程具體為:
獲取所述中轉(zhuǎn)指針中存儲的線程地址;
獲取黑名單;所述黑名單用于保存已識別的惡意線程的地址;
在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯誤信息,否則,初始化線程。
由上述描述可知,通過在保存有已識別的惡意線程地址的黑名單中搜索是否存在當前待初始化的惡意線程,可快速識別出惡意線程。
同一惡意線程攻擊一般會出現(xiàn)多次,當檢測到惡意線程時將其記錄在黑名單中,有利于相同的惡意線程再次攻擊計算機系統(tǒng)時,可以快速識別出惡意線程并及時攔截。
如圖2所示,本發(fā)明還提供一種惡意線程檢測系統(tǒng),包括:
第一獲取模塊1,用于獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)模塊2,用于預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
第二獲取模塊3,用于獲取所述第一函數(shù)的入口地址,得到第二地址;
第一設(shè)置模塊4,用于設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
第二設(shè)置模塊5,用于設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址。
進一步地,還包括:
第三獲取模塊,用于獲取所述中轉(zhuǎn)指針中存儲的線程地址;
第四獲取模塊,用于獲取安全的地址空間;
第一判斷模塊,用于判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,返回錯誤信息。
進一步地,還包括:
第五獲取模塊,用于獲取所述中轉(zhuǎn)指針中存儲的線程地址;
第六獲取模塊,用于獲取系統(tǒng)函數(shù)的索引;
識別模塊,用于根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識別出線程所要執(zhí)行的操作,得到當前操作名;
第七獲取模塊,用于獲取危險操作表;所述危險操作表中存儲對創(chuàng)建所述線程的進程會造成損害的操作的名稱;
第一搜索模塊,用于在所述危險操作表中搜索是否存在所述當前操作名,若是,則返回錯誤信息,否則,初始化線程。
進一步地,還包括:
存儲模塊,用于存儲所述線程地址至黑名單;所述黑名單用于保存已識別的惡意線程的地址。
進一步地,還包括:
第八獲取模塊,用于獲取所述中轉(zhuǎn)指針中存儲的線程地址;
第九獲取模塊,用于獲取黑名單;所述黑名單用于保存已識別的惡意線程的地址;
第二搜索模塊,用于在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯誤信息,否則,初始化線程。
本發(fā)明的實施例一為:
獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
獲取所述第一函數(shù)的入口地址,得到第二地址;
設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;
當系統(tǒng)初始化線程時,需獲取中轉(zhuǎn)指針中存儲的線程地址,由于此時中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,因此當系統(tǒng)調(diào)用中轉(zhuǎn)指針時實際上執(zhí)行第一函數(shù)的函數(shù)體;
獲取所述中轉(zhuǎn)指針中存儲的線程地址;由于此時中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,第一函數(shù)的函數(shù)指針所指向的入口地址為中轉(zhuǎn)指針的地址,因此應(yīng)通過調(diào)用第一函數(shù)的函數(shù)指針所指向的地址獲取中轉(zhuǎn)指針中存儲的線程地址;
獲取安全的地址空間;
判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,返回錯誤信息。
由上述描述可知,通過本實施例可實現(xiàn)攔截不屬于安全地址空間的線程,且無法通過檢測工具定位檢測點。
優(yōu)選地,可通過微軟Hook庫中封裝好的函數(shù)DetourAttach()實現(xiàn)當系統(tǒng)調(diào)用中轉(zhuǎn)指針時轉(zhuǎn)向調(diào)用第一函數(shù)。
現(xiàn)有技術(shù)中,已存在使用HOOK技術(shù)掛鉤線程初始化函數(shù),當系統(tǒng)調(diào)用線程初始化函數(shù)時,轉(zhuǎn)向偽線程初始化函數(shù),所述偽線程初始化函數(shù)可先對待初始化線程進行檢測,若檢測到待初始化線程為惡意線程,則不創(chuàng)建該線程并返回警報信息,否則調(diào)用初始化函數(shù)創(chuàng)建該線程。但是,如圖3所示可通過PCHunter工具檢測到上述方法中的掛鉤位置,使得不法分子可定位到掛鉤位置從而做出相應(yīng)的應(yīng)對策略。如圖4所示,當使用上述實施例檢測惡意線程時,PCHunter工具無法檢測到掛鉤位置,只能檢測到系統(tǒng)模塊。
本發(fā)明的實施例二為:
獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
獲取所述第一函數(shù)的入口地址,得到第二地址;
設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;
當系統(tǒng)初始化線程時,需獲取中轉(zhuǎn)指針中存儲的線程地址,由于此時中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,因此當系統(tǒng)調(diào)用中轉(zhuǎn)指針時實際上執(zhí)行第一函數(shù)的函數(shù)體;
獲取所述中轉(zhuǎn)指針中存儲的線程地址;由于此時中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,第一函數(shù)的函數(shù)指針所指向的入口地址為中轉(zhuǎn)指針的地址,因此應(yīng)通過調(diào)用第一函數(shù)的函數(shù)指針所指向的地址獲取中轉(zhuǎn)指針中存儲的線程地址;
獲取系統(tǒng)函數(shù)的索引;
根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識別出線程所要執(zhí)行的操作,得到當前操作名;
獲取危險操作表;所述危險操作表中存儲對創(chuàng)建所述線程的進程會造成損害的操作的名稱;
在所述危險操作表中搜索是否存在所述當前操作名,若是,則返回錯誤信息,否則,初始化線程。
由上述描述可知,本實施例可實現(xiàn)攔截可執(zhí)行對計算機系統(tǒng)造成損害的操作的線程,且無法通過檢測工具定位檢測點。
本發(fā)明的實施例三為:
獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
獲取所述第一函數(shù)的入口地址,得到第二地址;
設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;
當系統(tǒng)初始化線程時,需獲取中轉(zhuǎn)指針中存儲的線程地址,由于此時中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,因此當系統(tǒng)調(diào)用中轉(zhuǎn)指針時實際上執(zhí)行第一函數(shù)的函數(shù)體;
獲取所述中轉(zhuǎn)指針中存儲的線程地址;由于此時中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,第一函數(shù)的函數(shù)指針所指向的入口地址為中轉(zhuǎn)指針的地址,因此應(yīng)通過調(diào)用第一函數(shù)的函數(shù)指針所指向的地址獲取中轉(zhuǎn)指針中存儲的線程地址;
獲取黑名單;所述黑名單用于保存已識別的惡意線程的地址;
在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯誤信息,否則:
獲取安全的地址空間;
判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,存儲所述線程地址至黑名單,所述黑名單用于保存已識別的惡意線程的地址,返回錯誤信息。
由上述描述可知,本實施例先在黑名單中搜索是否存在待初始化線程,若存在,則直接返回錯誤信息判定待初始化線程為惡意線程,否則獲取安全的地址空間,判斷待初始化線程地址是否在所述安全的地址空間的范圍內(nèi),若是,則初始化線程,否則判定待初始化線程為惡意線程并存儲至黑名單中。可實現(xiàn)快速檢測出已攻擊過本計算機的惡意線程,攔截不屬于安全地址空間的線程,且無法通過檢測工具定位檢測點。
本發(fā)明的實施例四為:
獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
獲取所述第一函數(shù)的入口地址,得到第二地址;
設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;
當系統(tǒng)初始化線程時,需獲取中轉(zhuǎn)指針中存儲的線程地址,由于此時中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,因此當系統(tǒng)調(diào)用中轉(zhuǎn)指針時實際上執(zhí)行第一函數(shù)的函數(shù)體;
獲取所述中轉(zhuǎn)指針中存儲的線程地址;由于此時中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,第一函數(shù)的函數(shù)指針所指向的入口地址為中轉(zhuǎn)指針的地址,因此應(yīng)通過調(diào)用第一函數(shù)的函數(shù)指針所指向的地址獲取中轉(zhuǎn)指針中存儲的線程地址;
獲取黑名單;所述黑名單用于保存已識別的惡意線程的地址;
在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯誤信息,否則:
獲取系統(tǒng)函數(shù)的索引;
根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識別出線程所要執(zhí)行的操作,得到當前操作名;
獲取危險操作表;所述危險操作表中存儲對創(chuàng)建所述線程的進程會造成損害的操作的名稱;
在所述危險操作表中搜索是否存在所述當前操作名,若是,則存儲所述線程地址至黑名單,所述黑名單用于保存已識別的惡意線程的地址,返回錯誤信息,否則,初始化線程。
由上述描述可知,本實施例先在黑名單中搜索是否存在待初始化線程,若存在,則直接返回錯誤信息判定待初始化線程為惡意線程,否則獲取系統(tǒng)函數(shù)的索引,識別出待初始化線程可執(zhí)行的操作,若所述操作會對計算機系統(tǒng)造成損害,則判定待初始化線程為惡意線程并存儲至黑名單中,否則初始化待初始化線程。可實現(xiàn),快速檢測出已攻擊過本計算機的惡意線程,攔截可執(zhí)行對計算機系統(tǒng)造成損害的操作的線程,且無法通過檢測工具定位檢測點。
本發(fā)明的實施例五為:
第一獲取模塊獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)模塊預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
第二獲取模塊獲取所述第一函數(shù)的入口地址,得到第二地址;
第一設(shè)置模塊設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
第二設(shè)置模塊設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;
第三獲取模塊獲取所述中轉(zhuǎn)指針中存儲的線程地址;
第四獲取模塊獲取安全的地址空間;
第一判斷模塊判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,存儲模塊存儲所述線程地址至黑名單;所述黑名單用于保存已識別的惡意線程的地址;返回錯誤信息。
本發(fā)明的實施例六為:
第一獲取模塊獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)模塊預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
第二獲取模塊獲取所述第一函數(shù)的入口地址,得到第二地址;
第一設(shè)置模塊設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
第二設(shè)置模塊設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;
第五獲取模塊獲取所述中轉(zhuǎn)指針中存儲的線程地址;
第六獲取模塊獲取系統(tǒng)函數(shù)的索引;
識別模塊根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識別出線程所要執(zhí)行的操作,得到當前操作名;
第七獲取模塊獲取危險操作表;所述危險操作表中存儲對創(chuàng)建所述線程的進程會造成損害的操作的名稱;
第一搜索模塊在所述危險操作表中搜索是否存在所述當前操作名,若是,則存儲模塊存儲所述線程地址至黑名單;所述黑名單用于保存已識別的惡意線程的地址;返回錯誤信息,否則,初始化線程。
本發(fā)明的實施例七為:
第一獲取模塊獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站;
預(yù)設(shè)模塊預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測惡意線程和初始化線程;
第二獲取模塊獲取所述第一函數(shù)的入口地址,得到第二地址;
第一設(shè)置模塊設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;
第二設(shè)置模塊設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;
第八獲取模塊獲取所述中轉(zhuǎn)指針中存儲的線程地址;
第九獲取模塊獲取黑名單;所述黑名單用于保存已識別的惡意線程的地址;
第二搜索模塊在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯誤信息,否則,初始化線程。
綜上所述,本發(fā)明提供的一種惡意線程檢測方法及系統(tǒng),通過調(diào)換中轉(zhuǎn)指針和第一函數(shù)的函數(shù)指針所指向的入口地址,實現(xiàn)在系統(tǒng)初始化線程之前,檢測待測線程是否為惡意線程,若所述待測線程為惡意線程,則不初始化該線程,否則初始化該線程,有利于保護系統(tǒng)安全和計算機使用者的權(quán)益;其中,所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時的中轉(zhuǎn)站,所述第一函數(shù)用于檢測惡意線程和初始化線程;以中轉(zhuǎn)指針作為待測點可實現(xiàn)檢測工具無法定位具體的待測點,從而避免了不法分子針對待測點做出相對應(yīng)的操作破壞計算機的系統(tǒng)安全及計算機使用者的權(quán)益;通過將待初始化的線程地址與安全的地址空間進行比較,可識別出待初始化的線程是否為惡意線程;可通過分析待初始化線程的地址,識別出待初始化線程所要執(zhí)行的操作,并攔截會對創(chuàng)建所述待初始化線程的進程造成損害的待初始化線程;通過在保存有已識別的惡意線程地址的黑名單中搜索是否存在當前待初始化的惡意線程,可快速識別出惡意線程。
以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。