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)
| | |-+  Duda en compilación
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda en compilación  (Leído 3,155 veces)
GhostLT

Desconectado Desconectado

Mensajes: 82


To know the truth,you must risk everything


Ver Perfil
Duda en compilación
« en: 1 Mayo 2010, 19:43 pm »

Me atore y no se x que y creo que todo esta bien declarado y el archivo.txt se encuentra dentro de la carpeta donde guarde mi proyecto

Errores:
26 `FuncionVulnerable' undeclared (first use this function)
39 invalid conversion from `char' to `const char*'
39 initializing argument 1 of `FILE* fopen(const char*, const char*)'
56`int FuncionVulnerable(char*)' used prior to declaration


Código
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. /* declaramos la funcion que usaremos para leer el fichero*/
  7.  
  8. int LeerFichero(char*, char*, int);
  9.  
  10.  
  11. int main()
  12.  
  13. {
  14.  
  15. /* esta es la funcion principal en la que declaramos una variable de tipo char que
  16. contendra el string recogido desde "archivo.txt"*/
  17.  
  18.        char buffer[1000];
  19.        char nombre[]="archivo.txt";
  20.  
  21. /* tras declarar las variables llamamos a la funcion leer fichero() que metera en la
  22. variable buffer el contenido del archivo.txt, luego llamaremos a la funcion vulnerable
  23. para que copie el contenido de este a una variable de buffer de menor tamaño que esta */
  24.  
  25.        LeerFichero(buffer,nombre,1000);
  26.        FuncionVulnerable(buffer);
  27.        system("pause");
  28.        return 0;
  29. }
  30.  
  31. /* la funcion leer fichero, abre el fichero, lo lee y lo guarda en la variable buffer */
  32.  
  33. int LeerFichero(char*Fbuffer, char Fnombre, int Limite)
  34. {
  35.        int c;
  36.        int n=0;
  37.  
  38.        FILE *f;
  39.        f=fopen(Fnombre,"r");
  40.        while ((c=getc(f))!=EOF)
  41.        {
  42.                if(n<Limite)
  43.                {Fbuffer[n++]=c;}
  44.        }
  45.        Fbuffer[n++]=0;
  46.        fclose(f);
  47.        return 0;
  48. }
  49.  
  50. /* funcion vulnerable. Esta funcion es lo importante de este codigo, en esta función
  51. recibimos el puntero donde se encuentra la variable que contiene el texto introducido
  52. en archivo.txt. La funcion copiara el contenido de esta variable a una variable de tipo char
  53. de un tamaño inferior a la variable buffer. seguidamente mostrara el contenido de esta.*/
  54.  
  55. int FuncionVulnerable(char *cptr)
  56. {
  57.        char buff[300]= "Datos";
  58.        strcpy(buff,cptr);
  59.        printf("%s\n\n",buff);
  60.        return 0;
  61. }
  62.  
  63.  
  64. /* Funcion Oculta. Ninguna de las otras funciones anteriares llama a esta */
  65.  
  66. int FuncionOculta()
  67. {
  68.        printf("Este texto nunca deberia de mostrarse");
  69.        return 0;
  70. }
  71. /code]
  72.  
  73.  


En línea

There is some fiction in you truth, and some truth in you fiction
Komodo


Desconectado Desconectado

Mensajes: 352



Ver Perfil
Re: Duda en compilación
« Respuesta #1 en: 1 Mayo 2010, 20:08 pm »

Simple, creo que en CodeBlocks son más explícitos con el error.

lo primero es que se te ha pasado declarar la funcion FuncionVulnerable y eso ya te generará error.

Y el segundo problema te lo deja claro, fopen tiene está sintaxis: FILE* fopen(const char*, const char*)

Y tu has declarado Fnombre como un simple char y no un const char*

Así que ya sabes char* Fnombre y declara la función


En línea


GhostLT

Desconectado Desconectado

Mensajes: 82


To know the truth,you must risk everything


Ver Perfil
Re: Duda en compilación
« Respuesta #2 en: 1 Mayo 2010, 20:47 pm »

Gracias Komodo!!!
Puse hasta arriba la declaración
Código
  1. int FuncionVulnerable(char *cptr);/code]
  2.  
  3. y modifique
  4.  
  5. [code=cpp] int LeerFichero(char*Fbuffer,char*Fnombre, int Limite)
  ;-)[/code]
En línea

There is some fiction in you truth, and some truth in you fiction
Komodo


Desconectado Desconectado

Mensajes: 352



Ver Perfil
Re: Duda en compilación
« Respuesta #3 en: 2 Mayo 2010, 11:26 am »

De nada hombre,
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda - Proceso de compilación
Programación C/C++
criskapunk 6 3,271 Último mensaje 11 Diciembre 2012, 03:48 am
por naderST
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines