Hallo,
vll kann mir hier ja jemand helfen. Ich habe eine Aufgabe über Buffer Overflows in einem einfachen C-Programm zu lösen. Leider kann ich kein C (nur Java). Also hier erstmal das Programm:
1. Frage: Was bedeutet das Sternchen bei dem übergebenen char (char ∗ buf)? Wird hier ein char übergeben?
2. Wird zuerst die Variable "buf" oder erst die Rücksprungadresse (EIP) und der EBP auf den stack gelegt?
Die Lösung die ich dafür habe sieht ungefähr so aus.. Aber ich frag mich ob die korrekt ist? Warum werden für "char" 4 Byte reserviert? Müsste es nicht 1 sein? Und warum liegt "char" vor "EIP" und "EBP" auf dem Stack?
[Blockierte Grafik: http://img64.imageshack.us/img64/5928/49362634.jpg]
vll kann mir hier ja jemand helfen. Ich habe eine Aufgabe über Buffer Overflows in einem einfachen C-Programm zu lösen. Leider kann ich kein C (nur Java). Also hier erstmal das Programm:
1. Frage: Was bedeutet das Sternchen bei dem übergebenen char (char ∗ buf)? Wird hier ein char übergeben?
2. Wird zuerst die Variable "buf" oder erst die Rücksprungadresse (EIP) und der EBP auf den stack gelegt?
Die Lösung die ich dafür habe sieht ungefähr so aus.. Aber ich frag mich ob die korrekt ist? Warum werden für "char" 4 Byte reserviert? Müsste es nicht 1 sein? Und warum liegt "char" vor "EIP" und "EBP" auf dem Stack?
[Blockierte Grafik: http://img64.imageshack.us/img64/5928/49362634.jpg]