selbstmodifizierender Code
-
Hallo C-Fans,
ist es eigentlich in Ansi-C prinzipiell möglich selbstmodifizierneden Code zu schreiben wie etwa in Assembler? Wenn ja, wie könnte so etwas aussehen. Nachdem ich in 'C von A bis Z' fasziniert die Beispiele für Buffer-Overflows verfolgt habe, frage ich mich natürlich, wie weit man es mit C treiben kann.
-
Um selbst-modifizierenden Code schreiben zu können, mußt du dich schon etwas mit Maschinensprache auskennen - und sehr genau wissen, was der Compiler aus deinem Code macht. Dann kannst du natürlich die "richtige" Adresse im fertigen Programm heraussuchen und dort drin herum"pfuschen". Aber für einen Anfänger ist so etwas vermutlich noch nicht zu schaffen.
(btw, was genau willst du erreichen?)
-
Naja. Man kann auch ganz sauber selbstmodifizierenden Code schreiben, indem man neuen C-Code erzeugt und ihn erneut durch den Compiler jagt. Zur Strukturierung verwendet man zB XML ( http://www.gccxml.org/ ). So rund wie in Lisp wird das aber nie gehen.
-
cheopz schrieb:
Zur Strukturierung verwendet man zB XML ( http://www.gccxml.org/ ).
Hört sich wirklich nach einem netten Projekt an. Aber es gibt wohl noch zu viele Schwachstellen
http://www.gccxml.org/HTML/FAQ.html
-
Aber es gibt wohl noch zu viele Schwachstellen
Leider. Aber ich hatte noch nie die Zeit, zu testen, wie sehr das eigentlich stört.