Hallo zusammen, bitte beachten Sie für die Klausur die Hinweise, die Sie auf meiner Webseite finden; Direkt-Link: http://swf.hgesser.de/b1-ss2016/prakt/Hinweise-zur-Klausur.pdf (es geht darum, dass anders als in der Probeklausur keine Multiple-Choice-Aufgaben vorkommen). Zur Aufgabe 2 vom letzten Ueungsblatt noch kurze Hinweise: b) Beispielausgabe: esser@debian:~/prakt/ue05$ gcc -o memory-test memory-test.c esser@debian:~/prakt/ue05$ ./memory-test global: 0x08049800 (32768 K) on_stack: 0xbf6e73c0 ( 2048 K) malloced1: 0xb6626008 (16384 K) malloced2: 0x0b07f008 ( 1 K) 26150: ./memory-test 08048000 4K r-x-- /home/esser/prakt/ue05/memory-test 08049000 4K rw--- /home/esser/prakt/ue05/memory-test 0804a000 32768K rw--- [ anon ] 0b07f000 132K rw--- [ anon ] b6626000 16392K rw--- [ anon ] b776b000 12K rw--- [ anon ] b777b000 12K rw--- [ anon ] b777e000 4K r-x-- [ anon ] bf6e6000 2056K rw--- [ stack ] total 52792K Zuordnung: - global: liegt im regulären Datenbereich des Programms (2. Zeile in mmap-Liste), Rechte: rw (also lesen, schreiben, aber nicht ausführen) - on_stack: hohe Adresse, liegt im Stack (letzte Zeile in mmap-Liste) - malloced1: ist ein eigener Speicherbereich, der als "anonymous mapping" bereitgestellt wird (5. Zeile in mmap-Liste, in Block der Groesse 16392K) - malloced2: dito (4. Zeile in mmap-Liste, in Block der Groesse 132K) c) malloced1 und malloced2 sind die Anfangsadressen von mit malloc() angeforderten Speicherbereichen. Der Typ dieser Variablen ist einfach ein Pointer-Typ, darum könnte sizeof() nur die Grsse des Pointers (4 Byte) ausgeben. d) Address Space Layout Randomization sorgt dafür, dass z.B. Bibliotheksfunktionen bei jedem Programmstart über andere Adressen verfügbar sind; das erhöht die Sicherheit des Rechners, weil Angreifer sich nicht darauf verlassen können, dass Funktionen an festen Adressen erreichbar sind. Damit ist z.B. die Manipulation des Stacks (mit dem Ziel, beim Verlassen einer Funktion nicht in die aufrufende Funktion, sondern in eine Bibliotheksfunktion zu springen) nicht mehr möglich. Schoene Gruesse, Hans-Georg Esser