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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  Administrar múltiples sockets
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Administrar múltiples sockets  (Leído 5,679 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Administrar múltiples sockets
« en: 11 Febrero 2014, 13:27 pm »

Hola a todos tengo una duda, como podría administrar múltiples clientes, me baso en la idea de Poison Ivy, Bifrost, entre otros rat.

Mi idea es crear un thread por cada conexión recibida y asignar un especie de identificador único y ese mismo identificador agregarlo a una tabla. Ahora cuando quiera realizar una acción en un servidor específico ¿cómo lo haría?

No existe alguna guía en donde se estructure la administración de conexiones?, saludos y gracias
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Administrar múltiples sockets
« Respuesta #1 en: 12 Febrero 2014, 11:54 am »

Un hilo por cada conexión no es escalable.
Luego para administrarlo solo necesitas tener una lista(Lista enlazada) de conexiones y en la interface grfica. pues con un listBox que cambie entre conexiones para que todo lo que hagas se realice sobre la conexión que esta actualmente seleccionada. Si quieres usar varias conexiones usa los i/o completion port que permiten a unos cuantos hilos manejar muchisimas conexiones de manera asíncrona

un saludo Ark

PD: ejemplo de iocp aqui
« Última modificación: 12 Febrero 2014, 11:58 am por Arkangel_0x7C5 » En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Administrar múltiples sockets
« Respuesta #2 en: 12 Febrero 2014, 15:17 pm »

Un hilo por cada conexión no es escalable.
Luego para administrarlo solo necesitas tener una lista(Lista enlazada) de conexiones y en la interface grfica. pues con un listBox que cambie entre conexiones para que todo lo que hagas se realice sobre la conexión que esta actualmente seleccionada. Si quieres usar varias conexiones usa los i/o completion port que permiten a unos cuantos hilos manejar muchisimas conexiones de manera asíncrona

un saludo Ark

PD: ejemplo de iocp aqui

Me ha quedado todo claro excepto el "No es escalable", a que te refieres con eso?, saludos (me diste una gran solución muchas gracias :) )
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Administrar múltiples sockets
« Respuesta #3 en: 12 Febrero 2014, 23:20 pm »

pues con lo de escalable me refiero a quecon forme aumentas el numero de conexiones e hilos vas gastando mas y mas recursos
Y llega un momento en que el SO esta mas tiempo cambiando de hilo que ejecutandolos

un saludo
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Administrar múltiples sockets
« Respuesta #4 en: 12 Febrero 2014, 23:31 pm »

Citar
pues con lo de escalable me refiero a quecon forme aumentas el numero de conexiones e hilos vas gastando mas y mas recursos
Y llega un momento en que el SO esta mas tiempo cambiando de hilo que ejecutandolos

Pero supone un problema grave?? Es decir.. da como para saturar el procesador? Siempre suponiendo que no van a haber 10.000 computadoras conectadas.. Yo seria de la idea de los hilos, o al menos hacer una prueba..

Saludos!
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Administrar múltiples sockets
« Respuesta #5 en: 12 Febrero 2014, 23:33 pm »

Esta como medio raro ese ejemplo:

Citar
>device.ioCompletion((IODevice*)io,buff,
                                                                   BytesTransfered,opCode,
                                                                   errorCode);
                break;
            case OP_CLOSE:
                if(io->device.ioCompletion)io->device.ioCompletion((IODevice*)io,buff,
                                                                   BytesTransfered,opCode,
                                                                   errorCode);
                io->device.closeHandle((IODevice*)io);
                free(io);
            default:
                ;
        }
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Administrar múltiples sockets
« Respuesta #6 en: 14 Febrero 2014, 23:31 pm »

Si pongo dos variables en el main, una identifica a que cliente quiero referirme y otra que operación pretendo realizar, cada hilo verifica si el identificador se refiere a el y en el caso que sea así realiza la opción, ¿Qué les parece?
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Administrar múltiples sockets
« Respuesta #7 en: 15 Febrero 2014, 00:38 am »

Seria algo así como utilizar los dos métodos? Debería funcionar, quizás quede un poco mas pesado, y no estoy seguro que valga la pena,, pero puede quedar bien organizado.. creo que vas a tener que optar por la que mas te parezca, o... dedicarle un poco mas de tiempo y probar todas.. la que resulte mas fácil/funcional de implementar es la que utilizas..

Suerte! Saludos!

PD: Si queres tengo algo medio armado en sockets Asyn en C++
En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Administrar múltiples sockets
« Respuesta #8 en: 15 Febrero 2014, 14:38 pm »

Esta como medio raro ese ejemplo:

Ya esta corregido, la actualizacion de ese foro parece que estropeo un poco la vusualizacion

.:UND3R:.
Si guardas una lista de los clientes, en esa estructura podrias poner si quisieras una cola de operaciones a realizar

Pero bueno, con lo que te enseñe de IOCP, da igual el hilo que realice las operaciones de lectura escritura
Y si te fijas, la estructura overlapped puedes modificarla a gusto paar poner que operacion hay que realizar y poner un puntero que apunte a datos o a un contexto como la informacion de el cliente

un saludo
PD: lo de saturar el procesador no se cuando empezaria a ocurrir, porque depende de la maquina y del SO
En línea

moikano→@


Desconectado Desconectado

Mensajes: 572


Cultiva tu mente y cuerpo, son tu única propiedad


Ver Perfil WWW
Re: Administrar múltiples sockets
« Respuesta #9 en: 15 Febrero 2014, 17:08 pm »

Si tu idea es hacerlo con linux hay un programa que gestiona las conexiones, su uso es parecido a netcat pero crea sockets por cada conexión que recibe.
El programa es tcpserver, aún no lo he probado pero me lo recomendo un compañero del cual me fio al 100%, además el creador del programa es el mismo que el de supervisor entre otros, así que tiene que se rde calidad.

El enlace http://cr.yp.to/ucspi-tcp/tcpserver.html.

Ten en cuenta que el verdadero limite de conexiones que tendrás serán el número de puertos, pero no creo que tengas siempre todas las máquinas encendidas y conectadas.

Espero haber sido de ayuda. Saludos.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Multiples Bucles o Multiples Esperas
.NET (C#, VB.NET, ASP)
DarkMatrix 8 3,802 Último mensaje 5 Septiembre 2011, 23:11 pm
por EddyW
Sockets C#: Multiples Conexiones
Programación General
9ttnix 0 1,895 Último mensaje 29 Mayo 2013, 23:11 pm
por 9ttnix
Abrir multiples conexiones Sockets C « 1 2 »
Programación C/C++
mester 13 4,301 Último mensaje 11 Noviembre 2015, 19:21 pm
por ivancea96
[Sockets] Conexiones múltiples de clientes a servidor.
Programación C/C++
Zodiak98 6 3,190 Último mensaje 25 Enero 2016, 00:42 am
por sodark
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines