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)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda en un programa de c++ uso del strcmp :)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en un programa de c++ uso del strcmp :)  (Leído 3,118 veces)
SilverStun

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda en un programa de c++ uso del strcmp :)
« en: 3 Noviembre 2014, 03:43 am »

Buenas noches espero se encuentren bien si alguien me pudiera ayudar con esto aquí mi código fuente :


# include <conio.h>
# include <stdio.h>
# include <stdlib.h>
# include <iostream.h>
# include <dos.h>
# include <string.h>
void leerPasw(char frase[])
{
    int i=0;
    cout.flush();
    char a;
    int b=232;
    a=b;
    do
    {
        frase = (unsigned char)getch();

        if(frase!=8)  // no es retroceso
        {
            cout << ""<<a<<"";  // muestra por pantalla
            i++;
        }
        else if(i>0)    // es retroceso y hay caracteres
        {
            cout << (char)8 << (char)32 << (char)8;
            i--;  //el caracter a borrar e el backspace
        }
        cout.flush();

    }while(frase[i-1]!=13);  // si presiona ENTER

    frase[i-1] = NULL;

    cout <<"\n";
}

int fo1=177,fo9=178;
int fo2=163,fo3=162,fo10=164;
int fo4=201,fo5=205,fo6=187,fo7=188,fo8=200;
int main ()
{
char Usuario[16];
char Pass[16];
textbackground(WHITE); clrscr();
gotoxy(8,1);textcolor(BLUE);cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1);
gotoxy(8,2);textcolor(BLUE);cprintf("%c                                                                %c",fo1,fo1);
gotoxy(8,3);textcolor(BLUE);cprintf("%c                  Rep%cblica Bolivariana de Venezuela            %c",fo1,fo2,fo1);
gotoxy(8,4);textcolor(BLUE);cprintf("%c            Ministerio del Poder Popular para la Defensa        %c",fo1,fo1);
gotoxy(8,5);textcolor(BLUE);cprintf("%c Universidad Nacional Experimental de la Fuerza Armada Nacional %c",fo1,fo1);
gotoxy(8,6);textcolor(BLUE);cprintf("%c                Decanato de Investigaci%cn y Postgrado           %c",fo1,fo3,fo1);
gotoxy(8,7);textcolor(BLUE);cprintf("%c                        N%ccleo Los Teques                       %c",fo1,fo2,fo1);
gotoxy(8,8);textcolor(BLUE);cprintf("%c                                                                %c",fo1,fo1);
gotoxy(8,9);textcolor(BLUE);cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1,fo1);

gotoxy(38,11);textcolor(BLUE);cprintf("%c%c%c%c%c",fo4,fo5,fo5,fo5,fo6);
gotoxy(35,12);textcolor(BLUE);cprintf("%c%c%c%c E %c%c%c%c",fo4,fo5,fo5,fo7,fo8,fo5,fo5,fo6);
gotoxy(32,13);textcolor(BLUE);cprintf("%c%c%c%c N     F %c%c%c%c",fo4,fo5,fo5,fo7,fo8,fo5,fo5,fo6);
gotoxy(29,14);textcolor(BLUE);cprintf("%c%c%c%c U           A %c%c%c%c",fo4,fo5,fo5,fo7,fo8,fo5,fo5,fo6);
gotoxy(29,15);textcolor(BLUE);cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",fo8,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo5,fo7);
gotoxy(26,17);textcolor(BLUE);cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9);
gotoxy(26,18);textcolor(BLUE);cprintf("%c  Operador:                 %c",fo9,fo9);
gotoxy(26,19);textcolor(BLUE);cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9);
gotoxy(40,18);scanf("%c",&Usuario);
gotoxy(26,22);textcolor(BLUE);cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9);
gotoxy(26,23);textcolor(BLUE);cprintf("%c  Contrase%ca:               %c",fo9,fo10,fo9);
gotoxy(26,24);textcolor(BLUE);cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9,fo9);
gotoxy(41,23);leerPasw(Pass);


  if(strcmp(Usuario,"Administrador") == 0 && strcmp(Pass,"stun")==0)
   {
   cout << "\n\nUsuario Acertado" << endl;
   }
else
   {
    cout << "\n\nUsuario o Contrasena incorrecta, por favor verifique" << endl;
   }

system("pause > null");

return 0;

}


mi duda es por que no me acepta la parte del strcmp gracias de antemano :)



En línea

crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Ayuda en un programa de c++ uso del strcmp :)
« Respuesta #1 en: 3 Noviembre 2014, 05:02 am »

si estas usando c++ porque no usas string en vez de arreglos de caracter creo es mas apropiado
la verdad no entiendo porque no te anda el strcmp a mi anduvo bien

si me haces caso en utilizar string
solo has un pequeño cambio al comparar cadenas, utilizando la funcion c_str()
porque como strcmp es de c no acepta el objeto string y se tiene que hacer un pequeño casteo


como en este ejemplo:
Código:
#include<iostream>
#include <cstring>
using namespace std;


int main(){

   string Usuario="Administrador";
   string Pass="stun";

   if(strcmp(Usuario.c_str(),"Administrador") == 0 && strcmp(Pass.c_str(),"stun")==0)
   {
         cout << "\n\nUsuario Acertado" << endl;
   }
   else
   {
          cout << "\n\nUsuario o Contrasena incorrecta, por favor verifique" << endl;
   }




cin.get();
cin.get();
return 0;}


En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ayuda en un programa de c++ uso del strcmp :)
« Respuesta #2 en: 3 Noviembre 2014, 05:14 am »


mi duda es por que no me acepta la parte del strcmp gracias de antemano :)


En principio funciona bien, como indica crack81. Eso sí, tienes que ajustar las librerías que en C++ no llevan .h e incluir el using:

Código
  1. #include <iostream>
  2. # include <conio.h>
  3. # include <cstdio>
  4. # include <cstdlib>
  5. # include <cstring>
  6.  
  7. using namespace std;
  8.  

En todo caso dirá, tal como lo tenias, entrada incorrecta porque a la variable usuario no le das entrada, a no ser, tal como hizo crack81 que la declares antes.

Y ya que usas conio.h te puedes ahorrar el uso de dos.h para system cambiando ésta por getch, aunque lo que proceda es no usar la librería conio y sus funciones por no ser parte del estándar de C/C++.

Y sii como indica crack81 usas string has de incluir #include <string> en lugar de #include <cstring> y la comparación puede ser directa, sin el uso de strcmp:

Código
  1. if(Usuario=="Administrador" && Pass=="stun")

¡¡¡¡ Saluditos! ..... !!!!


« Última modificación: 3 Noviembre 2014, 05:30 am por leosansan » En línea

SilverStun

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda en un programa de c++ uso del strcmp :)
« Respuesta #3 en: 3 Noviembre 2014, 12:15 pm »

Muchas gracias ya pruebo a ver cualquier cosa les digo ya lo voy a intentar
 :P
En línea

dRak0

Desconectado Desconectado

Mensajes: 234


Ver Perfil WWW
Re: Ayuda en un programa de c++ uso del strcmp :)
« Respuesta #4 en: 3 Noviembre 2014, 13:21 pm »

Si utilizas ese codigo tendras muy poca seguridad.Solo bastara con analizar los strings del binario y hacer fuerza bruta al pass.Podrian depurar la aplicacion frenar en el strcmp y devolverle true y listo.

En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Ayuda en un programa de c++ uso del strcmp :)
« Respuesta #5 en: 3 Noviembre 2014, 13:28 pm »

Si utilizas ese codigo tendras muy poca seguridad.Solo bastara con analizar los strings del binario y hacer fuerza bruta al pass.Podrian depurar la aplicacion frenar en el strcmp y devolverle true y listo.

¿Y qué propones para evitar eso? Al final la decisión sobre si un acceso es válido o no la toma un salto condicional en ensamblador... cambiar ese código por su opuesto ( o cambiarlo por un salto incondicional) revienta totalmente el chequeo de usuario y contraseña.
En línea

dRak0

Desconectado Desconectado

Mensajes: 234


Ver Perfil WWW
Re: Ayuda en un programa de c++ uso del strcmp :)
« Respuesta #6 en: 3 Noviembre 2014, 14:48 pm »

Hacer todo lo posible para que no se encuentre ese salto.No soy un experto en ingenieria inversa , ni mucho menos en seguridad orientada a la defensa.
Lo primero que se me viene a la mente es:
Utilizar criptografia.
Añadir un packer.
Tecnicas anti-debugging.
Remover strings del binario.
Tratar de usar funciones que no son muy conocidas.Creo que lo primero que van a buscar es strcmp.

En fin como decis vos , siempre se va a poder.El tema es complicar un poco.
« Última modificación: 3 Noviembre 2014, 14:50 pm por L0RdP3I » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comparar cadenas sin usar strcmp « 1 2 »
Programación C/C++
Rockmore 12 21,568 Último mensaje 25 Octubre 2010, 07:01 am
por do-while
Ayuda con codigo en c++, problema con strcmp
Programación C/C++
ismaealejandroangel 3 4,202 Último mensaje 5 Octubre 2011, 01:57 am
por dewolo
Problemas con strcmp y strcat
Programación C/C++
francisco11 1 2,838 Último mensaje 31 Mayo 2013, 19:06 pm
por rir3760
problema con strcmp
Programación C/C++
m@o_614 1 2,486 Último mensaje 9 Octubre 2013, 22:48 pm
por Eternal Idol
Ayuda: Recorrer cadenas usando strcmp (alternativas), carácter '/0'.
Programación C/C++
Tolkien 2 2,564 Último mensaje 5 Junio 2014, 17:28 pm
por Tolkien
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines