Speicherzugriff
-
hallo,
ich will gerne einen beliebigen speicherauszug mit assembler (in c) ausgeben lassen. ich scheitere leider daran, dass ich nicht weiss, wie ich speicheradressen ansprechen soll. das problem dabei ist, welche adressen kann ich gefahrenlos abrufen (wahrscheinlich alle.. solange ich nur lese.. aber wer sagt das ich nicht ausversehen was verändere...)? wie ist der speicher segmentiert?!? wie laufe ich durch den speicher?!?
wenn jemand ein beispielprogramm hat, oder eine seite kennt die mir mit tutorials oder bspprogs weiterhilft, wäre ich dankbar, wenn er sie mir nennen könnte.vielen dank im voraus
evil user
-
Im Grunde würde es reichen, dass du einen Zeiger durchlaufen lässt und jeweils den Inhalt der Adresse ausgibst:
char* ptr = 0; while(++ptr) // sobald der überlauft ist aus { cout << (int)ptr << ' ' << (char)*ptr << ' ' << (int)*ptr << endl; }
Aber jedes Betriebssystem wird dich da abstürzen lassen. Zumal du gar nicht weist ob du bei einem Zugriff auf die Adresse (Hausnummer) 135 nicht nach Übersetzung durch das Betriebssystem (Virtueller Speicher, etc.) nicht ganz woanders hinzeigt.
Heißt: Du musst auf OS-Spezifische API zugreifen.
MfG SideWinder