本文的目的在于令大家掌握"黑客"程序的基本原理,进一步提高警惕及防范。只要掌握了原理,你也能写出一个所谓的"黑客"程序。下面笔者带领大家用vb亲自编写一个远程控制程序。从而揭开它的神秘面纱。
一、所用控件
在程序中将使用winsock控件。winsock控件是一个activex控件,使用tcp协议或udp协议连接到远程计算机上并与之交换数据。和定时器控件一样,winsock控件在运行时是不可见的。winsock的工作原理是:客户端向服务器端发出连接请求,服务器端则不停地监听客户端的请求,当两者的协议沟通时,客户端和服务器端之间就建立了连接,这时客户端和服务器端就可以实现双向数据传输。实际编程中,必须分别建立一个服务器端应用程序和一个客户端应用程序,两个应用程序中分别有自己的winsock控件。首先设置winsock控件使用的协议,这里我们使用tcp协议。现在,让我们开始用vb建立两个程序,一个是客户端程序myclient,另一个是服务器端程序myserver。
二、编写客户端程序
首先来建客户端程序myclient。在myclient程序中建立一个窗体,加载winsock控件,称为tcpclient,表示使用的是tcp协议,再加入两个文本框(text1和text2),用来输入服务器的ip地址和端口号,然后建立一个按钮(cd1),用来建立连接,按下之后就可以对连接进行初始化了,代码如下:
private sub cd1_click()
tcpclient.romotehost=text1.text
tcpclient.romoteport=val(text2.text)'端口号,缺省为1001
tcpclient.connect '调用connect方法,与指定ip地址的计算机进行连接
cd1.enabled=false
end sub
private sub tcpclient_dataarrival(byval bytestotal as long)
dim x as string
tcpclient.getdata x '使用getdata获得发送来的数据
.......
end sub
'在窗体的load事件中对tcpserver控件进行初始化
private sub form_load()
tcpserver.localport=1001
tcpserver.listen '把服务器置于监听检测状态
end sub
'服务器端接收到客户端的连接请求,首先检查当前状态是否处于连接关闭状态
private sub tcpclient_connectionrequest(byval requestid as long)
if tcpserver.state<>sckclosed then '检查控件的state属性是否为关闭
tcpserver.close '
tcpserver.accept requestid '
end if
end sub
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器