Обход exit(0) при переполнении буфера Linux

Тема в разделе "WASM.RESEARCH", создана пользователем shtoosha, 16 мар 2009.

  1. shtoosha

    shtoosha New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2009
    Сообщения:
    17
    Дана задачка.

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



    int main(int argc, char **argv)
    {
    char *p;
    char buffer[128];

    if (argc != 3) {
    fprintf(stderr, "enter two strings that need to be concatenated\n");
    return 1;
    }

    /* concatenate two input strings, and print them out together */
    p = buffer + strlen(argv[1]);

    strcpy(buffer, argv[1]);

    strcpy(p, argv[2]);

    fprintf(stdout, "%s\n", buffer);

    exit(0);
    }



    Нужно вызвать переолнение стека и вызвать шелл. Как делать перполнения стека , я знаю, но екзит не дает сделать нормальный ретерн.
    Мне было сказано, что надо найти адрес экзита или принта использу. objdump -R , но что с ним потом делать?