Y probando un poco he llegado a este programita:
Código
#include <stdio.h> char var[10]; void leer(){ int i = 0; for (i = 0; i < 10; i++){ } } int clong(char a[]){ int i = 0; while(a[i] != '\0'){ i++; } return i; } int compare(char a[], char b[]){ int i = 0; int ret = 1; int max; if (clong(a) >= clong(b)){ max = clong(b); }else{ max = clong(a); } for (i = 0; i < max; i++){ ret = ret&&(a[i] == b[i]); } return ret; } int main(){ char a[10]; char cadena[] = "hola"; leer(); if (compare(var, cadena)){ }else{ return 0; } return 0; }
He probado a meterle casi un millon de 'A's y no he conseguido nada, ni siquiera un segment fault ni el tipico mensaje de linux de "detected stack smash" (o algo parecido), alguien puede decirme como hacer un buffer overflow con este programa?
Muchas gracias!!