久久综合伊人噜噜色,日本三级香港三级人妇电影精品,亚洲中文色资源,国产高清一区二区三区人妖
汶上信息港
標題:
冰河淺析 - 揭開木馬的神秘面紗(上)
[打印本頁]
作者:
雜七雜八
時間:
2011-1-13 17:02
標題:
冰河淺析 - 揭開木馬的神秘面紗(上)
在網(wǎng)上,大家最關(guān)心的事情之一就是木馬:最近出了新的木馬嗎?木馬究竟能實現(xiàn)哪些功能?木馬如何防治?木馬究竟是如何工作的?本文試圖以我國最著名的木馬之一 冰河為例,向大家剖析木馬的基本原理,為大家揭開木馬的神秘面紗。
5 H; T# P1 h! H( {5 J
: X N' `& y1 e: w+ `2 `2 L
木馬冰河是用C++Builder寫的,為了便于大家理解,我將用相對比較簡單的VB來說明它,其中涉及到一些WinSock編程和Windows API的知識,如果你不是很了解的話,請去查閱相關(guān)的資料。
: r6 F# K9 S* g
6 i) g& j a$ v x+ O
一、基礎(chǔ)篇(揭開木馬的神秘面紗)
* s1 o3 t, ~$ D4 y
" Z* o, c j, t9 t# P
無論大家把木馬看得多神秘,也無論木馬能實現(xiàn)多么強大的功能,木馬,其實質(zhì)只是一個網(wǎng)絡(luò)客戶/服務(wù)程序。那么,就讓我們從網(wǎng)絡(luò)客戶/服務(wù)程序的編寫開始。
+ g" A" `1 T5 L# ]; {
1.基本概念:
7 O% X* p, \% D6 P, F3 d% j: P
網(wǎng)絡(luò)客戶/服務(wù)模式的原理是一臺主機提供服務(wù)(服務(wù)器),另一臺主機接受服務(wù)(客戶機)。作為服務(wù)器的主機一般會打開一個默認的端口并進行監(jiān)聽(Listen), 如果有客戶機向服務(wù)器的這一端口提出連接請求(Connect Request), 服務(wù)器上的相應(yīng)程序就會自動運行,來應(yīng)答客戶機的請求,這個程序我們稱為守護進程(UNIX的術(shù)語,不過已經(jīng)被移植到了MS系統(tǒng)上)。對于冰河,被控制端就成為一臺服務(wù)器,控制端則是一臺客戶機,G_server.exe是守護進程, G_client是客戶端應(yīng)用程序。(這一點經(jīng)常有人混淆,而且往往會給自己種了木馬!甚至還有人跟我爭得面紅耳赤,昏倒!!)
1 `. d/ ]- p8 o n
3 z* d, q& u4 K3 a2 P
2.程序?qū)崿F(xiàn):
# a n8 d1 a6 @: `. a& p
在VB中,可以使用Winsock控件來編寫網(wǎng)絡(luò)客戶/服務(wù)程序, 實現(xiàn)方法如下:
8 [1 @2 D! u* x" E5 A2 v
(其中,G_Server和G_Client均為Winsock控件)
, v5 Q: |9 `. ~# Z( t* J) M
服務(wù)端:
' i* V/ r. K5 d4 V. u- Q2 p
G_Server.LocalPort=7626(冰河的默認端口,可以改為別的值)
3 s' S$ M) t7 V/ v% w
G_Server.Listen(等待連接)
% v( t+ @" H1 M s
; U/ t2 E4 q; H$ C7 C
客戶端:
( I3 p+ ^' f4 Q! ~4 Y. \6 t2 Y
G_Client.RemoteHost=ServerIP(設(shè)遠端地址為服務(wù)器地址)
0 D0 e U; R$ g: k9 N' f0 u) p# p
G_Client.RemotePort=7626 (設(shè)遠程端口為冰河的默認端口,呵呵,知道嗎?這是冰河的生日哦)
1 x9 m" f' A# F& h5 f
(在這里可以分配一個本地端口給G_Client, 如果不分配, 計算機將會自動分配一個, 建議讓計算機自動分配)
+ z0 z6 X2 b, Q
G_Client.Connect (調(diào)用Winsock控件的連接方法)
; g; r2 p8 h# C$ s8 F# o5 T
/ j: D' L3 [; N9 F! a4 X
一旦服務(wù)端接到客戶端的連接請求ConnectionRequest,就接受連接
1 k9 w9 u0 ^' Y8 J
Private Sub G_Server_ConnectionRequest(ByVal requestID As Long)
7 L3 R! t8 J4 D
G_Server.Accept requestID
6 B, ^$ g) B$ N0 @
End Sub
7 m8 h& @/ [! ` f
8 V! s' L8 h5 h3 b( E
客戶機端用G_Client.SendData發(fā)送命令,而服務(wù)器在G_Server_DateArrive事件中接受并執(zhí)行命令(幾乎所有的木馬功能都在這個事件處理程序中實現(xiàn))
. p* _# X+ J, Z9 U! e
! C5 l5 K& `/ ]6 t# g$ K" p
如果客戶斷開連接,則關(guān)閉連接并重新監(jiān)聽端口
% Q3 i7 L; E' t6 n' p& X
Private Sub G_Server_Close()
0 i, q# G- y i; [# T, y
G_Server.Close (關(guān)閉連接)
! N; J3 n; W' f: z1 j* O- M
G_Server.Listen (再次監(jiān)聽)
$ d1 r5 P) Z: } `& |4 q2 y
End Sub
2 A4 @" h7 x/ @- B1 U/ c$ a, l8 G
0 [/ U0 M+ x2 q
其他的部分可以用命令傳遞來進行,客戶端上傳一個命令,服務(wù)端解釋并執(zhí)行命令......
9 M `* ]! ~6 E, R( z( Y
- }% `; ]7 k7 n, \
; ]3 i0 V+ d4 @5 A6 C% {. }
歡迎光臨 汶上信息港 (http://www.junkejituan.com/)
Powered by Discuz! X3.5