elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  como reparto esto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como reparto esto?  (Leído 1,520 veces)
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
como reparto esto?
« en: 2 Septiembre 2007, 18:52 pm »

hola

tengo un problema... estoy haciendo un programa para captar la pantalla del escritorio junto con un keylogger... como lo hacen algunos troyanos.... el problema que tengo es que no logro repartir la transferencia de datos

por ejemplo, tengo en el cliente esto

Código:
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim nombr() As String, cad As String
ws.GetData datos
If Left(datos, 3) = "env" Then
nombr = Split(datos, "-")
cad = nombr(1)
Text1.txtEnviar = cad
End If
If Left(datos, 7) = "archivo" Then
    dato = Split(datos, "|")
    filesize = dato(1)
    redi = filesize / 20000
    redi = redi + 2
    ReDim archivo(redi)
   
    Open App.path & "\Captura.bmp" For Binary As #1
    enviaraccion "enviar"
    datos3 = ""
Else
If Len(archivo(i)) < 20000 Then
archivo(i) = archivo(i) + datos
tamaño = tamaño + Len(datos)
Else
i = i + 1
archivo(i) = archivo(i) + datos
tamaño = tamaño + Len(datos)
Put #1, , archivo(i - 1)
archivo(i - 1) = ""
End If
If tamaño = filesize Then
Put #1, , archivo(i)
tamaño = 0
archivo(i) = ""
Image1.Picture = LoadPicture(App.path & "\Captura.bmp")
Close #1
i = 0
End If
DoEvents
End If
End sub


El problema es que si coloco todo esto no funcionan los dos... solo funciona 1

ya que si unicamente coloco esto... el keylogger funciona

Código:
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim nombr() As String, cad As String
ws.GetData datos
If Left(datos, 3) = "env" Then
nombr = Split(datos, "-")
cad = nombr(1)
Text1.txtEnviar = cad
End If
End sub


Y si unicamente coloco esto... puedo capturar la pantalla sin problemas...

Código:
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
ws.GetData datos
If Left(datos, 7) = "archivo" Then
    dato = Split(datos, "|")
    filesize = dato(1)
    redi = filesize / 20000
    redi = redi + 2
    ReDim archivo(redi)
   
    Open App.path & "\Captura.bmp" For Binary As #1
    enviaraccion "enviar"
    datos3 = ""
Else
If Len(archivo(i)) < 20000 Then
archivo(i) = archivo(i) + datos
tamaño = tamaño + Len(datos)
Else
i = i + 1
archivo(i) = archivo(i) + datos
tamaño = tamaño + Len(datos)
Put #1, , archivo(i - 1)
archivo(i - 1) = ""
End If
If tamaño = filesize Then
Put #1, , archivo(i)
tamaño = 0
archivo(i) = ""
Image1.Picture = LoadPicture(App.path & "\Captura.bmp")
Close #1
i = 0
End If
DoEvents
End If
End sub


Pero si coloco los dos juntos... solo puedo utilizar 1 de ellos... porke si hago una captura de pantalla todo funciona bien, pero si utilizo el keylogger me aparece un mensaje que dice que una parte de codigo esta fuera de intervalo....

Código:
If Len(archivo(i)) < 20000 Then

como puedo hacer para separarlos?...

ya utilize...

Código:
Exit Sub  ---> para separar el codigo del keylogger y del codigo para capturar la pantalla

Pero solo me deja utilizar uno de ellos...

Alguien tiene alguna idea...? Espero puedan ayudarme

Gracias   :P


« Última modificación: 2 Septiembre 2007, 18:55 pm por makuvex_linux » En línea

.                                 
odeONeSs

Desconectado Desconectado

Mensajes: 125


programo luego existo!


Ver Perfil
Re: como reparto esto?
« Respuesta #1 en: 2 Septiembre 2007, 18:57 pm »

Intentalo haciendolo con 2 sockets, uno para las capturas de pantalla y otro para el keyloger. Un saludo  ;D


En línea

Cambio de firma de prueba
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: como reparto esto?
« Respuesta #2 en: 2 Septiembre 2007, 19:08 pm »

hola

bueno.. de hecho asi ya lo tenia, pero lo que intento es que el programa unicamente habra un solo puerto, y que el anterior programa que tenia abria varios puertos pero los mensajes de los firewalls y antivirus te avisaban varias veces y si una vez es extraño, dos o mas es todavia mas extraño...y eso es lo que intento evitar...

o alguien sabe como puedo hacer esto sin tener que abrir tantos puertos con el socket...?
En línea

.                                 
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: como reparto esto?
« Respuesta #3 en: 3 Septiembre 2007, 05:37 am »

Mira por lo que veo el problema parece estar es como manejas los datos, lo que tenes que hacer es usar un buffer antes de separarlos por que lo que envias no siempre es lo que llega.

Para darte una idea lo que podes hacer es

usar "|" para indicar el final de un paquete y a su vez un "sub" delimitador para separar la informacion dentro del paquete.

cuando llega la informacion lo que haces es ponerla en el buffer

buffer = buffer & nuevos_datos

despues lo que haces es usar la funcion datos()= split(buffer,"|")
 
si lo que tenes en el buffer esta "completo" que no hay un paquete por la mitad al usar el split el ultimo dato "ubound(datos)" tendria que ser vbnullstring en ese caso  lo que haces es

for i = 0 to ubound(datos)
aca iria el if left(datos(i),3)= "env"
next
buffer= vbnullstring

y si el caso es que el ultimo paquete esta incompleto  ubound(datos)<>vbnullstring lo que haces es guardarlo 

for i = 0 to ubound(datos) -1
aca iria el if left(datos(i),3)= "env"
next
buffer= ubound(datos) & "|"

Bueno espero que sea de ayuda
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: como reparto esto?
« Respuesta #4 en: 3 Septiembre 2007, 07:35 am »

hola

hice mas o menos lo mismo y para que no interfiriera los datos ... los separe con select case y ya lo logre...

y asunto arreglado

o por lo menos hasta ahora... jeje..

gracias por la ayuda  ;D
En línea

.                                 
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Los anunciantes recurren el reparto de canales de TDT para evitar un duopolio
Noticias
wolfbcn 0 3,767 Último mensaje 26 Enero 2016, 14:40 pm
por wolfbcn
Correos reactiva el reparto de paquetes y amplía horarios
Noticias
El_Andaluz 1 1,324 Último mensaje 29 Abril 2020, 22:08 pm
por B€T€B€
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines