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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: [1] 2
1  Programación / Programación C/C++ / [C] Problema: funcion 'validar_numero()' siempre me retorna 1 en: 17 Septiembre 2015, 00:09 am
[Consulta C]
Buenas!! ando con un problema seguramente no muy dificil de resolver pero despues de horas de programacion e investigacion ya nose que probar, de todas maneras voy a seguir intentando y si encuentro solucion la publico..

El problema:
La funcion "validar_numero()" retorna siempre 1!! Aunque ingrese -1, 15, 23, 123, asd,e3,2a, etc

Dejo parte del codigo y sus respectivas funciones:
-------------------------------------------------------------------
Código
  1. //[Codigo]
  2.  
  3. do{// ---------------------------------------------------------------CARGA ID
  4. if(c) printf("Ingreso un valor incorrecto, ingrese nuevamente\n");
  5. printf("\nIngrese Id del curso: ");
  6. //fflush(stdin);-----------------------NO USAR-> EN SU LUGAR USAR "lbuffer()" -> Funcion creada en este archivo.
  7. //scanf("%s",aux);
  8. fgets(aux,100,stdin);//fgets en este caso guarda lo que se ingresa del teclado ('stdin') en la cadena de caracteres 'aux'
  9. //con un maximo de 99 caracteres (100-1). Si se ingresan menos de 99 caracteres se agrega un '\n'
  10. if(aux[strlen(aux)-1]=='\n')aux[strlen(aux)-1]=='\0';//Si se agrega un \'n' lo "sacamos" poniendo en su lugar un '\0'
  11. lbuffer();//funcion que limpia buffer
  12. printf("\n Ingresaste: %s\n",aux);
  13. if(validar_numero(aux)==1)c=1;
  14. else c=0;
  15. }while(validar_numero(aux)==1);//Si la funcion retorna 1 > Ingreso un valor incorrecto
  16.  
  17. //Si sale del while > es correcto el valor ingresado (Es numero) > guardamos en archivo
  18. curso[i].id=atoi(aux); //atoi me convierte la cadena de caracteres a int
  19. // ---------------------------------------------------------------FIN CARGA ID
  20.  
  21.  
  22. //------------------------------------------------------------------------------
  23. //Dejo aca la funcion "validar_numero(char *n)" y "lbuffer()":
  24. //-------------------------------------------------------------------------------
  25.  
  26. int validar_numero(char *n){
  27. int largo=strlen(n), es_num=0, bien=0;
  28. for(int i=0;i<largo;i++){
  29. es_num=atoi(n+i); //atoi retorna 0 cuando NO es numero
  30. if(!es_num)return 1;
  31. }//for
  32. return 0;//Si la funcion llego hasta aca > SI es numero (Retornamos 0)
  33.  
  34. }
  35.  
  36. void lbuffer(){
  37. /* esta funcion 'lbuffer()' es para limpiar el buffer, no uso 'fflush(stdin)' por que no es correcto usarla, ademas de que trabajo en GNU/Linux (Debian) y "no funciona" */
  38. int d;
  39. while((d=getchar())!= '\n' && d != EOF);
  40. }
  41.  


2  Seguridad Informática / Hacking / Como finalizar un dns_spoof de ettercap por consola? en: 29 Junio 2013, 06:02 am
Hola, estoy en backtrack 5 r3, al ingresar lo siguiente:

Citar
-ettercap -T -q -i wlan0 -P dns_spoof -M arp:remote /(ip victima)/ //

Con eso arranca el dns spoof para la ip que seleccione...

Y como finalizo el dns_spoof? Gracias!

(Lo se hacer en modo Grafico, con "ettercap -G", lo quiero hacer por consola ahora)
3  Seguridad Informática / Hacking / Crear usuario OpenVas en: 28 Junio 2013, 18:50 pm
Hola, tengo un problema, yo hago lo siguiente:
openvas-mkcert
openvas-nvt-sync
openvas-mkcert-client -n om –i
openvasmd –-rebuild
openvassd
touch /usr/local/var/lib/openvas/mgr/tasks.db
openvasmd –-backup
openvasmd –-rebuild
openvasad -c ‘add_user’ -n openvasadmin -r Admin ##############
openvas-adduser
openvasmd -p 9390 -a 127.0.0.1
openvasad -a 127.0.0.1 -p 9393
gsad -–http-only -–listen=127.0.0.1 -p 9392

Pero.. en la linea donde puse los "##" me da un error, el siguiente:
Citar
ad main:WARNING:3915:2013-06-28 09h46.27 EDT : Invalid command!

Entonces no puedo agregar usuarios... pero sigo adelante pongo: openvas-adduser ahi me pide: Login, ingreso uno cualquiera, si existe me dice que ya existe, y que elija otro, y si no existe me pide authentication(pass/cert) ahi pongo enter, despes me pide la contraseña que le quiero dar.
Pero de esa forma no agrego usuarios por que cuando voy a localhost:9392 me pide que me loguee y no anda ninguno de los usuarios que puse en openvas-adduser, mi problema esta en la linea ########, con el comando openvasad.

PD: Si pongo "info openvasad" me sale toda la informacion, osea el comando existe, y existe -c, -n, -r.. nose donde esta el problema

ayudaaaaaaaaaaaa!! Gracias
4  Seguridad Informática / Hacking / Ayuda actualizar Nessus en: 28 Junio 2013, 00:22 am
Hola, tengo un problema!
Cuando quiero actualizar nessus para empezar a usarlo,
Pongo lo siguiente enuna terminal:
Citar
sudo /opt/nessus/bin/nessus-fetch –register XXXX-XXXX-XXXX-XXXX-XXXX

Donde XXXX-XXXX-....  es el codigo que te envia nessus despues de registrarte en su pagina, ese codigo solo funciona una vez.

Bueno hasta aca todo bien.. despues sale el siguiente mensaje en la consola:

Citar
Your activation code has been registered properly - thank you.
Now fetching the newest plugin set from plugins.nessus.org...

Pero abajo de eso sale:

Citar
Could not verify the signature of all-2.0.tar.gz

Y en lugar de eso deberia salir como en esta imagen o eso creo..


Espero que me puedan ayudar! gracias!
5  Seguridad Informática / Hacking / [Ayuda] Metasploit winxp sp3 no consigo la shell en: 27 Junio 2013, 19:14 pm
Hola, espero que me puedan ayudar..
Estoy haciendo pruebas en la red lan que tengo en mi casa, en una pc de escritorio tengo el backtrack 5 r3, quiero ingresar a la shell de una netbook que tengo al lado con windows xp sp3.

Uso el xploit ms08_067_netapi
con el payload shell_reverse_tcp

Seteo el RHOST poniendo la ip de la netbook, y LHOST poniendo la ip de la otra pc (en  la que tengo el metasploit)
Pongo "exploit" y esto es el resultado:

Citar
[*] Started reverse handler on 192.168.1.11:4444
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP SP3 Spanish (NX)
[*] Attempting to trigger the vulnerability
msf exploit(ms08_067_netapi) >

Y en ningun momento obtengo la shell,

Otros datos: La netbook tiene abierto los siguientes puertos: 80,139,3389,443,445
Yo estoy tratando de entrar por el 445.

Espero que me puedan ayudar, saludos
6  Programación / Programación C/C++ / Ayudaa problema nivel basico en: 13 Marzo 2012, 23:48 pm
Buenas, ya habia preguntado algo sobre este programa y lo pude solucionar aca el link-> http://foro.elhacker.net/programacion_cc/ayuda_array_facil-t356132.0.html
ahora tengo otro problema, intente varias formas de hacer esto y no me sale, queria ver si ustedes podrian resolver la parte que me falta y explicar el code, muchas gracias

Aca la consigna de la funcion que me falta:
La otra función responderá a este prototipo: int Diferencia(fecha, fecha);, y debe devolver la diferencia en días entre las dos fechas suministradas.

Código
  1. #include<iostream>
  2. #include<stdio.h>
  3. using namespace std;
  4.  
  5. struct fecha{
  6.       unsigned short int dia:5;
  7.       unsigned short int mes:4;
  8.       unsigned short int anno:7;
  9.       };
  10.  
  11. void mostrar(fecha x){
  12.     char *mes[]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
  13.     cout<<"Fecha:"<<endl;
  14.     cout<<"       "<<x.dia<<" de "<<mes[x.mes-1]<<" de "<<(x.anno + 1960)<<endl;
  15.     }
  16.  
  17. bool Biciesto(fecha x){
  18.     if((x.anno+1960)%2==0)cout<<"FEBRERO ES BICIESTO"<<endl;
  19.     else cout<<"FEBRERO NO ES BICIESTO"<<endl;
  20.     }
  21.  
  22. bool ValidarFecha(fecha x){
  23.     bool tof=true;
  24.     int DiaMes[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  25.     if (x.mes>=1){
  26.                   if(x.mes>12) tof=false;
  27.                   }
  28.     else tof=false;
  29.     if (tof==true){
  30.                   if(x.dia>=1){
  31.                   switch(x.mes){
  32.                                 case 0:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  33.                                 case 1:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  34.                                 case 2:{
  35.                                      Biciesto(x);
  36.                                      if(x.dia>DiaMes[x.mes-1])tof=false;
  37.                                      }
  38.                                 case 3:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  39.                                 case 4:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  40.                                 case 5:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  41.                                 case 6:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  42.                                 case 7:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  43.                                 case 8:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  44.                                 case 9:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  45.                                 case 10:{if(x.dia>DiaMes[x.mes-1])tof=false;}
  46.                                 case 11:{if(x.dia>DiaMes[x.mes-1])tof=false;}    
  47.                                 }
  48.                                }
  49.                   }
  50.     return tof;
  51.     }  
  52.  
  53. int CompararFechas(fecha x,fecha y){
  54.    if(x.anno>y.anno)return 1;
  55.    else{
  56.         if(x.anno<y.anno)return -1;
  57.         else if(x.mes>y.mes)return 1;
  58.         else if(x.mes<y.mes)return -1;
  59.         else if(x.dia>y.dia)return 1;
  60.         else if(x.dia<y.dia)return -1;
  61.         else return 0;
  62.         }
  63. }
  64.  
  65.  
  66.  
  67.  
  68. int main(){
  69.    int temp=0;
  70.    fecha x,y; //aca podria ver decalarado un vector ejemplo: fecha[1]; ( fecha[0] y fecha [1])
  71.               //que me resutltaria mas facil para trabajar con bucles mas adelante
  72.  
  73.    cout<<"Introduzca Fecha: "<<endl;
  74.    cout<<"Dia (ej: 31): ";cin>>temp;x.dia=temp;
  75.    cout<<endl<<"Mes (ej: 12): ";cin>>temp;x.mes=temp;
  76.    cout<<endl<<"Ano (del 1 al 127, a eso se le suma 1960): ";cin>>temp;x.anno=temp;
  77.    cout<<endl;
  78.  
  79.    if (ValidarFecha(x)==true){
  80.                            cout<<"La fecha es correcta."<<endl;
  81.                            }
  82.    else cout<<"La fecha es incorrecta."<<endl;
  83.    mostrar(x);
  84.    getchar();
  85.    getchar();
  86.  
  87.    cout<<endl<<"Introduzca otra fecha para compararla con la primera"<<endl;
  88.    cout<<"Dia (ej: 31): ";cin>>temp;y.dia=temp;
  89.    cout<<endl<<"Mes (ej: 12): ";cin>>temp;y.mes=temp;
  90.    cout<<endl<<"Ano (del 1 al 127, a eso se le suma 1960): ";cin>>temp;y.anno=temp;
  91.    cout<<endl;
  92.  
  93.        if (ValidarFecha(x)==true){
  94.                            cout<<"La fecha es correcta."<<endl;
  95.                            }
  96.    else cout<<"La fecha es incorrecta."<<endl;
  97.    mostrar(y);
  98.  
  99.    if(CompararFechas(x,y)==1)cout<<"La primer fecha es mayor que la segunda"<<endl;
  100.    else if(CompararFechas(x,y)==-1)cout<<"La segunda fecha es mayor que la primera"<<endl;
  101.    else cout<<"Las fechas son iguales"<<endl;
  102.    cout<<endl<<endl;
  103.  
  104.  
  105.    system("pause");
  106.  
  107. }


ACLARO: NO es TAREA estoy estudiando por mi cuenta en un curso online y no me quiero saltar ningun ejercicio quiero entenderlos todos!

PD: se me habia ocurrido algo asi.. pero nose ni coomo seguir y creo que ya empese mal jaja.
Gracias!

Código
  1.  
  2. int Diferencia(fecha x,fecha y){
  3.    int auxano=0,auxmes=0,auxdia=0,tempp=0;
  4.  
  5.    if(x.anno>y.anno)auxano=(x.anno-y.anno);
  6.    else {if(x.anno<y.anno)auxano=(y.anno-x.anno);
  7.    }
  8.  
  9.   else {
  10.         if(x.mes>y.mes)auxmes=(x.mes-y.mes);
  11.         else if(x.mes<y.mes)auxmes=(y.mes-x.mes);
  12.         else{
  13.              if(x.dia>y.dia){auxdia=(x.dia-y.dia);return auxdia;}
  14.              else if (x.dia<y.dia)auxdia=(y.dia-x.dia);return auxdia;
  15.              }
  16.         }
  17. }
  18.  
7  Programación / Programación C/C++ / Ayuda array facil en: 10 Marzo 2012, 17:59 pm
Hola buenas tardes, estoy haciendo un ejercicio y me tira error en todas las lineas donde declaro el vector, dejo el enunciado y mi codigo. Nose si el codigo anda por que no lo puedo compilar por que me tira error en todas las lineas donde declaro el vector mes[] ,es un error muy tonto pero la verdad es que no encuentro la forma jaja Gracias.

Enunciado:
Diseñar una estructura análoga, llamada fecha, pero usando campos de bits. Usar sólo un entero corto sin signo (unsigned short), es decir, un entero de 16 bits. Los nombres de los campos serán: dia, mes y anno.
Basándose en la estructura de bits del ejercicio anterior, escribir una función para mostrar fechas: void Mostrar(fecha);. El formato debe ser: "dd de mmmmmm de aaaa", donde dd es el día, mmmmmm el mes con letras, y aaaa el año. Usar un array para almacenar los nombres de los meses.



Código:
#include<iostream>
using namespace std;

struct fecha{
       unsigned short int dia:5;
       unsigned short int mes:4;
       unsigned short int anno:7;
       };

void mostrar(fecha){
     char mes[11];
     int mees=0;
     int año=0;
     mes[0] = "Enero";
     mes[1] = "Febrero";
     mes[2] = "Marzo";
     mes[3] = "Abril";
     mes[4] = "Mayo";
     mes[5] = "Junio";
     mes[6] = "Julio";
     mes[7] = "Agosto";
     mes[8] = "Septiembre";
     mes[9] = "Octubre";
     mes[10] = "Noviembre";
     mes[11] = "Diciembre";
     mees = x.mes;
     año = 1960 + x.anno;
     cout<<"Fecha:"<<endl;
     cout<<"       "<<x.dia<<" de "<<mes[mees]<<" de "<<año;
     }
       
int main(){
   
    fecha x;
    x.dia = 31;
    x.mes = 12;
    x.anno = 127;
   
    cout<<"Dia: "<<x.dia<<" Mes: "<<x.mes<<" año: "<<x.anno<<endl;
    cin.get();
}
8  Seguridad Informática / Seguridad / Corsair Padlock 2, una memoria USB con código de seguridad en: 6 Febrero 2012, 00:21 am

Muchas empresas pequeñas acaban por realizar las copias de seguridad en una simple memoria USB. Teniendo en cuenta lo fácil que es perder estos dispositivos o que en un momento dado caigan en manos poco indicadas no está de más buscar dispositivos que nos ofrezcan un extra de seguridad. Este es el caso de Corsair Padlock 2, una memoria USB con código de seguridad.

En este caso además de una protección para la seguridad de nuestros datos incluyen una protección física que dotará de una duración de nuestras memorias que va más allá de lo habitual. Tiene una protección que nos garantiza que resistirá casi cualquier caída o golpe que pueda sufrir gracias a su carcasa de goma, lo que la hace muy adecuada para trabajar en ambientes exteriores, donde es más sencillo sufrir algún percance.

La protección es tan simple como un código PIN entre cuatro y diez dígitos, el cual es necesario introducir cuando queramos acceder a los datos en él contenidos. Para ello dispone de un teclado numérico en la carcasa. La seguridad queda completada con el cifrado de datos de 256 bits, lo que hace que podamos estar tranquilos con la protección de nuestros datos.

El dispositivo tiene una capacidad de 8 GB, suficiente para ser utilizado como soporte de backup para la mayoría de las empresas. El precio al que saldrá este dispositivo al mercado será de 42 euros, nada caro para las prestaciones que nos ofrece, aunque mucho más abultado de lo que nos costaría un dispositivo de similar capacidad sin la protección de seguridad.

Es una buena opción también para todos aquellos usuarios en movilidad que llevan en la memoria USB gran parte de su trabajo y se mueven por distintos clientes, con lo cual en algún momento puede quedar olvidada y los datos expuestos. De esta forma podemos estar tranquilos cuando ocurra un caso como éste.

En Mercadolibre Vi 1, o 2 publicaciones de este pendrive, increible CLAVE POR HARDWARE!
9  Programación / Programación C/C++ / Finalizar, Ejecutar Procesos c++ en: 28 Octubre 2011, 05:46 am
Bueno resulta que tengo un juego el cual se ve "mal" cuando lo ejecutas y si finalizas el proceso "explorer.exe" y abris el juego se ve BIEN.
El tema es que quiero hacer un programita en c++ que haga lo siguiente:
-Termine el proceso "explorer.exe"
-Ejecute el juego(ejemplo: juego.exe)
Y QUE CUANDO "juego.exe" deje de ejecutarse se ejecute el proceso "explorer.exe"
-
con
Código
  1. system("taskkill /f explorer.exe")
anda perfecto para finalizar el explorer.exe, despues
Código
  1. system("start juego.exe")
Hasta aca todo bien..
La pregunta es COMO HAGO PARA QUE CUANDO EL USUARIO CIERRE EL JUEGO( juego.exe) SE EJECUTE EXPLORER.EXE
-
Se me ocurrio con un while.. pero no, no tengo idea.
mientras se esta ejecutando que no haga nada y cuando se termine de ejecutar que  ejecute explorer.exe? :S
Y tampoco se como corroborar si se esta ejecutando dicho proceso(juego.exe)

Si alguien tiene ideaa que ayudee!
Gracias, salu2
10  Programación / Programación C/C++ / Aver si encuentran el error en: 23 Octubre 2011, 05:32 am
Bueno, hice un progrma usando is<conjunto>, en el cual vos introducis caracteres hasta que se pulse "&".

Cuenta de todo con contadores, todo bien..
El tema es que cuenta espacios tambien y si abris el programa e introducis una frase, por ejemplo:
"Pedro maneja autos"
Deberia contar: 2 ESPACIOS.
-Hasta aca todo bien.
El programa nos pregunta si queremos volver a introducir una frase..
Le ponemos que si..
e introducimos
"Jorge"(sin las comillas obvio..)
Nos deberia dar.. espacio: 0- EL ERROR ES QUE ME DA 1 !!!
- y si en ves de "Jorge" ponemos "Pablo come" nos va a dar ESPACIO: 2,
OSEA SUMA UNO MAS, nose por que revise el codigo mil veces y no encuentro el error espero qe lo encuentren :)

ACA VA EL CODIGO:


#include <iostream>
#include <cstdio> //LA NESESITO PARA GETCHAR
#include <cctype> //LA NESESITO PARA EL CONJUNTO IS
#include <windows.h> //LA NESESITO PARA SLEEP
using namespace std;
int main(){
char yn;
    do{
        system("cls");
        system("color 0a");
        char c;
        int consonante=0, vocal=0, digitos=0, signos_de_puntuacion=0, mayusculas=0, minusculas=0,espacios=0;
        cout<<endl<<endl<<endl<<endl;
        cout<<"Introduzca frase, se leeran caracteres hasta que se pulse ' & '"<<endl<<endl;
        while ((c=getchar()) != '&'){   //MIENTRAS C SEA DISTINO DE "&" .. (DONDE C ES LO PRESIONADO EN EL TECLADO
                                     if(isalpha(c)){ //SI LA FUNCION ISALPHA(QUE EVALUA SI ES UNA LETRA) ES DISTINTA DE 0..
                                                     if(isupper(c)) mayusculas++; else minusculas++;
                                                    switch(tolower(c)){                                                             
                                                              case 'a':
                                                              case 'e':
                                                              case 'i':
                                                              case 'o':
                                                              case 'u':
                                                                   vocal++;
                                                                   break;
                                                              default:
                                                                      consonante++;
                                                              }
                                                    }
                                     else if(isdigit(c))digitos++;
                                     else if(ispunct(c))signos_de_puntuacion++;
                                     else if(isspace(c))espacios++;
    }
    system("cls"); //BORRA PANTALLA
    system("color 0d"); // COLOR..
    cout<<endl<<endl<<endl<<endl<<endl; //ESPEACIOS ENTER..
    for(int j=0;j!=40;j++){  //BUCLE PARA, PARA HACER " UNA BARRA DE CARGA "
            Sleep(1*1000/40); //1 SON LOS SEGUNDOS QUE QUEREMOS, 1000 LOS MILISEGUNDOS, Y 40
            cout<<"= ";       //POR QUE ES LA MITAD DE 80 , QUE ES EL ANCHO DE LA CONSOLA QUE SE HABRE
            }
    cout<<endl<<endl;
    cout<<"                        Consonantes:             "<<consonante<<endl;
    cout<<"                        Vocales:                 "<<vocal<<endl;
    cout<<"                        Digitos:                 "<<digitos<<endl;
    cout<<"                        Signos de puntuacion:    "<<signos_de_puntuacion<<endl;
    cout<<"                        Mayusculas:              "<<mayusculas<<endl;
    cout<<"                        Minusculas:              "<<minusculas<<endl;
    cout<<"                        Espacios:                "<<espacios<<endl;
    cout<<endl<<endl;
    for(int j=0;j!=40;j++){
            Sleep(1*1000/40);
            cout<<"= ";
            }
    cout<<endl<<endl<<endl;
    system("pause");
    system("cls");
    system("color 0f");
    cout<<endl<<endl<<endl;
cout<<"Desea introducir otra frase?"<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"Escriba 'y'o 'Y' seguido de ENTER, o presione otra tecla para salir: ";cin>>yn;
}
while (yn=='y' || yn=='Y'); //MIENTRAS yn SEA 'y' o 'Y' ...(en este caso va a repetir el programa en casi de qe sea 'y' o 'Y'
}

-----

Y otra cosa ya que estamos ^^, A lo ultimo en el while.. como podria poner para que si se presiona la "y" directamente arranque denuevo sin tener que poner enter..
o si se presiona otra tecla directamente salga.
se que es con getchar, pero no lo tengo muy en claro.
Gracias :)
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines