www.pudn.com > ·À»ðǽ´úÂë.rar > frmMain.frm


VERSION 5.00 
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX" 
Begin VB.Form frmMain  
   BackColor       =   &H80000016& 
   BorderStyle     =   1  'Fixed Single 
   Caption         =   "Spyder Personal Firewall" 
   ClientHeight    =   4380 
   ClientLeft      =   45 
   ClientTop       =   540 
   ClientWidth     =   5895 
   BeginProperty Font  
      Name            =   "Tahoma" 
      Size            =   8.25 
      Charset         =   0 
      Weight          =   400 
      Underline       =   0   'False 
      Italic          =   0   'False 
      Strikethrough   =   0   'False 
   EndProperty 
   Icon            =   "frmMain.frx":0000 
   LinkTopic       =   "Form1" 
   MaxButton       =   0   'False 
   ScaleHeight     =   4380 
   ScaleWidth      =   5895 
   StartUpPosition =   3  'Windows Default 
   Begin MSComctlLib.Toolbar Toolbar1  
      Align           =   1  'Align Top 
      Height          =   630 
      Left            =   0 
      TabIndex        =   1 
      Top             =   0 
      Width           =   5895 
      _ExtentX        =   10398 
      _ExtentY        =   1111 
      ButtonWidth     =   1111 
      ButtonHeight    =   1058 
      Appearance      =   1 
      Style           =   1 
      ImageList       =   "imgCold" 
      HotImageList    =   "imgHot" 
      _Version        =   393216 
      BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628}  
         NumButtons      =   8 
         BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628}  
            Caption         =   "stop" 
            Object.ToolTipText     =   "stop monitoring" 
            ImageIndex      =   1 
            Style           =   1 
         EndProperty 
         BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628}  
            Caption         =   "refresh" 
            Object.ToolTipText     =   "refresh the connections list" 
            ImageIndex      =   2 
         EndProperty 
         BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628}  
            Style           =   3 
         EndProperty 
         BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628}  
            Caption         =   "active" 
            Object.ToolTipText     =   "show active connections only" 
            ImageIndex      =   3 
            Style           =   1 
         EndProperty 
         BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628}  
            Caption         =   "options" 
            Object.ToolTipText     =   "show the options form" 
            ImageIndex      =   4 
         EndProperty 
         BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628}  
            Style           =   3 
         EndProperty 
         BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628}  
            Caption         =   "block" 
            Object.ToolTipText     =   "view and edit the blocking list" 
            ImageIndex      =   5 
         EndProperty 
         BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628}  
            Caption         =   "log" 
            Object.ToolTipText     =   "view the log" 
            ImageIndex      =   6 
         EndProperty 
      EndProperty 
   End 
   Begin MSComctlLib.ImageList imgHot  
      Left            =   180 
      Top             =   1800 
      _ExtentX        =   1005 
      _ExtentY        =   1005 
      BackColor       =   -2147483643 
      ImageWidth      =   20 
      ImageHeight     =   20 
      MaskColor       =   12632256 
      _Version        =   393216 
      BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628}  
         NumListImages   =   6 
         BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":038A 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":08E6 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":0E42 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":1296 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":17F2 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":1D4E 
            Key             =   "" 
         EndProperty 
      EndProperty 
   End 
   Begin MSComctlLib.ImageList imgCold  
      Left            =   180 
      Top             =   1200 
      _ExtentX        =   1005 
      _ExtentY        =   1005 
      BackColor       =   -2147483643 
      ImageWidth      =   20 
      ImageHeight     =   20 
      MaskColor       =   12632256 
      _Version        =   393216 
      BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628}  
         NumListImages   =   6 
         BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":22AA 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":2806 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":2D62 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":31B6 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":3712 
            Key             =   "" 
         EndProperty 
         BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628}  
            Picture         =   "frmMain.frx":3C6E 
            Key             =   "" 
         EndProperty 
      EndProperty 
   End 
   Begin VB.Timer tmrRefresh  
      Interval        =   250 
      Left            =   180 
      Top             =   720 
   End 
   Begin MSComctlLib.ListView ListView1  
      Height          =   3615 
      Left            =   37 
      TabIndex        =   0 
      Top             =   720 
      Width           =   5820 
      _ExtentX        =   10266 
      _ExtentY        =   6376 
      View            =   3 
      LabelWrap       =   -1  'True 
      HideSelection   =   -1  'True 
      _Version        =   393217 
      ForeColor       =   -2147483640 
      BackColor       =   -2147483643 
      BorderStyle     =   1 
      Appearance      =   1 
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}  
         Name            =   "Tahoma" 
         Size            =   8.25 
         Charset         =   0 
         Weight          =   400 
         Underline       =   0   'False 
         Italic          =   0   'False 
         Strikethrough   =   0   'False 
      EndProperty 
      NumItems        =   4 
      BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628}  
         Text            =   "Remote IP" 
         Object.Width           =   2540 
      EndProperty 
      BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628}  
         SubItemIndex    =   1 
         Text            =   "Remote Port" 
         Object.Width           =   1905 
      EndProperty 
      BeginProperty ColumnHeader(3) {BDD1F052-858B-11D1-B16A-00C0F0283628}  
         SubItemIndex    =   2 
         Text            =   "Local Port" 
         Object.Width           =   1905 
      EndProperty 
      BeginProperty ColumnHeader(4) {BDD1F052-858B-11D1-B16A-00C0F0283628}  
         SubItemIndex    =   3 
         Text            =   "State" 
         Object.Width           =   3387 
      EndProperty 
   End 
End 
Attribute VB_Name = "frmMain" 
Attribute VB_GlobalNameSpace = False 
Attribute VB_Creatable = False 
Attribute VB_PredeclaredId = True 
Attribute VB_Exposed = False 
Private lC As Integer 
Public Blk As String 
 
Private a_RemA(1000) As String 
Private a_LocP(1000) As String 
Private a_RemP(1000) As String 
 
Private a_Count As Long 
 
Public Function RefreshTable(Optional force As Boolean = False) 
 
On Error Resume Next 
 
Dim tcpt As MIB_TCPTABLE, l As Long 
Dim x As Integer, i As Integer 
Dim RemA As String, LocP As String, RemP As String 
Dim state As Integer 
 
l = Len(MIB_TCPTABLE) 
GetTcpTable tcpt, l, 0 
x = tcpt.dwNumEntries 
 
If x < lC Or x > lC Or force Then 
 
    lC = x 
     
    ListView1.ListItems.Clear 
     
    For i = 0 To x - 1 
     
        RemA = GetAscIP(tcpt.table(i).dwRemoteAddr) 
        RemP = ntohs(tcpt.table(i).dwRemotePort) 
        LocP = ntohs(tcpt.table(i).dwLocalPort) 
         
        state = tcpt.table(i).dwState 
         
        If state = 2 Then 
         
            If Toolbar1.Buttons(4).Caption = "active" Then 
         
                ListView1.ListItems.Add , "x" & i, "n/a" 
                ListView1.ListItems(ListView1.ListItems.Count).SubItems(1) = "n/a" 
                ListView1.ListItems(ListView1.ListItems.Count).SubItems(2) = LocP 
                ListView1.ListItems(ListView1.ListItems.Count).SubItems(3) = modNetstat.IP_States(state) 
         
            End If 
             
        Else 
         
            ListView1.ListItems.Add , "x" & i, RemA 
            ListView1.ListItems(ListView1.ListItems.Count).SubItems(1) = RemP 
            ListView1.ListItems(ListView1.ListItems.Count).SubItems(2) = LocP 
            ListView1.ListItems(ListView1.ListItems.Count).SubItems(3) = modNetstat.IP_States(state) 
         
        End If 
     
        CheckBlock RemA, RemP, LocP, state, i 
         
    Next i 
 
End If 
 
End Function 
 
Private Sub Form_Load() 
 
Me.Hide 
DoEvents 
 
Blk = 1 
 
modNetstat.InitStates 
LoadSettings 
Hook Me.hwnd 
AddIconToTray Me.hwnd, Me.Icon, Me.Icon.Handle, "Spyder Personal Firewall" 
 
RefreshTable 
 
Me.Hide 
 
End Sub 
 
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 
Cancel = 1 
If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\options", "warnsys") <> "1" Then frmWarnSys.Show 
Me.Hide 
End Sub 
 
Private Sub Form_Unload(Cancel As Integer) 
Call Form_QueryUnload(0, 0) 
End Sub 
 
Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) 
If Button = 2 And ListView1.ListItems.Count > 0 Then 
    frmMain.PopupMenu frmMenu.mnuConn 
End If 
End Sub 
 
Private Sub Timer1_Timer() 
Text1 = ListView1.ColumnHeaders(1).Width & " - " & ListView1.ColumnHeaders(2).Width & " - " & ListView1.ColumnHeaders(3).Width & " - " & ListView1.ColumnHeaders(4).Width 
End Sub 
 
Private Sub tmrRefresh_Timer() 
 
RefreshTable 
 
End Sub 
 
Public Function CheckBlock(RemA As String, RemP As String, LocP As String, state As Integer, i As Integer) 
 
On Error Resume Next 
Dim tcpt As MIB_TCPTABLE 
Dim l As Long 
Dim x As Long 
Dim b As Boolean, a As Boolean 
Dim lvl As Long 
 
If frmOptions.Check1.Value = 1 Then 
 
    If Left(RemA, 7) = "192.168" Then Exit Function 
    If Left(RemA, 3) = "10." Then Exit Function 
 
End If 
 
For x = 0 To a_Count - 1 
 
    If a_RemA(x) = RemA Then Exit Function 
    If a_RemP(x) = RemP Then Exit Function 
    If a_LocP(x) = LocP Then Exit Function 
 
Next x 
 
'modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\ip", RemA) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\rp", Str(RemP)) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\lp", Str(LocP)) = "1" 
'modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\ip", RemA) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\rp", RemP) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\lp", LocP) <> "0" 
 
lvl = frmOptions.Slider1 
 
If lvl = 1 Then 
 
    If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\ip", RemA) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\rp", Str(RemP)) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\lp", Str(LocP)) = "1" Then b = True 
    If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\ip", RemA) <> "0" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\rp", RemP) <> "0" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\lp", LocP) <> "0" Then a = True 
 
ElseIf lvl = 2 Then 
 
    If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\ip", RemA) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\rp", Str(RemP)) = "1" Or modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\lp", Str(LocP)) = "1" Then b = True 
    If modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\ip", RemA) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\rp", RemP) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\lp", LocP) <> "0" Then a = True 
 
ElseIf lvl = 3 Then 
 
    If IsTrojan(LocP) And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\ip", RemA) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\rp", RemP) <> "0" And modReg.bGetRegValue(HKEY_LOCAL_MACHINE, SREG & "\block\lp", LocP) <> "0" Then a = True 
    If a = False And IsTrojan(LocP) Then a = True 
 
End If 
 
If state <> 2 Then 
 
    If b Then 
     
        l = Len(MIB_TCPTABLE) 
        GetTcpTable tcpt, l, 0 
     
        tcpt.table(i).dwState = 12 
        SetTcpEntry tcpt.table(i) 
        DoEvents 
         
        Log RemA, RemP, LocP, "disconnected blocked connection" 
     
    ElseIf a Then 
             
        Dim z As New frmAlert 
         
        z.t = i 
        z.RemA = RemA 
        z.RemP = RemP 
        z.LocP = LocP 
         
        z.t = a_Count 
        a_RemA(a_Count) = RemA 
        a_RemP(a_Count) = RemA 
        a_LocP(a_Count) = RemA 
         
        a_Count = a_Count + 1 
         
        z.b_Type = 1 
         
        Load z 
        DoEvents 
         
    End If 
 
End If 
 
End Function 
 
Public Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 
 
Select Case Button.Index 
 
    Case 1 
     
        If Button.Caption = "stop" Then 
         
            Button.Caption = "stopped" 
            Button.ToolTipText = "resume monitoring" 
            tmrRefresh.Enabled = False 
             
        Else 
         
            Button.Caption = "stop" 
            Button.ToolTipText = "stop monitoring" 
            tmrRefresh.Enabled = True 
             
        End If 
     
    Case 2 
     
        RefreshTable 
     
    Case 4 
     
        If Button.Caption = "active" Then 
         
            Button.Caption = "all" 
            Button.ToolTipText = "show all connections" 
            RefreshTable True 
             
        Else 
         
            Button.Caption = "active" 
            Button.ToolTipText = "show active connections only" 
            RefreshTable True 
             
        End If 
         
        modReg.bSetRegValue HKEY_LOCAL_MACHINE, SREG & "\options", "active", Toolbar1.Buttons(4).Value 
     
    Case 5 
         
        frmOptions.Show 
        frmOptions.SSTab1.Tab = 2 
     
    Case 7 
         
        frmOptions.Show 
        frmOptions.SSTab1.Tab = 0 
         
    Case 8 
         
        frmOptions.Show 
        frmOptions.SSTab1.Tab = 1 
     
     
End Select 
 
End Sub 
 
Public Sub SysTray() 
        
If Me.Visible = True Then 
 
    Me.Hide 
 
Else 
 
    Me.Show 
    SetFGWindow Me.hwnd, True 
     
End If 
 
End Sub 
 
Public Sub SysTray2() 
 
PopupMenu frmMenu.mnuMain, vbPopupMenuRightButton 
 
End Sub 
 
Public Sub ShiftAlertList(t As Long) 
 
Dim i As Long 
 
For i = t + 1 To a_Count - 1 
 
    a_RemA(i - 1) = a_RemA(i) 
    a_RemP(i - 1) = a_RemP(i) 
    a_LocP(i - 1) = a_LocP(i) 
 
Next i 
 
a_Count = a_Count - 1 
 
End Sub 
 
Public Function IsTrojan(port) As Boolean 
 
Dim ff As Long 
Dim p As Long, l As String 
Dim po As String, de As String 
 
ff = FreeFile 
 
Open App.Path & "\trojan.dat" For Input As #ff 
 
Do Until EOF(ff) 
 
    Line Input #ff, l 
     
    p = InStr(1, l, Chr(1)) 
    po = Left(l, p - 1) 
 
    If po = port Then IsTrojan = True: Close #ff: Exit Function 
 
Loop 
 
Close #ff 
 
End Function 
 
Public Function GetTrojan(port) As String 
 
Dim ff As Long 
Dim p As Long, l As String 
Dim po As String, de As String 
 
ff = FreeFile 
 
Open App.Path & "\trojan.dat" For Input As #ff 
 
Do Until EOF(ff) 
 
    Line Input #ff, l 
     
    p = InStr(1, l, Chr(1)) 
    po = Left(l, p - 1) 
    l = Right(l, Len(l) - p) 
    p = InStr(1, l, Chr(1)) 
    de = Left(l, p - 1) 
 
    If po = port Then GetTrojan = de: Close #ff: Exit Function 
 
Loop 
 
Close #ff 
 
End Function