新四季網

一種防止遠程線程啟動的方法

2023-05-07 04:22:36 1

專利名稱:一種防止遠程線程啟動的方法
技術領域:
本發明涉及軟體安全,尤其涉及防止遠程線程啟動的方法。
背景技術:
計算機及網絡技術的迅猛發展極大地促進了信息交互。但是,與 此同時,計算機病毒也伴隨技術的發展而不斷地演化更新,時至今日, 計算機病毒已經嚴重威脅到了人們對計算機的正常使用。由此,如何 防範病毒侵襲己然成為人們關注的一個焦點。
隨著網際網路的發展,病毒技術也呈現出多樣化。當前的病毒技術 利用了諸如掛鈎、遠程線程等技術,例如,通過遠程線程進行進程保 護、監視文件等功能。這些技術的應用為反病毒工作者帶來了一定的 困難。
針對病毒利用遠程線程的問題,現有的一些安全軟體通過
Windows NT提供的PsSetCreateThreadNotifyRoutine線程創建通知例 程來實現對線程的監控,通過該通知例程來實現監控有以下幾點不 足U)可註冊的知例程數量最多為8個,因此這種方法監控線程 的能力有限;(2)當得到該通知例程的通知時,線程已經創建成功, 所以這種方法不能拒絕創建線程,只能通過修改線程代碼來退出該線 程。
因此,需要一種不受線程通知例程數量限制,並且能有效地監控 並阻止惡意程序創建遠程線程的技術。

發明內容
本發明提供了一種防止遠程線程啟動的方法,該方法包括監視 用於創建線程的請求;當監視到用於創建線程的請求時,判斷要創建的線程是本地線程還是遠程線程;如果要創建的線程是遠程線程,則 阻止創建該線程。
本發明還提供了一種防止遠程線程啟動的方法,該方法包括監 視用於創建遠程線程的請求;當監視到用於創建遠程線程的請求時, 阻止創建該遠程線程。
利用上述技術方案,本發明不需要Windows NT提供的 PsSetCreateThreadNotifyRoutine線程創建通知例程來實現對線程的監 控,因此克服了常規技術中註冊通知例程數量有限的缺點,進一步的, 本發明通過掛鈎技術監視對線程創建的請求,在遠程線程創建之前就 能夠發現它,從而阻止遠程線程的創建,與常規方法中得到遠程線程 創建通知然後退出該線程相比,能夠更有效地防止惡意軟體的動作。


通過以下結合附圖的詳細描述,將更清楚地看到本發明的各種特 徵和優點。
圖1示出了防止遠程線程啟動的方法的總體流程圖2示出了防止遠程線程啟動的方法的一個具體實施例的流程
圖3示出了防止遠程線程啟動的方法的另一個具體實施例的流 程圖。
具體實施例方式
一般而言,創建遠程線程是通過調用用於創建遠程線程或線程的 函數來實現的,因此,通過監視惡意軟體調用這種函數的動作,並在 該函數創建遠程線程前將其阻止,就能夠防止惡意軟體啟動遠程線 程。
圖1示出了防止遠程線程啟動的方法的總體流程圖。在步驟SI 中,通過掛鈎來監視用於創建線程或遠程線程的請求。在步驟S2中, 當用於創建線程或遠程線程的函數被調用時,首先跳轉到該鉤子處瑪 例程中,通過執行該鉤子處理例程判斷是否監視到創建遠程線程的請求。在步驟S2中監視到創建遠程線程的請求後,在步驟S3中阻止創 建該遠程線程,從而使得遠程線程無法啟動。
下面結合圖2的流程圖描述用於防止遠程線程啟動的方法的一 個具體實施例。例如,該過程可以通過下面的偽代碼表示 bool hook—CreateRemoteThread(target_process,...)
if( ask—user = deny—remote_thread ) return false;
return real_CreateRemoteThread(target_process,…);
在步驟S21中,通過掛鈎來監視遠程線程創建請求。在WindowsNt 環境下,惡意軟體可以通過例如CreateRemoteThread函數來創建遠程 線程。本發明通過掛鈎該函數來監視對該函數的調用。當 CreateRemoteThread函數被調用時,在步驟S22,該鉤子處理例程能 夠監視到該函數被調用的動作,並在調用之前跳轉到鉤子處理例程進 行處理。此時,鉤子處理函數監視到某個軟體正在試圖創建遠程線程, 作為可選但非必要的步驟,在步驟S23詢問用戶是否阻止該遠程線程 的創建。如果用戶命令拒絕創建該遠程線程,則在步驟S24返回表示 創建失敗的假值,阻止對CreateRemoteThread函數的調用,從而阻止 創建遠程線程;如果用戶命令允許創建該遠程線程,則在步驟S25 允許創建該遠程線程,例如通過調用真實的CreateRemoteThread函數 創建遠程線程。這裡,雖然以CreateRemoteThread函數為例描述了本 發明的優選實施例,但是本發明不限於對該函數的監視,任何現有的 或將來可能出現的用於創建遠程線程的函數的監視都在本發明的實 質和範圍之內。
實際操作中,惡意軟體有可能繞開上述用於創建遠程線程的 CreateRemoteThread函數,而直接通過更低層的線程創建函數 NtCreateThread來實現遠程線程的創建。實際上,用於創建遠程線程 的CreateRemoteThread函數本身也是通過線程創建函數 NtCreateThread來實現遠程線程創建的。因此,優選地,還可以通過攔截用於創建線程的請求來實現對遠程線程創建的監控,以及阻止創 建遠程線程。
以下結合圖3的流程圖詳細描述通過監視用於創建線程的請求 來阻止遠程線程創建的方法的一個具體實施例。例如,該過程可以用 以下偽代碼表示
bool hook—NtCreateThread(target_process,...)
if( get—current_process != target_process ) { /* this is a remote thread */ if( ask一user == deny—remote—thread ) return false;
return real—NtCreateThread( target_process,...);
在步驟S31中,通過掛鈎來監視線程創建請求。在WindowsNt 環境下,惡意軟體可以通過例如NtCreateThread函數來創建線程。本 實施例通過掛鈎該函數來監視對該函數的調用。當NtCreateThread函 數被調用時,在步驟S32,該鉤子處理例程能夠監視到該函數被調用 的動作,並在調用之前跳轉到鉤子處理例程,執行鉤子處理例程中的 步驟。此時,鉤子處理函數監視到某個軟體正在試圖通過 NtCreateThread函數創建線程,因此在攔截到該線程創建請求後,需 要判斷該線程是否為一個遠程線程。通過研究NtCreateThread函數的 功能可知,該函數可以指定創建線程的目標進程,例如指定惡意程序 的進程來創建遠程線程。同時,創建線程的代碼一定運行於當前發起 者進程中,也就是運行在當前發起者進程空間中,所以,如果所指定 的創建目標線程的進程與當前發起者進程不是同一個進程,那麼這個 線程就是一個遠程線程。因此,基於上述原理,在步驟S33中,判斷 要創建的線程是本地線程還是遠程線程,具體而言,判斷當前發起者 進程與目標進程是否一致。如果一致,說明請求創建的是本地線程一,則在步驟S36中允許創建該線程,例如通過調用真實的 NtCreateThread函數來創建該線程。如果不一致,則說明請求創建的 是一個遠程線程,作為可選但非必要的步驟,在步驟S34中,詢問用 戶是否阻止該線程的創建。如果用戶命令拒絕創建該線程,則在步驟 S35返回表示創建失敗的假值,從而阻止對NtCreateThread函數的調 用,阻止創建遠程線程。如果用戶命令允許創建該線程,則在步驟 S36允許創建該線程,例如通過調用真實的NtCreateThread函數來創 建該線程。這裡,雖然以NtCreateThread函數為例描述了本發明的優 選實施例,但是本發明不限於對該函數的監視,任何現有的或將來可 能出現的用於創建線程的函數的監視都在本發明的實質和範圍之內。
上面詳細描述了用於阻止遠程線程啟動的方法,通過使用本發明 的方法,對於遠程線程創建的監視不受線程數量限制,並且在創建線 程之前就阻止線程的創建,在實現上更加簡單有效。本發明的方法可 以應用於需要實現遠程線程監控的各類程序。
本領域技術人員應該理解,上述具體實施例的描述只是用於說明 的目的,而不能將本發明的保護範圍僅僅限制於具體描述的實施例。 例如,本發明是在WindowsNT系統的上下文中,並具體以 CreateRemoteThread和NtCreateThread函數為例進行闡述的,而例如 在其它已有版本或未來版本的Windows系統、Linux系統等中,也存 在類似的線程或遠程線程創建函數,本領域技術人員在本發明原理的 啟示下,可以對上述實施例作出各種修改,這些修改都包含在權利要 求所限定的本發明的範圍之內。
權利要求
1、一種防止遠程線程啟動的方法,包括以下步驟監視用於創建線程的請求;當監視到用於創建線程的請求時,判斷要創建的線程是本地線程還是遠程線程;如果要創建的線程是遠程線程,則阻止創建該線程。
2、 如權利要求1所述的方法,其中,通過創建與用於創建線程 的函數相關聯的鉤子來監視所述用於創建線程的請求。
3、 如權利要求2所述的方法,其中,通過判斷所述函數所指定 的用於創建所述要創建的線程的目標進程與當前發起者進程是否一 致,來判斷所述要創建的線程是本地線程還是遠程線程。
4、 如權利要求3所述的方法,其中,如果用於創建所述要創建 的線程的進程與當前發起者進程不一致,則判斷所述要創建的線程是 遠程線程。
5、 如權利要求4所述的方法,其中,所述函數包括用於創建線 程的NtCreateThread函數。
6、 如權利要求1所述的方法,還包括當判斷所述要創建的線程是遠程線程時,在阻止創建該線程之 前,詢問用戶是否阻止該線程的創建,並根據用戶的指示阻止或允許 該線程的創建。
7、 一種防止遠程線程啟動的方法,包括以下步驟監視用於創建遠程線程的請求;當監視到用於創建遠程線程的請求時,阻止創建該遠程線程。
8、 如權利要求7所述的方法,其中,通過創建與用於創建遠程 線程的函數相關聯的鉤子來監視所述用於創建線程的請求。
9、 如權利要求8所述的方法,其中,所述函數包括用於創建遠 程線程的CreateRemoteThread函數。
10、 如權利要求7所述的方法,還包括當監視到用於創建遠程線程的請求時,在阻止創建該遠程線程之 前,詢問用戶是否阻止該遠程線程的創建,並根據用戶的指示阻止或 允許該遠程線程的創建。
全文摘要
本發明提供了一種防止遠程線程啟動的方法,包括以下步驟監視用於創建線程的請求;當監視到用於創建線程的請求時,判斷要創建的線程是本地線程還是遠程線程;如果要創建的線程是遠程線程,則阻止創建該線程。通過本發明的方法,克服了常規技術中對於線程監視個數的限制,以及在線程創建後再通過修改代碼推出線程,而不是直接阻止創建線程的弊端。
文檔編號G06F21/00GK101414340SQ200710162450
公開日2009年4月22日 申請日期2007年10月15日 優先權日2007年10月15日
發明者軍 周 申請人:北京瑞星國際軟體有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀