Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Belial & Grimoire en 11 Mayo 2012, 04:26 AM

Título: porque no puedo realizar este ejercicio?, es por el compilador?
Publicado por: Belial & Grimoire en 11 Mayo 2012, 04:26 AM
hola

tengo un codigo de un tutorial sobre exploits, pero no logro saber porque no me funciona

#include <stdio.h>
#include <string.h>

int main(){

int array[5];
int i;

for (i = 0; i <= 255; i++){

   array[i] = 10;
   
}

}


el codigo en si, funciona bien, pero supuestamente al compilarlo tendria que salir de esta forma

shellcoders@debian:~/chapter_2$ cc buffer2.c
shellcoders@debian:~/chapter_2$ ./a.out
Segmentation fault (core dumped)


sin embargo, cuando lo hago no me aparece

gazette@gazetto:~/ejercicios$ ./a.out
gazette@gazetto:~/ejercicios$


creen que podria ser por el compilador, utilizo gcc-4.6 y este tutorial es del 2007 creo todavia se usaba gcc-3.xx, pero no tengo idea si es por el compilador que tengo un resultado diferente o porque mas podria ser?

en la pagina de gnu solo esta la version gcc-3.2 pero no se si intentar instalarlo o si eso no tiene nada que ver

lo supuse porque AlbertoBSD en un tutorial explica las diferencias entre gcc-4 y gcc-3 al crear un exploit

espero me puedan ayudar, salu2

Título: Re: porque no puedo realizar este ejercicio?, es por el compilador?
Publicado por: durasno en 11 Mayo 2012, 07:07 AM
Hola! lo mas probable es q si sea por el compilador. De echo he visto a varios que crean un bucle parecido(pero no con el proposito q vos qres) y se ejecuta perfectamente. De todas formas deberias postear esto en la parte de hack, algo asi, q tiene esta misma pagina para q te ayuden mejor

Saludos
Título: Re: porque no puedo realizar este ejercicio?, es por el compilador?
Publicado por: Slava_TZD en 11 Mayo 2012, 09:11 AM
Tu array solo tiene 5 elementos, sin embargo intentas acceder y asignerle un valor a 250 elementos que no existen en el array. Con gcc versión 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC) da el fallo que tiene que dar de la otra manera...

for (i = 0; i <= sizeof(array)/sizeof(int); i++){

  array[i] = 10;

}




Título: Re: porque no puedo realizar este ejercicio?, es por el compilador?
Publicado por: Don Pollo en 11 Mayo 2012, 17:08 PM
Cita de: Tzhed\ Kyperf/ en 11 Mayo 2012, 09:11 AM
Tu array solo tiene 5 elementos, sin embargo intentas acceder y asignerle un valor a 250 elementos que no existen en el array. Con gcc versión 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC) da el fallo que tiene que dar de la otra manera...

for (i = 0; i <= sizeof(array)/sizeof(int); i++){

  array[i] = 10;

}






Está hablando de exploits. Ya sabe que debe dar el fallo, lo que pasa es que no se lo muestra.
Título: Re: porque no puedo realizar este ejercicio?, es por el compilador?
Publicado por: Eternal Idol en 11 Mayo 2012, 17:37 PM
Aumenta el 255 ese hasta que falle ...
Título: Re: porque no puedo realizar este ejercicio?, es por el compilador?
Publicado por: Belial & Grimoire en 11 Mayo 2012, 23:15 PM
hola gracias por responder, pero no lo consigo

#include <stdio.h>
#include <string.h>

int main(){

int array[5];
int i;

for (i = 0; i <= 4990; i++){

   array[i] = 10;
   
}

}


Citargazette@gazetto:~/ejercicios$ gcc -o arrar_for arrar_for.c --no-stack-protector -g -z execstack
gazette@gazetto:~/ejercicios$ ./a.out
gazette@gazetto:~/ejercicios$

Creen que si seria conveniente que instale gcc-3.2 y ver que pasa?, lo pregunto porque en los repositorios ya no esta y tendre que hacerlo manualmene, el problema es saber si debian lo aceptara por las actualizaciones

salu2
Título: Re: porque no puedo realizar este ejercicio?, es por el compilador?
Publicado por: Belial & Grimoire en 12 Mayo 2012, 04:49 AM
use backtrack 5 use el compilador gcc-4.1

quise hacer la prueba y ahora si me funciono, el problema es que cuando lo quise volver a intentar tuve que hacer varios intentos para que me volviera a funcionar, creen que sea normal?

root@root:~/Desktop# ./a.out
Segmentation fault (core dumped)
root@root:~/Desktop# ./a.out
root@root:~/Desktop# ./a.out
root@root:~/Desktop# ./a.out
root@root:~/Desktop# ./a.out
Segmentation fault (core dumped)


talvez si es el compilador aunque aumente de 255 a 1700, pero no se si sea normal o porque saldria asi?, porque ya intente instalar en debian ( que es el que utilizo ), gcc-3.4.6 pero no se instalo hubo mucho errores y por mas tutoriales que segui me salian errores

ahorita estoy usando backtrack 5 y el ggc mas bajo es gcc-4.1