Imports System
Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Imports System.Threading
Public Class Connect
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
' NO ERORRI RAM
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Public port As UInteger
Public clientgen As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Public evento As New ManualResetEvent(False)
Public p As New AsyncCallback(AddressOf accetta)
Public Function bannaipbassolivello(ByVal ip As String, ByRef client As Socket) As Boolean
If Module1.impostazioni.arraysyn.Contains(ip) Then
Dim c As New Firewall
c.ip = ip
client.Close()
If Module1.impostazioni.sottoattacco Then
c.manda = False
End If
c.banna()
Module1.protocol.connessionirifiutate += 1
Return True
Else
Module1.impostazioni.arraysyn.Add(ip)
End If
Return False
End Function
Public Sub bannasub(ByVal ip As String, ByRef chi As Socket)
Dim c As New Firewall
c.ip = ip
chi.Close()
If Module1.impostazioni.sottoattacco Then
c.manda = False
End If
c.banna()
Module1.protocol.connessionirifiutate += 1
End Sub
Public Sub accetta(ByVal ar As IAsyncResult)
evento.Set()
Dim us As New User
Try
us.time.Enabled = True
us.client = CType(ar.AsyncState, Socket).EndAccept(ar)
us.ip = CType(us.client.RemoteEndPoint, IPEndPoint).Address.ToString
If (us.client.Available - 5) Mod 7 <> 0 And us.client.Available <> 0 Then
Module1.impostazioni.accettaint += 1
If Module1.impostazioni.arrayset(28) = False Then GoTo nulla
If Module1.impostazioni.accettaint > Module1.protezione.spoofing Then
If Module1.impostazioni.sottoattacco = False Then
Module1.impostazioni.sottoattacco = True
Dim b As New Spoofing
b.connessioni = Module1.protocol.connessionirifiutate
b.porta = port
Dim thr As New Thread(AddressOf b.parti)
thr.Start()
End If
End If
bannasub(us.ip, us.client)
nulla:
Exit Sub
Else
If Module1.impostazioni.arrayset(29) Then
If bannaipbassolivello(us.ip, us.client) Then
Exit Sub
End If
End If
If Module1.impostazioni.banip Then
If Module1.controllasebannato(us.ip, us) Then
Module1.mandabot("Your IP Is Banned", us)
Module1.protocol.connessionirifiutate += 1
Module1.disconnettiuser(us)
Exit Sub
End If
End If
If Module1.impostazioni.arrayset(3) Then
If Module1.impostazioni.arrayprotected.Contains(us.ip) = False Then
Dim conto As UInteger
For Each asd As User In Module1.impostazioni.users
If asd.ip = us.ip Then
conto += 1
End If
Next
If conto > Module1.protezione.ip Then
Module1.mandabot("Il tuo IP è gia Presente in HUB", us)
Module1.altrobanip(us.ip)
Module1.mandaopchat("L'ip: " & us.ip & " è stato bannato, Double IP Control", us)
Module1.protocol.connessionirifiutate += 1
Module1.disconnettiuser(us)
Exit Sub
End If
End If
End If
If Module1.impostazioni.arrayset(12) Then
If Module1.impostazioni.arraysocks.Contains(us.ip) Then
Module1.mandabot("Non è Permesso l'uso dei Socks", us)
Module1.altrobanip(us.ip)
Module1.mandaopchat("L'ip: " & us.ip & " è stato bannato, Socks", us)
Module1.protocol.connessionirifiutate += 1
Module1.disconnettiuser(us)
Exit Sub
End If
End If
Module1.protocol.connessioniaccettate += 1
send(us, "$Lock EXTENDEDPROTOCOL::This_hub_was_written_by_TeNeBrA::CTRL[NoKey] Pk=Colossus|")
send(us, "$Supports NoHello NoGetINFO UserIP2 BotINFO Feed MCTo|")
us.client.BeginReceive(us.ReadBuffer, 0, us.ReadBuffer.Length, SocketFlags.None, New AsyncCallback(AddressOf ricevi), us)
End If
Catch
Module1.protocol.connessionirifiutate += 1
Module1.disconnettiuser(us)
End Try
End Sub
Public Sub ricevi(ByVal ar As IAsyncResult)
Dim us As User = CType(ar.AsyncState, User)
Try
us.temp &= Encoding.Default.GetString(us.ReadBuffer, 0, us.ReadBuffer.Length)
us.temp = us.temp.Replace(Chr(0), "")
If us.temp.Length = 0 Then
disconnettiuser(us)
Exit Sub
End If
If us.temp(0) = "|" Then
disconnettiuser(us)
Exit Sub
End If
Array.Clear(us.ReadBuffer, 0, us.ReadBuffer.Length)
If us.temp.Contains("$MyNick") And us.nick = "" Then
Module1.protocol.connessionirifiutate += 1
Module1.protocol.connessioniaccettate -= 1
Module1.disconnettiuser(us)
Module1.impostazioni.accettaint += 1
bannasub(us.ip, us.client)
Exit Sub
End If
annanz(us)
Thread.Sleep(10)
us.client.BeginReceive(us.ReadBuffer, 0, us.ReadBuffer.Length, SocketFlags.None, New AsyncCallback(AddressOf ricevi), us)
Catch
disconnettiuser(us)
End Try
End Sub
Public Sub annanz(ByRef us As User)
If us.temp.Length > 5000 Then
Module1.disconnettiuser(us)
Exit Sub
End If
If us.temp.EndsWith("|") Then
Module1.impostazioni.bandaricevuta += us.temp.Length
Module1.protocol.bytericevuti += us.temp.Length
Module1.dataarrival(us, us.temp)
us.temp = ""
End If
End Sub
Public Sub parti()
Try
clientgen.Bind(New IPEndPoint(IPAddress.Parse(Module1.impostazioni.ipparse), port))
clientgen.Listen(Module1.impostazioni.nmrsockets)
Dim thr As New Thread(AddressOf circola)
thr.Start()
Console.WriteLine("Start To Listen on port: " & port)
Catch
Console.WriteLine("Failed Listen on port: " & port)
End Try
End Sub
Public Sub circola()
While (Module1.impostazioni.avviato)
evento.Reset()
Try
If ce() = False Then
Exit While
End If
clientgen.BeginAccept(p, clientgen)
evento.WaitOne()
Catch
End Try
End While
evento.Close()
clientgen.Close()
End Sub
Public Function ce() As Boolean
If Not Module1.impostazioni.avviato Then Return False
For Each asd As String In Module1.impostazioni.arrayporte
If asd = port Then
Return True
End If
Next
Return False
End Function
End Class