两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種惡意線程檢測(cè)方法及系統(tǒng)與流程

文檔序號(hào):11134537閱讀:448來(lái)源:國(guó)知局
一種惡意線程檢測(cè)方法及系統(tǒng)與制造工藝

本發(fā)明涉及線程檢測(cè)領(lǐng)域,尤其涉及一種惡意線程檢測(cè)方法及系統(tǒng)。



背景技術(shù):

隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)已經(jīng)成為人們生活中必不可少的日常用品。無(wú)論是工作、學(xué)習(xí)還是娛樂,計(jì)算機(jī)都給人們提供了很多的便利。但是,會(huì)有不法分子通過線程注入技術(shù)破壞我們的計(jì)算機(jī)系統(tǒng),竊取計(jì)算機(jī)中的重要數(shù)據(jù),破解受合法保護(hù)的軟件產(chǎn)品和游戲作弊等,我們將上述對(duì)計(jì)算機(jī)系統(tǒng)造成損害或?qū)τ?jì)算機(jī)使用者的權(quán)益造成損害的外部線程稱為惡意線程。因此,需要及時(shí)檢測(cè)出惡意線程并進(jìn)行攔截。

現(xiàn)有技術(shù)中,已存在使用HOOK技術(shù)掛鉤線程初始化函數(shù),當(dāng)系統(tǒng)調(diào)用線程初始化函數(shù)時(shí),轉(zhuǎn)向偽線程初始化函數(shù),所述偽線程初始化函數(shù)可先對(duì)待初始化線程進(jìn)行檢測(cè),若檢測(cè)到待初始化線程為惡意線程,則不創(chuàng)建該線程并返回警報(bào)信息,否則調(diào)用初始化函數(shù)創(chuàng)建該線程。但是,可通過PCHunter工具檢測(cè)到上述方法中的掛鉤位置,使得不法分子可定位到掛鉤位置從而做出相應(yīng)的應(yīng)對(duì)策略。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是:提供一種惡意線程檢測(cè)方法及系統(tǒng),實(shí)現(xiàn)可檢測(cè)惡意線程的同時(shí)隱藏檢測(cè)的位置。

為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:

本發(fā)明提供一種惡意線程檢測(cè)方法,包括:

獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

獲取所述第一函數(shù)的入口地址,得到第二地址;

設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址。

本發(fā)明還提供一種惡意線程檢測(cè)系統(tǒng),包括:

第一獲取模塊,用于獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)模塊,用于預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

第二獲取模塊,用于獲取所述第一函數(shù)的入口地址,得到第二地址;

第一設(shè)置模塊,用于設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

第二設(shè)置模塊,用于設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址。

本發(fā)明的有益效果在于:通過調(diào)換中轉(zhuǎn)指針和第一函數(shù)的函數(shù)指針?biāo)赶虻娜肟诘刂罚瑢?shí)現(xiàn)在系統(tǒng)初始化線程之前,檢測(cè)待測(cè)線程是否為惡意線程,若所述待測(cè)線程為惡意線程,則不初始化該線程,否則初始化該線程,有利于保護(hù)系統(tǒng)安全和計(jì)算機(jī)使用者的權(quán)益;其中,所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站,所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;由于中轉(zhuǎn)指針是所有函數(shù)都要經(jīng)過的地址,以中轉(zhuǎn)指針作為待測(cè)點(diǎn)可實(shí)現(xiàn)檢測(cè)工具無(wú)法定位具體的待測(cè)點(diǎn),從而避免了不法分子針對(duì)待測(cè)點(diǎn)做出相對(duì)應(yīng)的操作破壞計(jì)算機(jī)的系統(tǒng)安全及計(jì)算機(jī)使用者的權(quán)益。

附圖說明

圖1為本發(fā)明一種惡意線程檢測(cè)方法的流程框架;

圖2為本發(fā)明一種惡意線程檢測(cè)方法的結(jié)構(gòu)框圖;

圖3為PCHunter檢測(cè)工具檢測(cè)掛鉤位置的示意圖;

圖4為PCHunter檢測(cè)工具檢測(cè)掛鉤位置的另一示意圖;

標(biāo)號(hào)說明:

1、第一獲取模塊;2、預(yù)設(shè)模塊;3、第二獲取模塊;4、第一設(shè)置模塊;5、第二設(shè)置模塊。

具體實(shí)施方式

為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以說明。

本發(fā)明最關(guān)鍵的構(gòu)思在于:通過調(diào)換中轉(zhuǎn)指針和第一函數(shù)的函數(shù)指針?biāo)赶虻娜肟诘刂?,?shí)現(xiàn)在系統(tǒng)初始化線程之前,檢測(cè)待測(cè)線程是否為惡意線程;其中,所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站,所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程。

如圖1所示,本發(fā)明提供一種惡意線程檢測(cè)方法,包括:

獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

獲取所述第一函數(shù)的入口地址,得到第二地址;

設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址。

中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站,即內(nèi)核級(jí)線程的創(chuàng)建和調(diào)用均必須先將線程地址暫存在中轉(zhuǎn)指針中,然后再進(jìn)行相應(yīng)的線程初始化或調(diào)用操作;通過交換中轉(zhuǎn)指針的地址和第一函數(shù)的函數(shù)指針?biāo)赶虻娜肟诘刂?,使得?dāng)系統(tǒng)調(diào)用中轉(zhuǎn)指針時(shí),中轉(zhuǎn)指針的地址是第一函數(shù)的入口地址,因此,執(zhí)行的是第一函數(shù)的函數(shù)體。第一函數(shù)先檢測(cè)待初始化的線程是否為惡意線程,若不是,則繼續(xù)初始化所述待初始化的線程。

進(jìn)一步地,所述檢測(cè)惡意線程具體為:

獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

獲取安全的地址空間;

判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,返回錯(cuò)誤信息。

由上述描述可知,通過將待初始化的線程地址與安全的地址空間進(jìn)行比較,可識(shí)別出待初始化的線程是否為惡意線程。

其中,所述安全的地址空間為系統(tǒng)中已知安全程序的地址空間,若待初始化的線程地址不屬于安全的地址空間范圍內(nèi),則待初始化的線程為外來(lái)線程,可能會(huì)對(duì)系統(tǒng)進(jìn)行惡意攻擊,因此為了保障計(jì)算機(jī)系統(tǒng)安全需要攔截惡意線程。

進(jìn)一步地,所述檢測(cè)惡意線程具體為:

獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

獲取系統(tǒng)函數(shù)的索引;

根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識(shí)別出線程所要執(zhí)行的操作,得到當(dāng)前操作名;

獲取危險(xiǎn)操作表;所述危險(xiǎn)操作表中存儲(chǔ)對(duì)創(chuàng)建所述線程的進(jìn)程會(huì)造成損害的操作的名稱;

在所述危險(xiǎn)操作表中搜索是否存在所述當(dāng)前操作名,若是,則返回錯(cuò)誤信息,否則,初始化線程。

由上述描述可知,可通過分析待初始化線程的地址,識(shí)別出待初始化線程所要執(zhí)行的操作,并攔截會(huì)對(duì)創(chuàng)建所述待初始化線程的進(jìn)程造成損害的待初始化線程。

每個(gè)函數(shù)都有相應(yīng)的索引號(hào),通過調(diào)用索引號(hào)獲取相應(yīng)函數(shù)的入口地址實(shí)現(xiàn)調(diào)用函數(shù)。將函數(shù)的入口地址與特征庫(kù)中記錄的函數(shù)地址進(jìn)行比較,識(shí)別出函數(shù)所能執(zhí)行的操作。所述特征庫(kù)中存儲(chǔ)了系統(tǒng)中各個(gè)函數(shù)的入口地址及其相對(duì)應(yīng)的操作。

進(jìn)一步地,所述返回錯(cuò)誤信息之前,還包括:

存儲(chǔ)所述線程地址至黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址。

進(jìn)一步地,所述檢測(cè)惡意線程具體為:

獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

獲取黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址;

在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯(cuò)誤信息,否則,初始化線程。

由上述描述可知,通過在保存有已識(shí)別的惡意線程地址的黑名單中搜索是否存在當(dāng)前待初始化的惡意線程,可快速識(shí)別出惡意線程。

同一惡意線程攻擊一般會(huì)出現(xiàn)多次,當(dāng)檢測(cè)到惡意線程時(shí)將其記錄在黑名單中,有利于相同的惡意線程再次攻擊計(jì)算機(jī)系統(tǒng)時(shí),可以快速識(shí)別出惡意線程并及時(shí)攔截。

如圖2所示,本發(fā)明還提供一種惡意線程檢測(cè)系統(tǒng),包括:

第一獲取模塊1,用于獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)模塊2,用于預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

第二獲取模塊3,用于獲取所述第一函數(shù)的入口地址,得到第二地址;

第一設(shè)置模塊4,用于設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

第二設(shè)置模塊5,用于設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址。

進(jìn)一步地,還包括:

第三獲取模塊,用于獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

第四獲取模塊,用于獲取安全的地址空間;

第一判斷模塊,用于判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,返回錯(cuò)誤信息。

進(jìn)一步地,還包括:

第五獲取模塊,用于獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

第六獲取模塊,用于獲取系統(tǒng)函數(shù)的索引;

識(shí)別模塊,用于根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識(shí)別出線程所要執(zhí)行的操作,得到當(dāng)前操作名;

第七獲取模塊,用于獲取危險(xiǎn)操作表;所述危險(xiǎn)操作表中存儲(chǔ)對(duì)創(chuàng)建所述線程的進(jìn)程會(huì)造成損害的操作的名稱;

第一搜索模塊,用于在所述危險(xiǎn)操作表中搜索是否存在所述當(dāng)前操作名,若是,則返回錯(cuò)誤信息,否則,初始化線程。

進(jìn)一步地,還包括:

存儲(chǔ)模塊,用于存儲(chǔ)所述線程地址至黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址。

進(jìn)一步地,還包括:

第八獲取模塊,用于獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

第九獲取模塊,用于獲取黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址;

第二搜索模塊,用于在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯(cuò)誤信息,否則,初始化線程。

本發(fā)明的實(shí)施例一為:

獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

獲取所述第一函數(shù)的入口地址,得到第二地址;

設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;

當(dāng)系統(tǒng)初始化線程時(shí),需獲取中轉(zhuǎn)指針中存儲(chǔ)的線程地址,由于此時(shí)中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,因此當(dāng)系統(tǒng)調(diào)用中轉(zhuǎn)指針時(shí)實(shí)際上執(zhí)行第一函數(shù)的函數(shù)體;

獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;由于此時(shí)中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,第一函數(shù)的函數(shù)指針?biāo)赶虻娜肟诘刂窞橹修D(zhuǎn)指針的地址,因此應(yīng)通過調(diào)用第一函數(shù)的函數(shù)指針?biāo)赶虻牡刂帆@取中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

獲取安全的地址空間;

判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,返回錯(cuò)誤信息。

由上述描述可知,通過本實(shí)施例可實(shí)現(xiàn)攔截不屬于安全地址空間的線程,且無(wú)法通過檢測(cè)工具定位檢測(cè)點(diǎn)。

優(yōu)選地,可通過微軟Hook庫(kù)中封裝好的函數(shù)DetourAttach()實(shí)現(xiàn)當(dāng)系統(tǒng)調(diào)用中轉(zhuǎn)指針時(shí)轉(zhuǎn)向調(diào)用第一函數(shù)。

現(xiàn)有技術(shù)中,已存在使用HOOK技術(shù)掛鉤線程初始化函數(shù),當(dāng)系統(tǒng)調(diào)用線程初始化函數(shù)時(shí),轉(zhuǎn)向偽線程初始化函數(shù),所述偽線程初始化函數(shù)可先對(duì)待初始化線程進(jìn)行檢測(cè),若檢測(cè)到待初始化線程為惡意線程,則不創(chuàng)建該線程并返回警報(bào)信息,否則調(diào)用初始化函數(shù)創(chuàng)建該線程。但是,如圖3所示可通過PCHunter工具檢測(cè)到上述方法中的掛鉤位置,使得不法分子可定位到掛鉤位置從而做出相應(yīng)的應(yīng)對(duì)策略。如圖4所示,當(dāng)使用上述實(shí)施例檢測(cè)惡意線程時(shí),PCHunter工具無(wú)法檢測(cè)到掛鉤位置,只能檢測(cè)到系統(tǒng)模塊。

本發(fā)明的實(shí)施例二為:

獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

獲取所述第一函數(shù)的入口地址,得到第二地址;

設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;

當(dāng)系統(tǒng)初始化線程時(shí),需獲取中轉(zhuǎn)指針中存儲(chǔ)的線程地址,由于此時(shí)中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,因此當(dāng)系統(tǒng)調(diào)用中轉(zhuǎn)指針時(shí)實(shí)際上執(zhí)行第一函數(shù)的函數(shù)體;

獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;由于此時(shí)中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,第一函數(shù)的函數(shù)指針?biāo)赶虻娜肟诘刂窞橹修D(zhuǎn)指針的地址,因此應(yīng)通過調(diào)用第一函數(shù)的函數(shù)指針?biāo)赶虻牡刂帆@取中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

獲取系統(tǒng)函數(shù)的索引;

根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識(shí)別出線程所要執(zhí)行的操作,得到當(dāng)前操作名;

獲取危險(xiǎn)操作表;所述危險(xiǎn)操作表中存儲(chǔ)對(duì)創(chuàng)建所述線程的進(jìn)程會(huì)造成損害的操作的名稱;

在所述危險(xiǎn)操作表中搜索是否存在所述當(dāng)前操作名,若是,則返回錯(cuò)誤信息,否則,初始化線程。

由上述描述可知,本實(shí)施例可實(shí)現(xiàn)攔截可執(zhí)行對(duì)計(jì)算機(jī)系統(tǒng)造成損害的操作的線程,且無(wú)法通過檢測(cè)工具定位檢測(cè)點(diǎn)。

本發(fā)明的實(shí)施例三為:

獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

獲取所述第一函數(shù)的入口地址,得到第二地址;

設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;

當(dāng)系統(tǒng)初始化線程時(shí),需獲取中轉(zhuǎn)指針中存儲(chǔ)的線程地址,由于此時(shí)中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,因此當(dāng)系統(tǒng)調(diào)用中轉(zhuǎn)指針時(shí)實(shí)際上執(zhí)行第一函數(shù)的函數(shù)體;

獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;由于此時(shí)中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,第一函數(shù)的函數(shù)指針?biāo)赶虻娜肟诘刂窞橹修D(zhuǎn)指針的地址,因此應(yīng)通過調(diào)用第一函數(shù)的函數(shù)指針?biāo)赶虻牡刂帆@取中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

獲取黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址;

在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯(cuò)誤信息,否則:

獲取安全的地址空間;

判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,存儲(chǔ)所述線程地址至黑名單,所述黑名單用于保存已識(shí)別的惡意線程的地址,返回錯(cuò)誤信息。

由上述描述可知,本實(shí)施例先在黑名單中搜索是否存在待初始化線程,若存在,則直接返回錯(cuò)誤信息判定待初始化線程為惡意線程,否則獲取安全的地址空間,判斷待初始化線程地址是否在所述安全的地址空間的范圍內(nèi),若是,則初始化線程,否則判定待初始化線程為惡意線程并存儲(chǔ)至黑名單中??蓪?shí)現(xiàn)快速檢測(cè)出已攻擊過本計(jì)算機(jī)的惡意線程,攔截不屬于安全地址空間的線程,且無(wú)法通過檢測(cè)工具定位檢測(cè)點(diǎn)。

本發(fā)明的實(shí)施例四為:

獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

獲取所述第一函數(shù)的入口地址,得到第二地址;

設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;

當(dāng)系統(tǒng)初始化線程時(shí),需獲取中轉(zhuǎn)指針中存儲(chǔ)的線程地址,由于此時(shí)中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,因此當(dāng)系統(tǒng)調(diào)用中轉(zhuǎn)指針時(shí)實(shí)際上執(zhí)行第一函數(shù)的函數(shù)體;

獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;由于此時(shí)中轉(zhuǎn)指針的地址為第一函數(shù)的入口地址,第一函數(shù)的函數(shù)指針?biāo)赶虻娜肟诘刂窞橹修D(zhuǎn)指針的地址,因此應(yīng)通過調(diào)用第一函數(shù)的函數(shù)指針?biāo)赶虻牡刂帆@取中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

獲取黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址;

在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯(cuò)誤信息,否則:

獲取系統(tǒng)函數(shù)的索引;

根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識(shí)別出線程所要執(zhí)行的操作,得到當(dāng)前操作名;

獲取危險(xiǎn)操作表;所述危險(xiǎn)操作表中存儲(chǔ)對(duì)創(chuàng)建所述線程的進(jìn)程會(huì)造成損害的操作的名稱;

在所述危險(xiǎn)操作表中搜索是否存在所述當(dāng)前操作名,若是,則存儲(chǔ)所述線程地址至黑名單,所述黑名單用于保存已識(shí)別的惡意線程的地址,返回錯(cuò)誤信息,否則,初始化線程。

由上述描述可知,本實(shí)施例先在黑名單中搜索是否存在待初始化線程,若存在,則直接返回錯(cuò)誤信息判定待初始化線程為惡意線程,否則獲取系統(tǒng)函數(shù)的索引,識(shí)別出待初始化線程可執(zhí)行的操作,若所述操作會(huì)對(duì)計(jì)算機(jī)系統(tǒng)造成損害,則判定待初始化線程為惡意線程并存儲(chǔ)至黑名單中,否則初始化待初始化線程??蓪?shí)現(xiàn),快速檢測(cè)出已攻擊過本計(jì)算機(jī)的惡意線程,攔截可執(zhí)行對(duì)計(jì)算機(jī)系統(tǒng)造成損害的操作的線程,且無(wú)法通過檢測(cè)工具定位檢測(cè)點(diǎn)。

本發(fā)明的實(shí)施例五為:

第一獲取模塊獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)模塊預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

第二獲取模塊獲取所述第一函數(shù)的入口地址,得到第二地址;

第一設(shè)置模塊設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

第二設(shè)置模塊設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;

第三獲取模塊獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

第四獲取模塊獲取安全的地址空間;

第一判斷模塊判斷所述線程地址是否在所述地址空間的范圍內(nèi),若是,則初始化線程,否則,存儲(chǔ)模塊存儲(chǔ)所述線程地址至黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址;返回錯(cuò)誤信息。

本發(fā)明的實(shí)施例六為:

第一獲取模塊獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)模塊預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

第二獲取模塊獲取所述第一函數(shù)的入口地址,得到第二地址;

第一設(shè)置模塊設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

第二設(shè)置模塊設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;

第五獲取模塊獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

第六獲取模塊獲取系統(tǒng)函數(shù)的索引;

識(shí)別模塊根據(jù)所述系統(tǒng)函數(shù)的索引和線程地址識(shí)別出線程所要執(zhí)行的操作,得到當(dāng)前操作名;

第七獲取模塊獲取危險(xiǎn)操作表;所述危險(xiǎn)操作表中存儲(chǔ)對(duì)創(chuàng)建所述線程的進(jìn)程會(huì)造成損害的操作的名稱;

第一搜索模塊在所述危險(xiǎn)操作表中搜索是否存在所述當(dāng)前操作名,若是,則存儲(chǔ)模塊存儲(chǔ)所述線程地址至黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址;返回錯(cuò)誤信息,否則,初始化線程。

本發(fā)明的實(shí)施例七為:

第一獲取模塊獲取中轉(zhuǎn)指針的地址,得到第一地址;所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站;

預(yù)設(shè)模塊預(yù)設(shè)第一函數(shù);所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;

第二獲取模塊獲取所述第一函數(shù)的入口地址,得到第二地址;

第一設(shè)置模塊設(shè)置所述中轉(zhuǎn)指針的地址為所述第二地址;

第二設(shè)置模塊設(shè)置所述第一函數(shù)的函數(shù)指針指向所述第一地址;

第八獲取模塊獲取所述中轉(zhuǎn)指針中存儲(chǔ)的線程地址;

第九獲取模塊獲取黑名單;所述黑名單用于保存已識(shí)別的惡意線程的地址;

第二搜索模塊在所述黑名單中搜索是否存在所述線程地址,若存在,則返回錯(cuò)誤信息,否則,初始化線程。

綜上所述,本發(fā)明提供的一種惡意線程檢測(cè)方法及系統(tǒng),通過調(diào)換中轉(zhuǎn)指針和第一函數(shù)的函數(shù)指針?biāo)赶虻娜肟诘刂?,?shí)現(xiàn)在系統(tǒng)初始化線程之前,檢測(cè)待測(cè)線程是否為惡意線程,若所述待測(cè)線程為惡意線程,則不初始化該線程,否則初始化該線程,有利于保護(hù)系統(tǒng)安全和計(jì)算機(jī)使用者的權(quán)益;其中,所述中轉(zhuǎn)指針為線程在用戶層和內(nèi)核層間轉(zhuǎn)換時(shí)的中轉(zhuǎn)站,所述第一函數(shù)用于檢測(cè)惡意線程和初始化線程;以中轉(zhuǎn)指針作為待測(cè)點(diǎn)可實(shí)現(xiàn)檢測(cè)工具無(wú)法定位具體的待測(cè)點(diǎn),從而避免了不法分子針對(duì)待測(cè)點(diǎn)做出相對(duì)應(yīng)的操作破壞計(jì)算機(jī)的系統(tǒng)安全及計(jì)算機(jī)使用者的權(quán)益;通過將待初始化的線程地址與安全的地址空間進(jìn)行比較,可識(shí)別出待初始化的線程是否為惡意線程;可通過分析待初始化線程的地址,識(shí)別出待初始化線程所要執(zhí)行的操作,并攔截會(huì)對(duì)創(chuàng)建所述待初始化線程的進(jìn)程造成損害的待初始化線程;通過在保存有已識(shí)別的惡意線程地址的黑名單中搜索是否存在當(dāng)前待初始化的惡意線程,可快速識(shí)別出惡意線程。

以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
瑞昌市| 阳城县| 乌拉特后旗| 罗源县| 伊吾县| 东光县| 高台县| 鄄城县| 本溪| 扶余县| 营山县| 金川县| 永仁县| 睢宁县| 望都县| 长海县| 诸城市| 桃园县| 赫章县| 拉萨市| 荥经县| 康乐县| 泰安市| 永济市| 罗甸县| 旬邑县| 满城县| 玉山县| 成都市| 略阳县| 贺兰县| 延川县| 印江| 丰镇市| 平湖市| 唐河县| 隆安县| 定南县| 巩留县| 徐州市| 藁城市|