Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - krowa

#1
[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 (cpp) [Seleccionar]
//[Codigo]

do{// ---------------------------------------------------------------CARGA ID
if(c) printf("Ingreso un valor incorrecto, ingrese nuevamente\n");
printf("\nIngrese Id del curso: ");
//fflush(stdin);-----------------------NO USAR-> EN SU LUGAR USAR "lbuffer()" -> Funcion creada en este archivo.
//scanf("%s",aux);
fgets(aux,100,stdin);//fgets en este caso guarda lo que se ingresa del teclado ('stdin') en la cadena de caracteres 'aux'
//con un maximo de 99 caracteres (100-1). Si se ingresan menos de 99 caracteres se agrega un '\n'
if(aux[strlen(aux)-1]=='\n')aux[strlen(aux)-1]=='\0';//Si se agrega un \'n' lo "sacamos" poniendo en su lugar un '\0'
lbuffer();//funcion que limpia buffer
printf("\n Ingresaste: %s\n",aux);
if(validar_numero(aux)==1)c=1;
else c=0;
}while(validar_numero(aux)==1);//Si la funcion retorna 1 > Ingreso un valor incorrecto

//Si sale del while > es correcto el valor ingresado (Es numero) > guardamos en archivo
curso[i].id=atoi(aux); //atoi me convierte la cadena de caracteres a int
// ---------------------------------------------------------------FIN CARGA ID


//------------------------------------------------------------------------------
//Dejo aca la funcion "validar_numero(char *n)" y "lbuffer()":
//-------------------------------------------------------------------------------

int validar_numero(char *n){
int largo=strlen(n), es_num=0, bien=0;
for(int i=0;i<largo;i++){
es_num=atoi(n+i); //atoi retorna 0 cuando NO es numero
if(!es_num)return 1;
}//for
return 0;//Si la funcion llego hasta aca > SI es numero (Retornamos 0)

}

void lbuffer(){
/* 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" */
int d;
while((d=getchar())!= '\n' && d != EOF);
}



#2
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
Hacking / Crear usuario OpenVas
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:
Citarad 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
Hacking / Ayuda actualizar Nessus
28 Junio 2013, 00:22 AM
Hola, tengo un problema!
Cuando quiero actualizar nessus para empezar a usarlo,
Pongo lo siguiente enuna terminal:
Citarsudo /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:

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

Pero abajo de eso sale:

CitarCould 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
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
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 (c++) [Seleccionar]
#include<iostream>
#include<stdio.h>
using namespace std;

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

void mostrar(fecha x){
     char *mes[]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
     cout<<"Fecha:"<<endl;
     cout<<"       "<<x.dia<<" de "<<mes[x.mes-1]<<" de "<<(x.anno + 1960)<<endl;
     }
     
bool Biciesto(fecha x){
     if((x.anno+1960)%2==0)cout<<"FEBRERO ES BICIESTO"<<endl;
     else cout<<"FEBRERO NO ES BICIESTO"<<endl;
     }
           
bool ValidarFecha(fecha x){
     bool tof=true;
     int DiaMes[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
     if (x.mes>=1){
                   if(x.mes>12) tof=false;
                   }
     else tof=false;
     if (tof==true){
                   if(x.dia>=1){
                   switch(x.mes){
                                 case 0:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 1:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 2:{
                                      Biciesto(x);
                                      if(x.dia>DiaMes[x.mes-1])tof=false;
                                      }
                                 case 3:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 4:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 5:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 6:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 7:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 8:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 9:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 10:{if(x.dia>DiaMes[x.mes-1])tof=false;}
                                 case 11:{if(x.dia>DiaMes[x.mes-1])tof=false;}     
                                 }
                                }
                   }
     return tof;
     } 

int CompararFechas(fecha x,fecha y){
    if(x.anno>y.anno)return 1;
    else{
         if(x.anno<y.anno)return -1;
         else if(x.mes>y.mes)return 1;
         else if(x.mes<y.mes)return -1;
         else if(x.dia>y.dia)return 1;
         else if(x.dia<y.dia)return -1;
         else return 0;
         }
}



       
int main(){
    int temp=0;
    fecha x,y; //aca podria ver decalarado un vector ejemplo: fecha[1]; ( fecha[0] y fecha [1])
               //que me resutltaria mas facil para trabajar con bucles mas adelante
 
    cout<<"Introduzca Fecha: "<<endl;
    cout<<"Dia (ej: 31): ";cin>>temp;x.dia=temp;
    cout<<endl<<"Mes (ej: 12): ";cin>>temp;x.mes=temp;
    cout<<endl<<"Ano (del 1 al 127, a eso se le suma 1960): ";cin>>temp;x.anno=temp;
    cout<<endl;
       
    if (ValidarFecha(x)==true){
                            cout<<"La fecha es correcta."<<endl;
                            }
    else cout<<"La fecha es incorrecta."<<endl;
    mostrar(x);
    getchar();
    getchar();

    cout<<endl<<"Introduzca otra fecha para compararla con la primera"<<endl;
    cout<<"Dia (ej: 31): ";cin>>temp;y.dia=temp;
    cout<<endl<<"Mes (ej: 12): ";cin>>temp;y.mes=temp;
    cout<<endl<<"Ano (del 1 al 127, a eso se le suma 1960): ";cin>>temp;y.anno=temp;
    cout<<endl;

        if (ValidarFecha(x)==true){
                            cout<<"La fecha es correcta."<<endl;
                            }
    else cout<<"La fecha es incorrecta."<<endl;
    mostrar(y);

    if(CompararFechas(x,y)==1)cout<<"La primer fecha es mayor que la segunda"<<endl;
    else if(CompararFechas(x,y)==-1)cout<<"La segunda fecha es mayor que la primera"<<endl;
    else cout<<"Las fechas son iguales"<<endl;
    cout<<endl<<endl;
   
   
    system("pause");

}



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 (c++) [Seleccionar]


int Diferencia(fecha x,fecha y){
    int auxano=0,auxmes=0,auxdia=0,tempp=0;
   
    if(x.anno>y.anno)auxano=(x.anno-y.anno);
    else {if(x.anno<y.anno)auxano=(y.anno-x.anno);
    }
   
   else {
         if(x.mes>y.mes)auxmes=(x.mes-y.mes);
         else if(x.mes<y.mes)auxmes=(y.mes-x.mes);
         else{
              if(x.dia>y.dia){auxdia=(x.dia-y.dia);return auxdia;}
              else if (x.dia<y.dia)auxdia=(y.dia-x.dia);return auxdia;
              }
         }
}
#7
Programación C/C++ / Ayuda array facil
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.



#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

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
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 (cpp) [Seleccionar]
system("taskkill /f explorer.exe")
anda perfecto para finalizar el explorer.exe, despues
Código (cpp) [Seleccionar]
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 C/C++ / Aver si encuentran el error
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 :)
#11
Hola me presento en esta comunidad, estoy estudiando c++en mis ratos libres, cuando tengo tiempo, ya que soy estudiante (16 años.) y no me da mucho el tiempo.
Bueno esto no viene al caso :P,  
Estoy haciendo un programa el cual vos le ingresas la cantidad de posiciones que queres que contenga el vector e ingresas los elementos de cada posicion.
El programa lo que hace es ordenarlos por el metodo de seleccion usando una funcion.
Ya tengo claro el metodo de la burbuja, ( ya lo hice).
Y ahora estoy viendo el metodo de seleccion, se como es, pero quiero realizarlo creando una funcion que seleccione el menor numero del vector y retorne la posicion de ese vector en el cual se encuentra el menor numero.
(Recordemos que estoy en el metodo de seleccion)
Para luego ordenarlo, el problema es que NO funciona, a lo ultimo me muestra el vector, pero cualquier cosa me tira.

ACA EL CODIGO :


#include<iostream>
using namespace std;
int Menor(int v[], int nv,int i){
   int r=0;
                              for(;i<nv;i++){
                                      if(v<v[i+1])r=i;
                                      }
                                      return r;
                                      }
int main()
{
   //CARGA DEL VECTOR ---------------------------------------------------------
   int nv;
   cout<<"Introzuca la cantidad de elementos que desea que tenga el vector: ";
   cin>>nv;
   cout<<endl;
   int v[nv];
   v[nv+1]=0;
   for(int i=0;i!=nv;i++){
                         cout<<"Introduzca valor para la posicion Numero "<<i<<": ";
                         cin>>v;
                         cout<<endl;
                         }
   //FIN DE CARGA DEL VECTOR --------------------------------------------------
   //PROCESO DE ORDENAMIENTO CON LLAMADA A FUNCION MENOR--------------------------------------------------
   int temp,caca;
   for(int i=0;i!=nv;i++){
                          caca=Menor(v,nv,i);
                          temp=v;
                          v=v[caca];
                          v[caca]=temp;
                          }
   //FIN PROCESO DE ORDENAMIENTO -----------------------------------------------
   cout<<"Su vector ordenado: ";
   for(int i=1;i!=nv;i++){
                         cout<<v<<",";
                         }
   system("pause");
}

---

Se que estoy haciendo algo recontra mal, pero no encuentro el error, si me pueden ayudar gracias!