Hallo liebe HaBo Community,
in meinem Programm habe ich mit malloc Speicher reserviert und in diesen OP Codes geschrieben. Die Startadresse des Codes ist in der int Adresse gespeichert.
Schaue ich mit TSearch an der Speicherstelle nach finde ich dort meine OP Codes wie erwartet. Am Ende meines Programmes versuche ich mit dem Inline Assembler einen JMP zu _Adresse, also zu den OP Codes zu machen. Compiliert wird alles korrekt undlaufen tut es auch - bis zu dem JMP. Dann stürzt das Programm ab (Fehlerberichterstattung) - beim Debugging zeigt sich dann "Segementation Faul" obwohl ich den Speicher reserviert habe. Ich benutze DevC++ mit GCC. Vielen Dank für eure Hilfe.
Speicherreservierung:
Jump:
MfG, Frohest Fest!
in meinem Programm habe ich mit malloc Speicher reserviert und in diesen OP Codes geschrieben. Die Startadresse des Codes ist in der int Adresse gespeichert.
Schaue ich mit TSearch an der Speicherstelle nach finde ich dort meine OP Codes wie erwartet. Am Ende meines Programmes versuche ich mit dem Inline Assembler einen JMP zu _Adresse, also zu den OP Codes zu machen. Compiliert wird alles korrekt undlaufen tut es auch - bis zu dem JMP. Dann stürzt das Programm ab (Fehlerberichterstattung) - beim Debugging zeigt sich dann "Segementation Faul" obwohl ich den Speicher reserviert habe. Ich benutze DevC++ mit GCC. Vielen Dank für eure Hilfe.
Speicherreservierung:
Code:
buffer = (char*) malloc (length+1);
if (buffer==NULL) exit (1);
Jump:
Code:
AdressPointer = (int**)&buffer; //Offset von *buffer
Adresse = (int)*AdressPointer; // Hole aus Offset von *buffer Offset
asm volatile("jmp _Adresse");
MfG, Frohest Fest!