亚洲色一色噜一噜噜噜_在线国产精品一区二区_91国自产拍 精品_国产伦三级一区二区

<address id="xly8e"><var id="xly8e"><center id="xly8e"></center></var></address>
<kbd id="xly8e"><dl id="xly8e"></dl></kbd>
<bdo id="xly8e"><mark id="xly8e"><legend id="xly8e"></legend></mark></bdo>
  • <span id="xly8e"><delect id="xly8e"></delect></span>

     找回密碼
     注冊

    QQ登錄

    只需一步,快速開始

    冰河淺析 - 揭開木馬的神秘面紗(上)

    [復(fù)制鏈接]
    1#
    發(fā)表于 2011-1-13 17:02:16 | 只看該作者 |倒序瀏覽 |閱讀模式
    在網(wǎng)上,大家最關(guān)心的事情之一就是木馬:最近出了新的木馬嗎?木馬究竟能實現(xiàn)哪些功能?木馬如何防治?木馬究竟是如何工作的?本文試圖以我國最著名的木馬之一 冰河為例,向大家剖析木馬的基本原理,為大家揭開木馬的神秘面紗。
    * f# O+ a. a9 N) A3 {4 R3 w; L- B3 D; n  {" k  b3 i% u* F1 E, O: d3 D
      木馬冰河是用C++Builder寫的,為了便于大家理解,我將用相對比較簡單的VB來說明它,其中涉及到一些WinSock編程和Windows API的知識,如果你不是很了解的話,請去查閱相關(guān)的資料。
    & ?7 X! l7 x. ^8 g' Z8 F1 x
    : {4 o. P6 m  E2 c; B0 |' z# }                   一、基礎(chǔ)篇(揭開木馬的神秘面紗)9 \! K: ?  ]" B2 P

    / h4 q6 w" W' Q( ~: U  無論大家把木馬看得多神秘,也無論木馬能實現(xiàn)多么強大的功能,木馬,其實質(zhì)只是一個網(wǎng)絡(luò)客戶/服務(wù)程序。那么,就讓我們從網(wǎng)絡(luò)客戶/服務(wù)程序的編寫開始。) s" \$ _% v% y) w+ h0 @, [0 O
      1.基本概念:
    9 L( W& p5 ^4 r   網(wǎng)絡(luò)客戶/服務(wù)模式的原理是一臺主機提供服務(wù)(服務(wù)器),另一臺主機接受服務(wù)(客戶機)。作為服務(wù)器的主機一般會打開一個默認(rèn)的端口并進(jìn)行監(jiān)聽(Listen), 如果有客戶機向服務(wù)器的這一端口提出連接請求(Connect Request), 服務(wù)器上的相應(yīng)程序就會自動運行,來應(yīng)答客戶機的請求,這個程序我們稱為守護進(jìn)程(UNIX的術(shù)語,不過已經(jīng)被移植到了MS系統(tǒng)上)。對于冰河,被控制端就成為一臺服務(wù)器,控制端則是一臺客戶機,G_server.exe是守護進(jìn)程, G_client是客戶端應(yīng)用程序。(這一點經(jīng)常有人混淆,而且往往會給自己種了木馬!甚至還有人跟我爭得面紅耳赤,昏倒!!)
    ' @' Y0 v" z. Z' a) s7 v2 |   
    + r  \% A0 a( j/ \0 a  2.程序?qū)崿F(xiàn):
    " L0 z( ^0 J# M; g. |6 u, T   在VB中,可以使用Winsock控件來編寫網(wǎng)絡(luò)客戶/服務(wù)程序, 實現(xiàn)方法如下:2 o( j' d( l# ?1 B3 n5 V
       (其中,G_Server和G_Client均為Winsock控件)8 h) e2 T* e. a% E- m+ A# T
       服務(wù)端:9 E5 ~9 x0 e; P% I2 t0 a% o( A$ H5 s
       G_Server.LocalPort=7626(冰河的默認(rèn)端口,可以改為別的值)! t, h# Z; z' e% D; n3 D
       G_Server.Listen(等待連接)  S+ M. ]8 i% Y0 z1 b3 r9 f
       , h; F6 q6 D6 q# R' l
       客戶端:
    9 K# @" u( j3 k   G_Client.RemoteHost=ServerIP(設(shè)遠(yuǎn)端地址為服務(wù)器地址)
    . a1 @* l7 c* o! \   G_Client.RemotePort=7626  (設(shè)遠(yuǎn)程端口為冰河的默認(rèn)端口,呵呵,知道嗎?這是冰河的生日哦)0 A2 K, ?8 V0 P# q: z, P  \5 _. D
       (在這里可以分配一個本地端口給G_Client, 如果不分配, 計算機將會自動分配一個, 建議讓計算機自動分配)
    $ c9 \  F, m  [* q/ _* I   G_Client.Connect      (調(diào)用Winsock控件的連接方法)
    2 {3 T3 U9 B. P   & ]  @9 m" M( C$ Z2 O
       一旦服務(wù)端接到客戶端的連接請求ConnectionRequest,就接受連接$ C. z0 g. a! ?
       Private Sub G_Server_ConnectionRequest(ByVal requestID As Long)  O5 c/ t& a0 Z1 u" y
           G_Server.Accept requestID
    ) \2 g& a  U2 m3 b. ~& \+ G; a   End Sub' J  n% z* D! Q4 P' W4 I- h) |
       
    5 D; \6 g  H% k0 s5 X   客戶機端用G_Client.SendData發(fā)送命令,而服務(wù)器在G_Server_DateArrive事件中接受并執(zhí)行命令(幾乎所有的木馬功能都在這個事件處理程序中實現(xiàn))* s+ {: R, E: g1 L* X
    " h) O; w$ B. R  U
       如果客戶斷開連接,則關(guān)閉連接并重新監(jiān)聽端口   
    9 Y9 k0 ^- z: a8 J# R   Private Sub G_Server_Close()
    7 X2 B! H, l9 {       G_Server.Close  (關(guān)閉連接)
    ; ~# p6 N3 o+ b7 B6 T$ `8 V       G_Server.Listen (再次監(jiān)聽)( G  h, ^$ ~9 J* I
       End Sub! a# ]& G9 _$ E% n
    7 Q" ]" C& A; e9 }# z7 G: w" u
       其他的部分可以用命令傳遞來進(jìn)行,客戶端上傳一個命令,服務(wù)端解釋并執(zhí)行命令......
    0 M: V/ }' E$ `4 D    
    " v5 D. \8 M3 K
    : n/ S, h; Z2 O* C2 q+ Q2 t
    您需要登錄后才可以回帖 登錄 | 注冊

    本版積分規(guī)則

    QQ|本地廣告聯(lián)系: QQ:905790666 TEL:13176190456|Archiver|手機版|小黑屋|汶上信息港 ( 魯ICP備19052200號-1 )

    GMT+8, 2025-7-3 13:56

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回復(fù) 返回頂部 返回列表