PDA

Ver la versión completa : Problem C funcion printf



welvis30
18-12-2005, 21:28
Me bajao un manual sobre Buffer Overflows, y weno esta era la 1º practica, pro el comipilador me dice k la linea del "printf" es erronea, y nose por que, de programación en C se lo justo es decir, lo que es nada, solo entendo sintaxis como if o else, funciones main, char float, pro todo por encima.


#include <studio.h>
int main(int argc, char **argv) {
char buffer[20];
if (argc < 2) {
printf("No a introducido ningun argumento\n");
return 0;
}
strcpy (buffer, argv[1]); /*Esta es la funcion vulnerable*/
return 0;
}
/*--Final--*/

Printf es para imprimir en pantalla,pero nose las normas que debe seguir para poder incrustarlo. Si alguien me ayuda...

talien
19-12-2005, 03:53
#include <studio.h>
#include<string.h>
int main(int argc, char **argv) {
char buffer[20];
if (argc < 2) {
printf("No a introducido ningun argumento\n");
return 0;
}
strcpy (buffer, argv[1]); /*Esta es la funcion vulnerable*/
return 0;
}

Bueno creo que el pequeño error que cometes en tu programa es que no incluyes la libreria <string.h> que es donde se encuentra el prototipo de la fuancion strcpy. :0= Ah otra cosa, te recomendaria investigar un poco sobre la libreria <dos.h> para que puedan ser mas utiles las variables de entrada que usas en la funcion main. sigue aprendiendo...

welvis30
19-12-2005, 16:22
Talien, ya he incluido la libreria "<string.h>", pero me sigue dando los mismos problemas, y no me deja compilar por culpa de la linea
"printf("No a introducido ningun argumento\n");"

De todas formas, gracias por contestar y ahora mismo me miro cosas sobre la libreria <dos.h>

talien
20-12-2005, 03:19
Talien, ya he incluido la libreria "<string.h>", pero me sigue dando los mismos problemas, y no me deja compilar por culpa de la linea
"printf("No a introducido ningun argumento\n");"

De todas formas, gracias por contestar y ahora mismo me miro cosas sobre la libreria <dos.h>

Welvis30, disculpame por no haber revisado bien tu problema. Pero ya vi el otro error que ocurre con el printf. La libreria que deberias incluir es <stdio.h> y no <studio.h>. Espero que con eso tu problema se solucione. Si estas usando en borlanC te recomiendo revisar el index de la ayuda.Seleccionas HELP luego index INDEX y en la lista buscas cualquier duda....salud!!2 :p

welvis30
20-12-2005, 17:13
Aiba!! que fallo más grande jeje...
Gracias Talien, resuelto el problema, vaya tonteria de fallo.