Kirjoittaja Aihe: Simppeli buffer overflow  (Luettu 1637 kertaa)

Tubee

  • Käyttäjä
  • Viestejä: 21
    • Profiili
Simppeli buffer overflow
« : 30.10.08 - klo:19.30 »
Olen yrittänyt testata buffer overflown toimintaa, mutta en mitenkään saa ylikirjoitettua paluuosoitetta mainista. Omasta funktiostani voin ylikirjoittaa paluuosoitteen, mutta mainista ei sitten mitenkään. Onko paluuosoite edes tallennettu pinoon, kun käyttöjärjestelmä kutsuu ohjelman mainia? Olen kuullut että joissain muissa distroissa tämä onnistuisi, mutta ei ainakaan xubuntussani, eikä gentoossa. Ohessa koodi joka siis ei ylikirjoita eip:tä. Miksi?
Koodia: [Valitse]
#include <string.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
char buffer[20];
strcpy(buffer, argv[1]);
printf("ok\n");
return 0;
}