Sortieren, aber nicht wirklich, es gibt kein eval()
in c, wie in vielen Skriptsprachen .
Was Sie jedoch beschreiben, ist eine Art Buffer Overflow-Exploit .
Wo Sie eine Zeichenfolge verwenden, um "Code" (nicht C-Syntax, aber Maschinencode) in den Adressraum nach dem Puffer zu schreiben. Hier ist ein nettes kleines Tutorial des Themas.
Verwenden Sie diese Informationen nicht zum Schreiben eines Virus: (
Sicher ist es möglich. Pufferüberlauf-Exploits verwenden es.
Siehe Shellcode für welche Art von Strings Sie platzieren können.
Grundsätzlich können Sie den Maschinencode auf den Stapel legen und zur Adresse springen. Dies führt zur Ausführung (wenn das Betriebssystem / die Maschine dies zulässt, siehe NX-Bit ).
Sie könnten vielleicht sogar versuchen, einen Memcpy von einer Funktionsadresse in einen String auf dem Stack zu schreiben und dann versuchen, zu der Adresse auf dem Stack zu springen.