Ich versuche, einen Pufferüberlauf auszuführen, um Code auszuführen, aber das Problem ist, dass wenn ich versuche, den Code nur auszuführen, um einen Pufferüberlauf zu erhalten, Windows eine Meldung mit der Meldung "Programm funktioniert nicht mehr Windows sucht nach einer Lösung für das Programm, also wenn ich versuche, sicherzustellen, dass es nur einen Überlauf um ein Byte hat, läuft das Programm nur, aber das Befehlsfenster wird nicht angehalten, damit ich den Segmentierungsfehler sehe Adresse. Welche mein Verständnis ich brauche, um es wäre zu ändern, und es ist meine gewünschten Fenster laufen zu lassen als der übergebene parameter.Here das einfache Programm.Pufferüberlauf Problem
#define BUF_LEN 5
int main(int argc, char **argv)
{
char buf[BUF_LEN];
if (argc > 1)
{
strcpy(buf, argv[1]);
}
return 0;
printf(buf);
system("pause");
}
Wie lang ist argv [1]? – zebrabox
Ich mache es mindestens mehr als Buff, zum Beispiel Buff ist jetzt 5 in diesem Programm, also mache ich es "AAAAAAAA" – Eric