PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VB.Net Socks5 [Source]



Anatoxis
30.05.2010, 23:59
Neue Class erstellen:
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading
Imports System.Net.Sockets
Imports System.Collections.Generic

Public Class Socks5
Private socksClient As TcpClient
Private serverClient As TcpClient
Private SOCKS_VERSION As Byte = 5
Private SOCKS_NOAUTH As Byte = 0
Private SOCKS_REPLYSUCCESS As Byte = 0
Private SOCKS_IPV4ADDR As Byte = 1
Private SOCKS_DNSNAME As Byte = 3

Public Sub New(ByVal client As TcpClient)
socksClient = client
End Sub

Public Sub Work()
Dim socksClientStream As NetworkStream = socksClient.GetStream()

Dim authFields As Byte() = New Byte(1) {}
socksClientStream.Read(authFields, 0, 2)

Dim methods As Byte() = New Byte(authFields(1) - 1) {}
socksClientStream.Read(methods, 0, methods.Length)

Dim selectedAuthMethod As Byte() = {SOCKS_VERSION, SOCKS_NOAUTH}
socksClientStream.Write(selectedAuthMethod, 0, 2)
'tu le declare ou le port ? lol jai pas fait attention
Dim requestFields As Byte() = New Byte(3) {}
socksClientStream.Read(requestFields, 0, 4)

Dim connection_target As String = ""
Dim target_port As Integer
If requestFields(3) = SOCKS_IPV4ADDR Then
Dim target_data As Byte() = New Byte(3) {}
socksClientStream.Read(target_data, 0, 4)
Dim ip As New IPAddress(target_data)
connection_target = ip.ToString()
ElseIf requestFields(3) = SOCKS_DNSNAME Then
Dim domainname_length As Byte() = New Byte(0) {}
socksClientStream.Read(domainname_length, 0, 1)
Dim target_data As Byte() = New Byte(domainname_length(0) - 1) {}
socksClientStream.Read(target_data, 0, domainname_length(0))
connection_target = Encoding.[Default].GetString(target_data)
Else
End If

If connection_target <> "" Then

Dim bintargetport As Byte() = New Byte(1) {}
socksClientStream.Read(bintargetport, 0, 2)
Dim tmp_byteorder As Byte() = New Byte(1) {}
tmp_byteorder(0) = bintargetport(1)
tmp_byteorder(1) = bintargetport(0)
target_port = CInt(BitConverter.ToUInt16(tmp_byteorder, 0))

serverClient = New TcpClient(connection_target, target_port)

If serverClient.Connected Then
Dim reply As Byte() = New Byte(9) {}
reply(0) = SOCKS_VERSION
reply(1) = SOCKS_REPLYSUCCESS
reply(2) = 0
reply(3) = 1
Dim ip As String = serverClient.Client.LocalEndPoint.ToString().Split (":"c)(0)
Dim ipaddr As IPAddress = IPAddress.Parse(ip)
reply(4) = ipaddr.GetAddressBytes()(0)
reply(5) = ipaddr.GetAddressBytes()(1)
reply(6) = ipaddr.GetAddressBytes()(2)
reply(7) = ipaddr.GetAddressBytes()(3)
Dim port As UShort = UShort.Parse(serverClient.Client.LocalEndPoint.ToS tring().Split(":"c)(1))

reply(8) = BitConverter.GetBytes(DirectCast(port, UInt16))(0)
reply(9) = BitConverter.GetBytes(DirectCast(port, UInt16))(1)
socksClientStream.Write(reply, 0, 10)

Dim serverClientStream As NetworkStream = serverClient.GetStream()
Dim ioError As Boolean = False
While serverClient.Connected AndAlso socksClient.Connected AndAlso Not ioError
System.Threading.Thread.Sleep(100)
Try
If socksClientStream.DataAvailable Then
Dim readbuffer As Byte() = New Byte(9999) {}
Dim count_read As Integer = socksClientStream.Read(readbuffer, 0, 10000)
Dim read_data As Byte() = New Byte(count_read - 1) {}
Array.Copy(readbuffer, read_data, count_read)
serverClientStream.Write(read_data, 0, read_data.Length)
End If
If serverClientStream.DataAvailable Then
Dim receivebuffer As Byte() = New Byte(9999) {}
Dim count_receive As Integer = serverClientStream.Read(receivebuffer, 0, 10000)
Dim receive_data As Byte() = New Byte(count_receive - 1) {}
Array.Copy(receivebuffer, receive_data, count_receive)
socksClientStream.Write(receive_data, 0, receive_data.Length)
End If
Catch
ioError = True
End Try
End While

' try to close connections if yet connected
If socksClient.Connected Then
socksClient.Close()
End If
If serverClient.Connected Then
serverClient.Close()
End If
Else
End If
Else
End If
End Sub
End Class



Form1 load oder halt einen Call:
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading
Imports System.Net.Sockets
Imports System.Collections.Generic
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim server As New TcpListener(1900) ' donc tu veut transfomer quoi ?
server.Start()
While True
Dim client As TcpClient = server.AcceptTcpClient()
Dim S As New Socks5(client)
Dim T As New Thread(New ThreadStart(AddressOf S.Work))
T.Start()
End While
End Sub
End Class

Shini
31.05.2010, 00:01
könntest du das ganze mal in nen spoiler packen ?!.. und evtl mal n bissle was kommentieren oder soo ?!

denn einfach nen src kopieren und posten is n bissle stumpf und das kann jeder selbst ..

Anatoxis
31.05.2010, 14:31
omg da Postet man netter weise einen Source und dann wieder solche kinder Kommentare! Nehm ihn so hin oder lass es sein...

Southpark
31.05.2010, 14:34
Selber Kind das Sources kopiert um seine Posts zu pushen und in den Bm zu kommen..
Außerdem weiß man überhaupt nicht was die Sources sein sollen denn VB.net Socks5 sagt ja sehr viel aus isses nen reserve socks usw... socks client bla bla

Und wenn du es Netterweiße gepostet hast dann mein ich das man dort noch eventuell ne Beschreibung hinpfeffern kann.

Einfach nen Source hinklatschen bringt keinem was.

ocz
31.05.2010, 14:35
omg da Postet man netter weise einen Source und dann wieder solche kinder Kommentare! Nehm ihn so hin oder lass es sein...

Hahahahaha.
Ich lolierte hart. Jeder, der die Source verstehen will, und nicht so wie du nur kopieren, der wünscht sich logischerweise Kommentare.
DU hast mal gar nichts zu melden, da du die Src nicht mal selber geschrieben hast. Abgesehen davon sieht man an dem Beispiel wieder mal gut, wie lame .NET ist.


Edit: Nice job an denjenigen, der da die kleinen Stolpersteine gegen C&P eingefügt hat.

Shini
31.05.2010, 14:38
warum kinderkommentare ?
was nutzt mir n source wenn ich den nicht versteh aber trotzdem was draus lernen will und dann nicht den gringsten ansatz habe/finde mich einzulesen ?-.-

und du postest bestimmt nicht einfach so die src's :
klick mich (http://free-hack.com/support/56637-frage.html#post453615)

da verweise ich dann doch wieder gern auf folgendes:



[...]Fragezeichen und Ausrufezeichen sind keine Rudeltiere![...]

naja hf und so -.-