/* * Corrompe o conteúdo da pilha, desviando para função g. */ #include int g() { printf("Função g.\n"); return 0; } int f(int param_f) { int v[2]; printf("Função f.\n"); printf("¶m_f = 0x%X\n", (int) ¶m_f); printf("&v[4] = 0x%X\n", (int) &v[4]); printf("&v[3] = 0x%X\n", (int) &v[3]); printf("&v[2] = 0x%X\n", (int) &v[2]); printf("&v[1] = 0x%X\n", (int) &v[1]); printf("&v[0] = 0x%X\n", (int) &v[0]); v[3] = (int) g; /* Corrompe endereço de retorno... */ return 0; } int main() { f(0); return 0; }