当前位置: 首页 » 中职教育 » 中职计算机 » VB辅导实例编程(10)

 上网遭到探测用VB编写入侵监听程序

  上网的时候很容易遭到探测,一般探测你个人的入侵者技术不会高明到哪里去。所以根本不能称上黑客,所以本文就用入侵者来代替。他们对普通网民的扫描可以是多端口单IP的扫描或者多IP单端口扫描。前者是通过一些IP工具来取得你的IP,然后尝试利用端口扫描获取你的信息,看你的计算机有没有预先中了木马。然后通过网上的木马端口列表,来获得木马名称。用相应的客户端软件来连接到你的计算机。从而获得密码、以及你的秘密信息。后者则是通过利用如SuperScan等可以大范围扫描IP的软件,扫描打开特定端口的机器。比如,可以扫描打开7626端口的机器,看对方是否中了冰河。然后,入侵者就用客户端连接到服务器从而入侵你的计算机。

  这些扫描是简单的TCP的ConNECt扫描。所以无法避开防火墙的追踪。网民就可以利用天网等防火墙软件来获取对方的IP。相信很多DIY迷或者编程爱好者总是想拥有属于自己的类似的工具。本文就给你讲述如何用VB来获得探测你的入侵者的IP地址,然后……我可没有教你用蓝屏炸弹或者蜗牛炸弹去炸它哦。毕竟,我们没有入侵者的野心,本程序还可以让你监听80端口,来察看对方对你进行的常规扫描。要看懂本文,你需要有一定的VB基础。

  好了,废话少说,我们来看看本程序的基本原理:

  入侵者通过Connect本机的端口,然后通过是否成功,来获得信息。由于TCP的三次握手原理。他必定会留下自己的IP,我们就利用这一个原理来获得对方的IP。

  Winsock控件的属性、方法和事件在我上次写的《.用winsock制作漏洞扫描器》一文中已经叙述过,这里就不再介绍。大家还一定记得RemoteHostIP和LocalPort属性吧。这就是对方的IP和自己的端口。聪明的你应该明白了吧。通过这两个属性就可以清楚的获得对方的IP地址和他正在扫描的本地端口。

  因为不可能一个端口只有一个人会扫描,所以本程序我们需要使用到控件数组。这个概念的描述大家可以查找MSDN。本程序的流程是:

  1、 定义需要监听的端口

  2、 装载一定数量的Winsock1控件,从需要监听的端口列表中获得数据。一一开启监听功能。(Listen)

  3、 当某一个控件接收到连接的事件发生,就把得到的RemoteIP和LocalPort加入日志

  4、 加载一个Winsock2,继续捕获数据(Getdata)

  5、 Winsock2数据到达记录数据

  程序的基本概念都介绍完了,相信你对本程序已经有了一定的认识。现在我们就来开始我们的工作:

  程序的控件以及说明如下:

  控件名 控件类型 属性

  Label1 Label Caption=”增加端口”

  Command1 command Caption=”添加”

  Command2 command Caption=”监听”

  Command3 command Caption=”退出”

  Listports Listbox 无

  TxtLog Richtextbox 无

程序的代码以及说明如下:

  ‘本程序在VB6.0+Windows2000下测试通过!

  Dim tmpstr As String

  Dim NOW_OUT As Integer ’’总共出去连接的有几个Winsock

  Private Sub Command1_Click()

  ListPorts.AddItem txtADDPORT.Text

  End Sub

  Private Sub Command2_Click()

  On Error Resume Next

  If Command2.Caption = “监听” Then

  For i = 0 To ListPorts.ListCount – 1

  Load Winsock1(i 1) ’’加载监听端口的winsock1数组控件

  Winsock1(i 1).LocalPort = ListPorts.List(i) ’’设定端口

  Winsock1(i 1).Listen ’’监听

  Next i

  Command2.Caption = “停止”

  Else

  For i = 1 To Winsock1.Count – 1

  Unload Winsock1(i)

  Next i

  For i2 = 1 To Winsock2.Count – 1

  Unload Winsock2(i2)

  Next i2

  Command2.Caption = “监听”

  End If

  End Sub

  Private Sub Command3_Click()

  Unload Me

  End Sub

  Private Sub Form_Load()

  txtLOG.Text = “日志:”