• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種有效的進程隱藏方案實現(xiàn)

      2020-04-24 14:50:40任雁軍
      電腦知識與技術(shù) 2020年5期

      任雁軍

      摘要:該文從Windows操作系統(tǒng)的進程的運行機制出發(fā),簡要介紹了Windows操作系統(tǒng)的進程的分類及管理機制,對常見的基于Windows操作系統(tǒng)的進程隱藏技術(shù)進行了概要的介紹并對各類隱藏技術(shù)的優(yōu)勢和不足進行的分析闡述,最后從實用的角度出發(fā),結(jié)合幾種不同的進程隱藏技術(shù)的特點與優(yōu)勢,給出了一種有效的進程隱藏方案,并詳細地分析解讀了實現(xiàn)這一方案的主要技術(shù)方法。

      關(guān)鍵詞:進程隱藏;動態(tài)鏈接庫;DLL劫持

      中圖分類號:TP393 文獻標識碼:A

      文章編號:1009-3044(2020)05-0244-02

      開放科學(資源服務(wù))標識碼(OSID):

      進程是操作系統(tǒng)中正在運行的一個應(yīng)用程序,是系統(tǒng)進行資源分配和調(diào)度的基本單位,微軟的Windows是目前在PC機上應(yīng)用最廣的多用戶操作系統(tǒng),Window系統(tǒng)的進程大致可分為:系統(tǒng)核心進程、系統(tǒng)進程、服務(wù)進程及用戶進程。使用Win-dows自帶動任務(wù)管理器可以查看并管理一部分顯式存在的進程,然而還有很多進程則是以隱性的方式存在的,無法用任務(wù)管理器或其他工具對其進行查看、終止及刪除。

      1 常見進程隱藏技術(shù)

      所謂的進程隱藏,通俗地講就是讓可執(zhí)行程序以隱蔽的方式被加載并且使其進程盡可能地長期駐留在內(nèi)存中的方法。

      1.1 進程偽裝

      1)簡單地將程序改名與系統(tǒng)進程相同或者相似,早期的木馬或病毒多使用這種方法隱身,顯然很容易被識別。

      2)將自身注冊為DLL模式的系統(tǒng)服務(wù)這樣在系統(tǒng)進程列表中就能實現(xiàn)隱身,這種方法雖簡單,但需要較高的權(quán)限。

      3)借助系統(tǒng)程序Rund1132.exe啟動dll程序也能實現(xiàn)簡單的進程隱藏,但隱身的強度不高。

      4)通過修改進程PEB中的命令行參數(shù)實現(xiàn)偽裝,這種方法容易被殺毒軟件查殺。

      1.2代碼注入

      將自身代碼動態(tài)地寫入目標進程的內(nèi)存而實現(xiàn)隱身,這種方法用在系統(tǒng)進程中很難實現(xiàn),在一般進程中的存活時間取決于目標進程的存活期,極易被殺毒軟件查殺。

      1.3 HOOK隱藏

      使用API HOOK函數(shù)捕獲系統(tǒng)消息而實現(xiàn)進程隱藏,這種方法需要較高的權(quán)限,也是殺毒軟件緊盯的目標。

      1.4 DLL劫持

      利用系統(tǒng)加載DLL的順序,將偽造的同名Dll插在目標Dll之前被加載,這種方法很巧妙,但隨著windows系統(tǒng)安全防護性能的不斷改進,在win7之后已經(jīng)很難找到可以劫持的系統(tǒng)關(guān)鍵Dll了。

      可見前面介紹的每一種進程隱藏方法都有自身的優(yōu)勢和缺陷,在現(xiàn)實中那些與系統(tǒng)進程密切接觸的方法(比如HOOK和注入等)已經(jīng)成了殺毒軟件緊盯的目標,正確的做法是:讓你的動作盡量接近正常!同時綜合使用多種方法和策略,也能達到取長補短的效果。

      2 一種進程隱藏方案實現(xiàn)

      2.1實現(xiàn)原理

      1) Dll劫持原理:Windows可執(zhí)行文件輸入表中列出的函數(shù)名實體存身在不同的動態(tài)鏈接庫(Dynamic Link Library,縮寫為DLL)文件中,只有當函數(shù)被調(diào)用時,系統(tǒng)才加載所需的DLL文件到內(nèi)存中,由于輸入表只指定了DLL文件名而沒有指定具體路徑,所以系統(tǒng)加載器按照:當前目錄一系統(tǒng)目錄一環(huán)境路徑的順序查找并加載同名DLL文件。如果將含有相同輸出表的同名DLL文件放在可執(zhí)行文件所在的目錄下就可搶先加載這個偽DLL文件,當然之后還需將原DLL加載以免系統(tǒng)報錯。

      2)劫持Version.dll實現(xiàn)加載并存活:由于Windows安全防護機制的不斷進步,win7之后系統(tǒng)關(guān)鍵DLL(如:kerne132.dll、ws2_32.dll、lpk.dll等)已經(jīng)無法劫持了,所以被劫持的DLL文件的選擇需要滿足兩個條件:非系統(tǒng)關(guān)鍵文件并且使用率較高。本方案選擇Version.dll作為被劫持對象,常見用戶進程(比如IE、WINWord等)都會調(diào)用它,可以保證“偽Version.dll”的加載成功,當然“偽Version.dll”會伴隨調(diào)用它的用戶進程的終止而退出。

      3)利用Rund1132隱身:在“偽Version.dll”中創(chuàng)建一個獨立的Rund1132進程加載真正需要隱身的xx. dll進程。命令行參數(shù)為:Rund1132 xx,函數(shù)名。

      2.2 實現(xiàn)示意圖

      圖1進程隱藏方案實現(xiàn)示意圖

      2.3 主要代碼

      A>使用預處理命令向原Version.dll直接轉(zhuǎn)發(fā)導出函數(shù)

      #pragma comment(linker, "/EXPORT: VerFindFileA=version-Org.VerFindFileA,@1”)

      #pragma comment(linker, "/EXPORT:VerFindFileW=version-Org.VerFindFileW,@2")

      ….

      #pragma comment(linker, "/EXPORT: VerInstaIIFileA=_AheadLib_VerInstaIIFileA,@8”)

      #pragma comment(linker, "/EXPORT: VerInstaIIFileW=_AheadLib_VerInstaIIFileW,@9")

      ….‘

      #pragma comment(linker, "/EXPORT: VerLanguageNameA=_AheadLib_VerLanguageNameA, @12 ")

      #pragma comment(linker, "/EXPORT: VerLanguageNameW=_AheadLib_VerLanguageNameW, @13 ")

      久治县| 宜兰县| 泰兴市| 英吉沙县| 紫云| 衡南县| 临沂市| 肃宁县| 久治县| 溧水县| 尤溪县| 西林县| 莱阳市| 星子县| 南昌市| 宣城市| 来凤县| 鱼台县| 德清县| 永嘉县| 织金县| 茶陵县| 双流县| 濉溪县| 伊川县| 来宾市| 威远县| 黄石市| 桂林市| 乐业县| 桃园县| 马鞍山市| 灌阳县| 芷江| 光泽县| 湘西| 平陆县| 宝鸡市| 铜鼓县| 金秀| 舒城县|