frmMain.frm
上传用户:yinyu8822
上传日期:2021-04-28
资源大小:79k
文件大小:17k
开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.Form frmMain 
  4.    BackColor       =   &H80000016&
  5.    BorderStyle     =   1  'Fixed Single
  6.    Caption         =   "防火墙"
  7.    ClientHeight    =   4380
  8.    ClientLeft      =   45
  9.    ClientTop       =   540
  10.    ClientWidth     =   5895
  11.    BeginProperty Font 
  12.       Name            =   "Tahoma"
  13.       Size            =   8.25
  14.       Charset         =   0
  15.       Weight          =   400
  16.       Underline       =   0   'False
  17.       Italic          =   0   'False
  18.       Strikethrough   =   0   'False
  19.    EndProperty
  20.    Icon            =   "frmMain.frx":0000
  21.    LinkTopic       =   "Form1"
  22.    MaxButton       =   0   'False
  23.    ScaleHeight     =   4380
  24.    ScaleWidth      =   5895
  25.    StartUpPosition =   3  '窗口缺省
  26.    Begin MSComctlLib.Toolbar Toolbar1 
  27.       Align           =   1  'Align Top
  28.       Height          =   630
  29.       Left            =   0
  30.       TabIndex        =   1
  31.       Top             =   0
  32.       Width           =   5895
  33.       _ExtentX        =   10398
  34.       _ExtentY        =   1111
  35.       ButtonWidth     =   820
  36.       ButtonHeight    =   1058
  37.       Appearance      =   1
  38.       Style           =   1
  39.       ImageList       =   "imgCold"
  40.       HotImageList    =   "imgHot"
  41.       _Version        =   393216
  42.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  43.          NumButtons      =   8
  44.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  45.             Caption         =   "停止"
  46.             Object.ToolTipText     =   "停止"
  47.             ImageIndex      =   1
  48.             Style           =   1
  49.          EndProperty
  50.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  51.             Caption         =   "刷新"
  52.             Object.ToolTipText     =   "刷新列表"
  53.             ImageIndex      =   2
  54.          EndProperty
  55.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  56.             Style           =   3
  57.          EndProperty
  58.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  59.             Caption         =   "活动"
  60.             Object.ToolTipText     =   "显示活动连接列表"
  61.             ImageIndex      =   3
  62.             Style           =   1
  63.          EndProperty
  64.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  65.             Caption         =   "选项"
  66.             Object.ToolTipText     =   "选项"
  67.             ImageIndex      =   4
  68.          EndProperty
  69.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  70.             Style           =   3
  71.          EndProperty
  72.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  73.             Caption         =   "阻止"
  74.             Object.ToolTipText     =   "查看/编辑已经阻止的列表"
  75.             ImageIndex      =   5
  76.          EndProperty
  77.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  78.             Caption         =   "日志"
  79.             Object.ToolTipText     =   "view the log"
  80.             ImageIndex      =   6
  81.          EndProperty
  82.       EndProperty
  83.    End
  84.    Begin MSComctlLib.ImageList imgHot 
  85.       Left            =   180
  86.       Top             =   1800
  87.       _ExtentX        =   1005
  88.       _ExtentY        =   1005
  89.       BackColor       =   -2147483643
  90.       ImageWidth      =   20
  91.       ImageHeight     =   20
  92.       MaskColor       =   12632256
  93.       _Version        =   393216
  94.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  95.          NumListImages   =   6
  96.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  97.             Picture         =   "frmMain.frx":038A
  98.             Key             =   ""
  99.          EndProperty
  100.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  101.             Picture         =   "frmMain.frx":08E6
  102.             Key             =   ""
  103.          EndProperty
  104.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  105.             Picture         =   "frmMain.frx":0E42
  106.             Key             =   ""
  107.          EndProperty
  108.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  109.             Picture         =   "frmMain.frx":1296
  110.             Key             =   ""
  111.          EndProperty
  112.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  113.             Picture         =   "frmMain.frx":17F2
  114.             Key             =   ""
  115.          EndProperty
  116.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  117.             Picture         =   "frmMain.frx":1D4E
  118.             Key             =   ""
  119.          EndProperty
  120.       EndProperty
  121.    End
  122.    Begin MSComctlLib.ImageList imgCold 
  123.       Left            =   180
  124.       Top             =   1200
  125.       _ExtentX        =   1005
  126.       _ExtentY        =   1005
  127.       BackColor       =   -2147483643
  128.       ImageWidth      =   20
  129.       ImageHeight     =   20
  130.       MaskColor       =   12632256
  131.       _Version        =   393216
  132.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  133.          NumListImages   =   6
  134.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  135.             Picture         =   "frmMain.frx":22AA
  136.             Key             =   ""
  137.          EndProperty
  138.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  139.             Picture         =   "frmMain.frx":2806
  140.             Key             =   ""
  141.          EndProperty
  142.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  143.             Picture         =   "frmMain.frx":2D62
  144.             Key             =   ""
  145.          EndProperty
  146.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  147.             Picture         =   "frmMain.frx":31B6
  148.             Key             =   ""
  149.          EndProperty
  150.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  151.             Picture         =   "frmMain.frx":3712
  152.             Key             =   ""
  153.          EndProperty
  154.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  155.             Picture         =   "frmMain.frx":3C6E
  156.             Key             =   ""
  157.          EndProperty
  158.       EndProperty
  159.    End
  160.    Begin VB.Timer tmrRefresh 
  161.       Interval        =   250
  162.       Left            =   180
  163.       Top             =   720
  164.    End
  165.    Begin MSComctlLib.ListView ListView1 
  166.       Height          =   3615
  167.       Left            =   37
  168.       TabIndex        =   0
  169.       Top             =   720
  170.       Width           =   5820
  171.       _ExtentX        =   10266
  172.       _ExtentY        =   6376
  173.       View            =   3
  174.       LabelWrap       =   -1  'True
  175.       HideSelection   =   -1  'True
  176.       _Version        =   393217
  177.       ForeColor       =   -2147483640
  178.       BackColor       =   -2147483643
  179.       BorderStyle     =   1
  180.       Appearance      =   1
  181.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  182.          Name            =   "Tahoma"
  183.          Size            =   8.25
  184.          Charset         =   0
  185.          Weight          =   400
  186.          Underline       =   0   'False
  187.          Italic          =   0   'False
  188.          Strikethrough   =   0   'False
  189.       EndProperty
  190.       NumItems        =   4
  191.       BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  192.          Text            =   "远程IP"
  193.          Object.Width           =   2540
  194.       EndProperty
  195.       BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  196.          SubItemIndex    =   1
  197.          Text            =   "远程端口"
  198.          Object.Width           =   1905
  199.       EndProperty
  200.       BeginProperty ColumnHeader(3) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  201.          SubItemIndex    =   2
  202.          Text            =   "本地端口"
  203.          Object.Width           =   1905
  204.       EndProperty
  205.       BeginProperty ColumnHeader(4) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  206.          SubItemIndex    =   3
  207.          Text            =   "状态"
  208.          Object.Width           =   3387
  209.       EndProperty
  210.    End
  211. End
  212. Attribute VB_Name = "frmMain"
  213. Attribute VB_GlobalNameSpace = False
  214. Attribute VB_Creatable = False
  215. Attribute VB_PredeclaredId = True
  216. Attribute VB_Exposed = False
  217. 'Download by http://www.codefans.net
  218. Private lC As Integer
  219. Public Blk As String
  220. Private a_RemA(1000) As String
  221. Private a_LocP(1000) As String
  222. Private a_RemP(1000) As String
  223. Private a_Count As Long
  224. Public Function RefreshTable(Optional force As Boolean = False)
  225. On Error Resume Next
  226. Dim tcpt As MIB_TCPTABLE, l As Long
  227. Dim x As Integer, i As Integer
  228. Dim RemA As String, LocP As String, RemP As String
  229. Dim state As Integer
  230. l = Len(MIB_TCPTABLE)
  231. GetTcpTable tcpt, l, 0
  232. x = tcpt.dwNumEntries
  233. If x < lC Or x > lC Or force Then
  234.     lC = x
  235.     
  236.     ListView1.ListItems.Clear
  237.     
  238.     For i = 0 To x - 1
  239.     
  240.         RemA = GetAscIP(tcpt.table(i).dwRemoteAddr)
  241.         RemP = ntohs(tcpt.table(i).dwRemotePort)
  242.         LocP = ntohs(tcpt.table(i).dwLocalPort)
  243.         
  244.         state = tcpt.table(i).dwState
  245.         
  246.         If state = 2 Then
  247.         
  248.             If Toolbar1.Buttons(4).Caption = "active" Then
  249.         
  250.                 ListView1.ListItems.Add , "x" & i, "n/a"
  251.                 ListView1.ListItems(ListView1.ListItems.Count).SubItems(1) = "n/a"
  252.                 ListView1.ListItems(ListView1.ListItems.Count).SubItems(2) = LocP
  253.                 ListView1.ListItems(ListView1.ListItems.Count).SubItems(3) = modNetstat.IP_States(state)
  254.         
  255.             End If
  256.             
  257.         Else
  258.         
  259.             ListView1.ListItems.Add , "x" & i, RemA
  260.             ListView1.ListItems(ListView1.ListItems.Count).SubItems(1) = RemP
  261.             ListView1.ListItems(ListView1.ListItems.Count).SubItems(2) = LocP
  262.             ListView1.ListItems(ListView1.ListItems.Count).SubItems(3) = modNetstat.IP_States(state)
  263.         
  264.         End If
  265.     
  266.         CheckBlock RemA, RemP, LocP, state, i
  267.         
  268.     Next i
  269. End If
  270. End Function
  271. Private Sub Form_Load()
  272. Me.Hide
  273. DoEvents
  274. Blk = 1
  275. modNetstat.InitStates
  276. LoadSettings
  277. Hook Me.hwnd
  278. AddIconToTray Me.hwnd, Me.Icon, Me.Icon.Handle, "Spyder Personal Firewall"
  279. RefreshTable
  280. Me.Hide
  281. End Sub
  282. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  283. Cancel = 1
  284. If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "options", "warnsys") <> "1" Then frmWarnSys.Show
  285. Me.Hide
  286. End Sub
  287. Private Sub Form_Unload(Cancel As Integer)
  288. Call Form_QueryUnload(0, 0)
  289. End Sub
  290. Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
  291. If Button = 2 And ListView1.ListItems.Count > 0 Then
  292.     frmMain.PopupMenu frmMenu.mnuConn
  293. End If
  294. End Sub
  295. Private Sub Timer1_Timer()
  296. Text1 = ListView1.ColumnHeaders(1).Width & " - " & ListView1.ColumnHeaders(2).Width & " - " & ListView1.ColumnHeaders(3).Width & " - " & ListView1.ColumnHeaders(4).Width
  297. End Sub
  298. Private Sub tmrRefresh_Timer()
  299. RefreshTable
  300. End Sub
  301. Public Function CheckBlock(RemA As String, RemP As String, LocP As String, state As Integer, i As Integer)
  302. On Error Resume Next
  303. Dim tcpt As MIB_TCPTABLE
  304. Dim l As Long
  305. Dim x As Long
  306. Dim b As Boolean, a As Boolean
  307. Dim lvl As Long
  308. If frmOptions.Check1.Value = 1 Then
  309.     If Left(RemA, 7) = "192.168" Then Exit Function
  310.     If Left(RemA, 3) = "10." Then Exit Function
  311. End If
  312. For x = 0 To a_Count - 1
  313.     If a_RemA(x) = RemA Then Exit Function
  314.     If a_RemP(x) = RemP Then Exit Function
  315.     If a_LocP(x) = LocP Then Exit Function
  316. Next x
  317. 'modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockip", RemA) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockrp", Str(RemP)) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blocklp", Str(LocP)) = "1"
  318. 'modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockip", RemA) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockrp", RemP) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blocklp", LocP) <> "0"
  319. lvl = frmOptions.Slider1
  320. If lvl = 1 Then
  321.     If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockip", RemA) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockrp", Str(RemP)) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blocklp", Str(LocP)) = "1" Then b = True
  322.     If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockip", RemA) <> "0" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockrp", RemP) <> "0" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blocklp", LocP) <> "0" Then a = True
  323. ElseIf lvl = 2 Then
  324.     If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockip", RemA) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockrp", Str(RemP)) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blocklp", Str(LocP)) = "1" Then b = True
  325.     If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockip", RemA) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockrp", RemP) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blocklp", LocP) <> "0" Then a = True
  326. ElseIf lvl = 3 Then
  327.     If IsTrojan(LocP) And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockip", RemA) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blockrp", RemP) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "blocklp", LocP) <> "0" Then a = True
  328.     If a = False And IsTrojan(LocP) Then a = True
  329. End If
  330. If state <> 2 Then
  331.     If b Then
  332.     
  333.         l = Len(MIB_TCPTABLE)
  334.         GetTcpTable tcpt, l, 0
  335.     
  336.         tcpt.table(i).dwState = 12
  337.         SetTcpEntry tcpt.table(i)
  338.         DoEvents
  339.         
  340.         Log RemA, RemP, LocP, "disconnected blocked connection"
  341.     
  342.     ElseIf a Then
  343.             
  344.         Dim z As New frmAlert
  345.         
  346.         z.t = i
  347.         z.RemA = RemA
  348.         z.RemP = RemP
  349.         z.LocP = LocP
  350.         
  351.         z.t = a_Count
  352.         a_RemA(a_Count) = RemA
  353.         a_RemP(a_Count) = RemA
  354.         a_LocP(a_Count) = RemA
  355.         
  356.         a_Count = a_Count + 1
  357.         
  358.         z.b_Type = 1
  359.         
  360.         Load z
  361.         DoEvents
  362.         
  363.     End If
  364. End If
  365. End Function
  366. Public Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
  367. Select Case Button.Index
  368.     Case 1
  369.     
  370.         If Button.Caption = "stop" Then
  371.         
  372.             Button.Caption = "stopped"
  373.             Button.ToolTipText = "resume monitoring"
  374.             tmrRefresh.Enabled = False
  375.             
  376.         Else
  377.         
  378.             Button.Caption = "stop"
  379.             Button.ToolTipText = "stop monitoring"
  380.             tmrRefresh.Enabled = True
  381.             
  382.         End If
  383.     
  384.     Case 2
  385.     
  386.         RefreshTable
  387.     
  388.     Case 4
  389.     
  390.         If Button.Caption = "active" Then
  391.         
  392.             Button.Caption = "all"
  393.             Button.ToolTipText = "show all connections"
  394.             RefreshTable True
  395.             
  396.         Else
  397.         
  398.             Button.Caption = "active"
  399.             Button.ToolTipText = "show active connections only"
  400.             RefreshTable True
  401.             
  402.         End If
  403.         
  404.         modReg.bSetRegValue HKEY_LOCAL_MACHINE, SREG & "options", "active", Toolbar1.Buttons(4).Value
  405.     
  406.     Case 5
  407.         
  408.         frmOptions.Show
  409.         frmOptions.SSTab1.Tab = 2
  410.     
  411.     Case 7
  412.         
  413.         frmOptions.Show
  414.         frmOptions.SSTab1.Tab = 0
  415.         
  416.     Case 8
  417.         
  418.         frmOptions.Show
  419.         frmOptions.SSTab1.Tab = 1
  420.     
  421.     
  422. End Select
  423. End Sub
  424. Public Sub SysTray()
  425.        
  426. If Me.Visible = True Then
  427.     Me.Hide
  428. Else
  429.     Me.Show
  430.     SetFGWindow Me.hwnd, True
  431.     
  432. End If
  433. End Sub
  434. Public Sub SysTray2()
  435. PopupMenu frmMenu.mnuMain, vbPopupMenuRightButton
  436. End Sub
  437. Public Sub ShiftAlertList(t As Long)
  438. Dim i As Long
  439. For i = t + 1 To a_Count - 1
  440.     a_RemA(i - 1) = a_RemA(i)
  441.     a_RemP(i - 1) = a_RemP(i)
  442.     a_LocP(i - 1) = a_LocP(i)
  443. Next i
  444. a_Count = a_Count - 1
  445. End Sub
  446. Public Function IsTrojan(port) As Boolean
  447. Dim ff As Long
  448. Dim p As Long, l As String
  449. Dim po As String, de As String
  450. ff = FreeFile
  451. Open App.Path & "trojan.dat" For Input As #ff
  452. Do Until EOF(ff)
  453.     Line Input #ff, l
  454.     
  455.     p = InStr(1, l, Chr(1))
  456.     po = Left(l, p - 1)
  457.     If po = port Then IsTrojan = True: Close #ff: Exit Function
  458. Loop
  459. Close #ff
  460. End Function
  461. Public Function GetTrojan(port) As String
  462. Dim ff As Long
  463. Dim p As Long, l As String
  464. Dim po As String, de As String
  465. ff = FreeFile
  466. Open App.Path & "trojan.dat" For Input As #ff
  467. Do Until EOF(ff)
  468.     Line Input #ff, l
  469.     
  470.     p = InStr(1, l, Chr(1))
  471.     po = Left(l, p - 1)
  472.     l = Right(l, Len(l) - p)
  473.     p = InStr(1, l, Chr(1))
  474.     de = Left(l, p - 1)
  475.     If po = port Then GetTrojan = de: Close #ff: Exit Function
  476. Loop
  477. Close #ff
  478. End Function