久久综合伊人噜噜色,日本三级香港三级人妇电影精品,亚洲中文色资源,国产高清一区二区三区人妖
汶上信息港
標(biāo)題:
冰河淺析 - 揭開木馬的神秘面紗(上)
[打印本頁(yè)]
作者:
雜七雜八
時(shí)間:
2011-1-13 17:02
標(biāo)題:
冰河淺析 - 揭開木馬的神秘面紗(上)
在網(wǎng)上,大家最關(guān)心的事情之一就是木馬:最近出了新的木馬嗎?木馬究竟能實(shí)現(xiàn)哪些功能?木馬如何防治?木馬究竟是如何工作的?本文試圖以我國(guó)最著名的木馬之一 冰河為例,向大家剖析木馬的基本原理,為大家揭開木馬的神秘面紗。
+ G/ f& O7 M6 k9 ^$ q
2 l; J- o! q. |/ t
木馬冰河是用C++Builder寫的,為了便于大家理解,我將用相對(duì)比較簡(jiǎn)單的VB來說明它,其中涉及到一些WinSock編程和Windows API的知識(shí),如果你不是很了解的話,請(qǐng)去查閱相關(guān)的資料。
0 F( A+ U- Q2 K4 Y4 R$ Y* D/ e
/ v( U8 @* A2 C# X
一、基礎(chǔ)篇(揭開木馬的神秘面紗)
! f1 ?! Z- m. K+ ~
$ I( b5 c) V! q0 d: _- t4 E
無論大家把木馬看得多神秘,也無論木馬能實(shí)現(xiàn)多么強(qiáng)大的功能,木馬,其實(shí)質(zhì)只是一個(gè)網(wǎng)絡(luò)客戶/服務(wù)程序。那么,就讓我們從網(wǎng)絡(luò)客戶/服務(wù)程序的編寫開始。
Z n6 U: a, k# {' U) e) `5 y
1.基本概念:
9 {( m, o$ i: q( {
網(wǎng)絡(luò)客戶/服務(wù)模式的原理是一臺(tái)主機(jī)提供服務(wù)(服務(wù)器),另一臺(tái)主機(jī)接受服務(wù)(客戶機(jī))。作為服務(wù)器的主機(jī)一般會(huì)打開一個(gè)默認(rèn)的端口并進(jìn)行監(jiān)聽(Listen), 如果有客戶機(jī)向服務(wù)器的這一端口提出連接請(qǐng)求(Connect Request), 服務(wù)器上的相應(yīng)程序就會(huì)自動(dòng)運(yùn)行,來應(yīng)答客戶機(jī)的請(qǐng)求,這個(gè)程序我們稱為守護(hù)進(jìn)程(UNIX的術(shù)語,不過已經(jīng)被移植到了MS系統(tǒng)上)。對(duì)于冰河,被控制端就成為一臺(tái)服務(wù)器,控制端則是一臺(tái)客戶機(jī),G_server.exe是守護(hù)進(jìn)程, G_client是客戶端應(yīng)用程序。(這一點(diǎn)經(jīng)常有人混淆,而且往往會(huì)給自己種了木馬!甚至還有人跟我爭(zhēng)得面紅耳赤,昏倒!!)
0 C6 f4 |7 H0 V' W' q0 r A
( T4 V' i6 W1 a: r, k% |: m+ E# f& t' m
2.程序?qū)崿F(xiàn):
8 M1 i2 v: g7 J9 p/ y" p: r4 T' a
在VB中,可以使用Winsock控件來編寫網(wǎng)絡(luò)客戶/服務(wù)程序, 實(shí)現(xiàn)方法如下:
( ]8 |& Z- ~+ X7 e6 Y u
(其中,G_Server和G_Client均為Winsock控件)
; j) R9 m. u3 `$ r/ N$ f
服務(wù)端:
( q& Q2 ^1 T# [6 v! P- d! F% I
G_Server.LocalPort=7626(冰河的默認(rèn)端口,可以改為別的值)
& W0 C1 m9 z) E5 G1 H2 r
G_Server.Listen(等待連接)
7 ~" z2 B/ |& L7 a$ i
8 w1 \1 a% O' Y
客戶端:
1 u d6 Q- A- i9 M- ^
G_Client.RemoteHost=ServerIP(設(shè)遠(yuǎn)端地址為服務(wù)器地址)
9 R/ S# g7 ]: N% w& y4 R
G_Client.RemotePort=7626 (設(shè)遠(yuǎn)程端口為冰河的默認(rèn)端口,呵呵,知道嗎?這是冰河的生日哦)
7 ^" Z7 ~8 J, B4 J3 X9 G* w* ^) r) a* g
(在這里可以分配一個(gè)本地端口給G_Client, 如果不分配, 計(jì)算機(jī)將會(huì)自動(dòng)分配一個(gè), 建議讓計(jì)算機(jī)自動(dòng)分配)
0 ~ w" j% c1 B$ o! _: {& L, }
G_Client.Connect (調(diào)用Winsock控件的連接方法)
+ R6 ~ ]3 e/ X% l- r& S
5 r6 [( @2 Z, }6 r/ H
一旦服務(wù)端接到客戶端的連接請(qǐng)求ConnectionRequest,就接受連接
6 R% C6 K& ]( h" s% W' K1 b% s
Private Sub G_Server_ConnectionRequest(ByVal requestID As Long)
4 ^! G' |% l5 @! `) p/ I
G_Server.Accept requestID
1 h$ X9 E% s9 S9 V
End Sub
3 D6 ^ ^% o$ ^$ k
5 g$ U9 `7 V' @8 F- \: d- j2 u
客戶機(jī)端用G_Client.SendData發(fā)送命令,而服務(wù)器在G_Server_DateArrive事件中接受并執(zhí)行命令(幾乎所有的木馬功能都在這個(gè)事件處理程序中實(shí)現(xiàn))
5 C2 z9 c7 X, a9 F
6 }: I. g) t' o) U4 v: M d
如果客戶斷開連接,則關(guān)閉連接并重新監(jiān)聽端口
$ c# U, ], P) ?: p' M9 t% t6 L
Private Sub G_Server_Close()
8 I' {/ R/ m6 @/ l, E! ]6 y9 j! E
G_Server.Close (關(guān)閉連接)
) z z" w: r8 e7 ^
G_Server.Listen (再次監(jiān)聽)
) L1 f" q+ U* B" P" D( }( u
End Sub
" z2 |0 s+ Q: ^- w& @! D2 X
: t1 `; v, j6 ^( J4 h3 H4 Y* w7 o9 ]
其他的部分可以用命令傳遞來進(jìn)行,客戶端上傳一個(gè)命令,服務(wù)端解釋并執(zhí)行命令......
5 j( }- {+ j& l; o3 v* i' |, I2 F
! z8 x: N$ B2 @$ [+ H* x5 w
9 w( u' u2 r8 Q. s' o3 G% X3 o8 @
歡迎光臨 汶上信息港 (http://m.junkejituan.com/)
Powered by Discuz! X3.5