C-Code so ändern return-Adresse in den code?

Schrieb ich ein C-Code ist unten :

#include<stdio.h>
#include<string.h>


void func(char *str)
{
        char buffer[24];
        int *ret;
        strcpy(buffer,str);
}

int main(int argc,char **argv)
{
        int x;
        x=0;
        func(argv[1]);
        x=1;
        printf("\nx is 1\n");
        printf("\nx is 0\n\n");
}

Können Sie bitte mir empfehlen, wie die Linie überspringen, printf("\nx 1\n");. Früher die Ahnung, was ich bekam, war zu ändern ret variable ist der return-Adresse der Funktion func.

Können Sie mir empfehlen, wie ändern Sie die return-Adresse in das obige Programm so, dass printf("\nx 1\n"); übersprungen.

Ich habe diese Frage, weil ich nicht weiß, wie man ändern Sie die return-Adresse.

Es wäre toll, wenn Ihr mir weiterhelfen.

Dank

Gefahr! Das ist wahrscheinlich nicht, was Sie tun möchten. Es wird führen, dass Sie viel zu viele Probleme.
Dein code macht keinen Sinn ... was versuchen Sie zu tun?
Außerhalb von bösartigem code, niemand braucht das zu tun, was Sie gefragt haben. Kommen Sie bitte mit einem anderen design.
Es ist nicht klar, was Sie tun möchten. Wollen Sie ein separates Programm, um dies zu tun? Reden wir über die Ausnutzung von software? Shellcode? Dies ist so gefährlich strcpy(buffer,str); `
Sind Sie versuchen, etwas ähnliches zu tun zu this?

InformationsquelleAutor Santosh V M | 2011-04-04

Schreibe einen Kommentar