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


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Algo heavy en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Algo heavy en C++  (Leído 6,278 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Algo heavy en C++
« Respuesta #10 en: 13 Julio 2015, 23:21 pm »

Bueno iba a meter una santa parrafada, pero he llegado a la conclusión de QUE, lo mejor es usar un solo thread, ya que si voy a tener 2 y voy a estar llamando al uno cada X tiempo luego al otro.. mutex.. lo mejor hago uno y ya esta, porque si el mutex lo que va a acabar haciendo es bloquear un thread, tengo lo mismo que si trabajo con un solo thread.

Escuchare paquetes de la red, cada X tiempo escaneare la red, y cada Z tiempo mandaré arp spoofing, todo en un thread, ya que con 2 threads y mutex, me da errores, y voy a tener lo mismo, pues haría el lock() para mandar arp spoofing a los hosts, apenas tarda tiempo, para eso lo hago en un thread y me ahorro mutex y demás.

Aunque el tiempo que tardo en spoofear no estaría recogiendo paquetes... pero si hago lock() para spoofear tampoco lo estaría haciendo luego ¿porque no solo usar un thread? (Ya que en ambos casos usaria la lista de usuarios y el vector de hosts, estaría compartiendo la variable.

Edito: O mejor hacer el spoofing y el escaneo de host (donde uso la variable) en una funcion, y la otra simplemente escucha y redirige el tráfico. Podría ir. No necesitaría mutex.


Saludos.


« Última modificación: 13 Julio 2015, 23:26 pm por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Algo heavy en C++
« Respuesta #11 en: 13 Julio 2015, 23:50 pm »

El mutex no ha de retrasar tu programa ni 1 milisegundo por segundo. Basta que lo organices bien. Pero tú verás dónde quieres colocar 1, 2 o 100 threads.


En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Algo heavy en C++
« Respuesta #12 en: 14 Julio 2015, 00:33 am »

Pff es que es bastante jodido, tengo que llamar al mutex para actualizar los hosts (que haga arp scanning) y eso lleva tiempo, sin embargo tienes razón si está bien organizado podría tenerlos ya listos y solo insertarlos o eliminarlos del vector, pero.. el problema es que para eso los he tenido que escanear anteriormente y debería de estar esperando a que me llamasen, ¿como?

Saludos socio.
En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Algo heavy en C++
« Respuesta #13 en: 14 Julio 2015, 00:56 am »

A que te llamasen, ¿quienes?
En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Algo heavy en C++
« Respuesta #14 en: 14 Julio 2015, 01:22 am »

Ha que llamasen a la funcion, cuando se ejecuta cada cierto tiempo el escaner de red, se llama a su funcion, pero lleva tiempo hacer el escaner unos 5 segundos, luego deberia de estar ya hecho y esperando a que lo llamasen, pero ¿como? Ademas ademas el escaner de red se ejecuta cada X tiempo, pasado ese tiempo escanearia, y mientras ese tiempo tiene que mandar arp poisoning en bucle con los hosts.

Saludos.

Edito: Haber lo que decía, estoy en este bucle:

Código
  1. control.lock();
  2. for (int i = 0; i < lista->usuarios.size(); i++)
  3. {
  4. paquete = respuesta_arp(ip_puerta, mac_cliente, lista->usuarios[i].ip, lista->usuarios[i].mac);
  5. pcap_sendpacket(capturador, paquete, 42);
  6. printf("%d = %d\n", i, lista->usuarios.size() - 1);
  7. if (i == (lista->usuarios.size() - 1))
  8. {
  9. printf("mandados los arps\n");//aqui desbloquea pero aun no ha llegado el otro para darnos los datos :)
  10. i = 0;
  11. control.unlock();
  12. }
  13. //control.lock(); ?? como vuelvo a recuperar el control del mutex?
  14. if (lista->usuarios.size() == 0)
  15. break;
  16. }

Cuando acabo de spoofear a los usuarios, hago un descanso en ese descanso desbloqueo el mutex para que me modifique la lista, pero que pasa? que la lista se reescanea en otro bucle cada X tiempo, y no siempre está lista por lo que da error, ¿como puedo esperar al mutex?

Lo que pasa es que el arp spoofing es cada segundo, y el escaneo de red cada 60 segundos por ejemplo, en el arp spoofing estoy siempre usando la lista, pero cuando hago el reescaneo pasado X tiempo (60 seg) trato de acceder a la variable usando mutex, para una operacion de apenas milisegundos pero no puede acceder, ¿alguna posible solucion?



Saludos.
« Última modificación: 14 Julio 2015, 16:15 pm por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como convertir algo en algo o crear algo xD
Electrónica
ATI-Radeon 2 4,255 Último mensaje 17 Diciembre 2006, 02:38 am
por davinci21
[RS][PC]Heavy Weapon Deluxe[17MB][Ing]Full..! Provado Por Mi by elsupergb...!
Juegos y Consolas
elsupergb 0 1,454 Último mensaje 1 Febrero 2008, 20:53 pm
por elsupergb
Warhammer prepara más contenidos con el evento Heavy Metal
Juegos y Consolas
Castiblanco 0 1,658 Último mensaje 21 Noviembre 2008, 23:26 pm
por Castiblanco
Fans de música clásica y heavy metal se parecen « 1 2 »
Foro Libre
daryo 13 5,781 Último mensaje 23 Mayo 2013, 21:11 pm
por daryo
Análisis de 'Heavy Rain' para PC
Noticias
wolfbcn 0 1,077 Último mensaje 13 Julio 2019, 02:23 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines