冰河浅析揭开木马的神秘面纱r
作者:shotgu
yeskyr
r
前言r
r
在网上,大家最关心的事情之一就是木马:最近出了新的木马吗?木马究竟能实现哪些功能?木马如何防治?木马究竟是如何工作的?本文试图以我国最著名的木马之一冰河为例,向大家剖析木马的基本原理,为大家揭开木马的神秘面纱。r
r
木马冰河是用CBuilder写的,为了便于大家理解,我将用相对比较简单的VB来说明它,其中涉及到一些Wi
Sock编程和Wi
dowsAPI的知识,如果你不是很了解的话,请去查阅相关的资料。r
r
一、基础篇(揭开木马的神秘面纱)r
r
无论大家把木马看得多神秘,也无论木马能实现多么强大的功能,木马,其实质只是一个网络客户服务程序。那么,就让我们从网络客户服务程序的编写开始。r
1基本概念r
网络客户服务模式的原理是一台主机提供服务服务器,另一台主机接受服务客户机。作为服务器的主机一般会打开一个默认的端口并进行监听Liste
如果有客户机向服务器的这一端口提出连接请求Co
ectRequest服务器上的相应程序就会自动运行,来应答客户机的请求,这个程序我们称为守护进程UNIX的术语不过已经被移植到了MS系统上。对于冰河,被控制端就成为一台服务器,控制端则是一台客户机,G_serverexe是守护进程G_clie
t是客户端应用程序。这一点经常有人混淆,而且往往会给自己种了木马甚至还有人跟我争得面红耳赤,昏倒)r
r
2程序实现r
在VB中可以使用Wi
sock控件来编写网络客户服务程序实现方法如下r
其中G_Server和G_Clie
t均为Wi
sock控件r
服务端r
G_ServerLocalPort7626冰河的默认端口可以改为别的值r
G_ServerListe
等待连接r
r
客户端r
G_Clie
tRemoteHostServerIP设远端地址为服务器地址r
G_Clie
tRemotePort7626 设远程端口为冰河的默认端口呵呵知道吗这是冰河的生日哦r
在这里可以分配一个本地端口给G_Clie
t如果不分配计算机将会自动分配一个建议让计算机自动分配r
G_Clie
tCo
ect 调用Wi
sock控件的连接方法r
r
一旦服务端接到客户端的连接请求Co
ectio
Request就接受连接r
PrivateSubG_Server_Co
ectio
RequestByValrequestIDAsLo
gr
G_ServerAcceptrequestIDr
E
dSubr
r
客户机端用G_Clie
tSe
dData发送命令而服务器在G_Server_DateArrive事件中接受并执行命令几乎所有的木马功能都在这个事件处理程序中实现r
r
r