我有这段代码需要修改以演示整数溢出漏洞。我以前从未这样做过,需要一个良好的开端。
#include <stdio.h>
int myprintf(char* argv){
    printf("%s\n", argv);
    return 0;
}
int myprintf2(char* argv){
    printf("hello world\n");
    return 0;
}
int main(int argc, char** argv){
    struct foodata{
        int (*fptr)(char*);
        int buf[4];
    } foo;
    foo.buf[0] = 0xdeadbeef;
    foo.fptr = myprintf;
    foo.buf[0xffffffff] = myprintf2;
    foo.fptr(argv[1]);
    return 0;
}