Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: 50l3r en 14 Mayo 2009, 00:14 am



Título: Problemas con dataarrival
Publicado por: 50l3r en 14 Mayo 2009, 00:14 am
Veran, intento realizar un proyecto que recopile la mayor inforamcion posible del equipo remoto

estoy haciendo un server y un cliente

quiero que,cada dato que me mande, ejemplo, la ip, nombre de host, sistema operativo, me coloque cada cosa en su correspondiente textbox, la ip en un lado, el hostname en otro...etc

la cosa es que yo se coger los datos con el data arrival, pero como hago para que cada dato vaya a su textbox correspondiente? ya que todo llega de sopetón


gracias, me ayudariais mucho si me lo dijeseis


Título: Re: Problemas con dataarrival
Publicado por: seba123neo en 14 Mayo 2009, 02:46 am
me imagino que si envias todo junto como decis lo debes enviar con algun separador o algo...si lo envias con un separador despues hacer un Split()y mostras los datos del array en cada textbox...

saludos.


Título: Re: Problemas con dataarrival
Publicado por: YST en 14 Mayo 2009, 03:20 am
Generalmente se envia de esta manera

Desde el programa ue esta infectando el pc mandas:
Datos%)%NombrePC%)%Username ...

y en el programa que controla divides con split , usando el separador:
Código
  1. %)%

y luego comparas si el primer datos es "Datos"  agregas los demas datos a su lugar correspondiente


Título: Re: Problemas con dataarrival
Publicado por: el_c0c0 en 14 Mayo 2009, 05:42 am
Generalmente se envia de esta manera

Desde el programa ue esta infectando el pc mandas:
Datos%)%NombrePC%)%Username ...

y en el programa que controla divides con split , usando el separador:
Código
  1. %)%

y luego comparas si el primer datos es "Datos"  agregas los demas datos a su lugar correspondiente


%)% es algo arbitrario, podes usar chr(0) tambien, o lo que se te cante! el tema es que no se repita y que sea jodido que aparezca en la data que envias (para diferencia bien entre data y separador)

saludos


Título: Re: Problemas con dataarrival
Publicado por: 50l3r en 14 Mayo 2009, 11:48 am
este es mi codigo por ahora, este es el servidor:

Código:
Private Sub cdmescuchar_Click()
wsk.Close
wsk.Listen
lblstatus.Caption = "Escuchando..."
End Sub

Private Sub cmdcerrar_Click()
wsk.Close
lblstatus.Caption = "Apagado"
End Sub

Private Sub Form_Load()
wsk.LocalPort = 666
End Sub

Private Sub wsk_connectionRequest(ByVal requestID As Long)
If MsgBox(wsk.RemoteHostIP & "esta intentando conectarse", vbQuestion + vbYesNo, "Conexion entrante") = vbYes Then
wsk.Close
wsk.Accept requestID
Else
wsk.Close
Call cmdescuchar_click
End If
End Sub

Ahora que tendria que poner un evento, asi?

Código:
private Sub wsk_dataarrival(byval bytestotal as long)
'Aqui que tendria que poner?
end sub


lo que pasa es que, te llega la info con el delimitador %)% ok, luego usas split asi:

Código:
private sub wsk_dataarrival(byval bytestotal as long)
dim datos as string
Function Split(
   ByVal datos As String,
   Optional ByVal Delimiter As String = "%)%",
   Optional ByVal Limit As Integer = -1,
   Optional ByVal Compare As CompareMethod = CompareMethod.Binary
) As String()
wsk.getdata datos(0)
texip.text = datos(0)
ahi, si la ip fuese el primer dato cortado, me lo daria?


Título: Re: Problemas con dataarrival
Publicado por: 50l3r en 14 Mayo 2009, 16:27 pm
Bueno, excuso este doble post debido a que encontre la respuesta, asi ayudare mas a otras futuras dudas:

Para poder obtener los datos, necesitas separarlos, el cliente debe de mandar los datos con algun caracter separador, por ejemplo "--" de manera que los datos lleguen asi:

dato1--dato2--dato3

luego con la funcion split(datos, "--")

los separas y obtienes arrays, el primer dato es el array 0 y asi sucesivamente

un ejemplo:

Código:
Private Sub wsk_dataarrival(ByVal bytestotal As Long)
Dim datos As String
Dim trozos() As String
wsk.GetData datos
trozos = Split(datos, "%)%")
txt1 = trozos(0)
txt2 = trozos(1)
txt3 = trozos(2)
txt4 = trozos(3)
End Sub


Título: Re: Problemas con dataarrival
Publicado por: locot3 en 14 Mayo 2009, 16:33 pm
Buenas mira yo tambien tengo un programita que "recopila" info de otras Pcs' heheeh, y bueno para hacer lo que tu quieres te doy un ejemplo bien facil mira cuando mandes los datos desde el server ( osea el nombre de la PC o todo lo que quieras mandar ) en el server create una variable String y dentro de esa variable junta todos los datos que quieras mandar  ejemplo :

VarString = pcname & "+" & pcuser & "+" & pccpu ' y asi aumentas todo lo que quieras
winsock1.datasend VarString

eso va en el server cuando haces el DataSend , y en tu cliente cuando estas en el sector de DataArrival de tu winsock lo separas con el Split que ya te avian dicho antes

winsock.dataarrival buffer
divide=split(buffer,"+") ' ahi separa todo por el signo + q tu puedes cambiarlo por el q tu quieras
divide(0) sera igual a pcname
divide(1) sera igual a pcuser
divide(2) sera igual a pccpu

 y asi espero me ayas entendido!! por cierto el signo "+" lo puedes cambiar por el que tu quieras yo usso siempre ese porque rara ves aparece por ahi ;) saludos y suerte !!




Título: Re: Problemas con dataarrival
Publicado por: 50l3r en 14 Mayo 2009, 17:41 pm
si, ahora mismo uso este que me dijeron %)% que no creo que se use jeje

la informacion que me es mandada va desde el cliente al servidor

por cierto, estoy intentando hacer esto

creo en el cliente un filelist un drivelist y un dirlist y les conecto los 3, y luego intento mandarlos asi:

Código:
Private Sub Command1_Click()
Dim datos As String
datos = txthst & "%)%" & txtso & "%)%" & drv.Drive & "%)%" & Dir.Path & "%)%" & file.Path
wsk.SendData datos
End Sub

luego despues en el servidor se reciben asi:

Código:
Private Sub wsk_dataarrival(ByVal bytestotal As Long)
Dim datos As String
Dim trozos() As String
wsk.GetData datos
trozos = Split(datos, "%)%")
txthst = trozos(0)
txtso = trozos(1)
[b]drv.Drive = trozos(2)
Dir.Path = trozos(3)
File.Path = trozos(3)[/b]
End Sub

en el server he llamado a los objetos igual que en el cliente, y al asociarlos con los datos enviados del drv.drive, dir.path y file.path me pasa esto:

(http://img8.imageshack.us/img8/7980/pathi.jpg)


Título: Re: Problemas con dataarrival
Publicado por: YST en 14 Mayo 2009, 19:39 pm
El error sucede por que no existe la ruta que pones desde el server en el cliente

PD:por cierto leete un manual de una ves


Título: Re: Problemas con dataarrival
Publicado por: 50l3r en 14 Mayo 2009, 21:35 pm
ya me lei el de aprenda vb como si estuviera en primero pero ni siquiera toca controles winsock

me estoy leyendo manuales de todos lados antes de preguntar, no creo que por que pregunte haga daño

Citar
El error sucede por que no existe la ruta que pones desde el server en el cliente

aqui que te refieres, a que no hay un drivelist,dirlist y filelist con ese nombre? si,si lo hay, el error esta en otro lado, nose si te referiras a eso

gracias por tu ayuda


Título: Re: Problemas con dataarrival
Publicado por: BlackZeroX en 15 Mayo 2009, 03:24 am
si, ahora mismo uso este que me dijeron %)% que no creo que se use jeje

la informacion que me es mandada va desde el cliente al servidor

por cierto, estoy intentando hacer esto

creo en el cliente un filelist un drivelist y un dirlist y les conecto los 3, y luego intento mandarlos asi:

Código:
Private Sub Command1_Click()
Dim datos As String
datos = txthst & "%)%" & txtso & "%)%" & drv.Drive & "%)%" & Dir.Path & "%)%" & file.Path
wsk.SendData datos
End Sub

luego despues en el servidor se reciben asi:

Código:
Private Sub wsk_dataarrival(ByVal bytestotal As Long)
Dim datos As String
Dim trozos() As String
wsk.GetData datos
trozos = Split(datos, "%)%")
txthst = trozos(0)
txtso = trozos(1)
[b]drv.Drive = trozos(2)
Dir.Path = trozos(3)
File.Path = trozos(3)[/b]
End Sub

en el server he llamado a los objetos igual que en el cliente, y al asociarlos con los datos enviados del drv.drive, dir.path y file.path me pasa esto:

(http://img8.imageshack.us/img8/7980/pathi.jpg)

prueba tu string enviado imprimelo y si va todo bien pasalo a un control no te hace daño avriguar error por ti mismo de vez en cuando si no todo lo contrario te auto-enriqueses en todo aspecto.

P.D.: no digo que no preguntes, solo que intentes ver que datos realmente se estan enviando y resiviendo, no hagas todo de jalon haslo en partes y cuando cada parte este lista unelos asi es mas facil.¡!,... al ultimo deja la interface para que se vea bonita lo primero son los controles que interbienen, posteriormente sus acciones, entre otros, y por ultimo la interface bonita, si asi lo deseas (esto ultimo es solo un consejo).


Título: Re: Problemas con dataarrival
Publicado por: seba123neo en 15 Mayo 2009, 03:39 am
si apredes a debuggerte vos mismo no preguntas mas(en serio) busca sobre ese termino que no creo que sepasa lo que significa ni como se hace...


Título: Re: Problemas con dataarrival
Publicado por: 50l3r en 15 Mayo 2009, 12:07 pm
ok, gracias, voy a averiguar el porque

hare lo que me has dicho blackzero+ lo imprimire de forma local en un textbox, luego de manera remota y despues si funciona bien, lo pasare a el control correspondiente, haber si me funciona

sino debere pasar los path de directorios y ficheros del cliente a otro formato para poder enviarlos ya que me han dicho que los drivelist, dirlist y filelist no se pueden enviar

es eso verdad?


Título: Re: Problemas con dataarrival
Publicado por: BlackZeroX en 15 Mayo 2009, 21:00 pm
ok, gracias, voy a averiguar el porque

hare lo que me has dicho blackzero+ lo imprimire de forma local en un textbox, luego de manera remota y despues si funciona bien, lo pasare a el control correspondiente, haber si me funciona

sino debere pasar los path de directorios y ficheros del cliente a otro formato para poder enviarlos ya que me han dicho que los drivelist, dirlist y filelist no se pueden enviar

es eso verdad?

sus items si se pueden enviar

es como si manejaras un listbox o listview por decir algunos arecido

En este caso es practicamente lo mismo, realizas un bucle que pase TODOS los items de estos elementos a una variable tipo String (con su separacion entre cada uno de estos, ojo con eso) y ya posteriormente envias los datos, revisa la documentación de esos controles.

De igual forma puedes quitar esas dependencias feas con codigo y alivianar dicho Programa, en ete foro ya estan dichos codigos solo hay que buscarlos

Saludos, Dulces Lunas