linux, heap, ошибка чтения

Тема в разделе "WASM.UNIX", создана пользователем crypt, 31 май 2008.

  1. crypt

    crypt New Member

    Публикаций:
    0
    Регистрация:
    31 май 2008
    Сообщения:
    3
    В свободное время я исследую программу под Linux с закрытым исходным кодом. В ней есть ошибка. Она принимает от пользователя строку, корректно выделяет память в куче, а потом делает разбор строки. Причем, читает строку до тех пор, пока не встретит маркер завершения. Если маркера нет, читает, пока не кончится выделенная память. При работе с программой можно записать в память два буффера последовательно, примерно так:
    100--buf1-->200....300--buf2-->400

    Есть ли возможность перехватить управление программой? В каком направлении можно посмотреть?
     
  2. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    в направлении перехвата SIGSEGV
    man 2 sigaction
     
  3. crypt

    crypt New Member

    Публикаций:
    0
    Регистрация:
    31 май 2008
    Сообщения:
    3
    я имел ввиду перехватить при помощи специально сформированной строки.
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Если только читает, то этим ничего не добьешься.
    Почитай http://doc.bughunter.net/buffer-overflow/heap-corruption.html.
    Интересный пример.
     
  5. crypt

    crypt New Member

    Публикаций:
    0
    Регистрация:
    31 май 2008
    Сообщения:
    3
    Понятно, я думал, что могу чего-то не знать. Ссылка недоступна. Впрочем, я уже почитал, как работает переполнение в куче. Вот есть ошибки типа double free, как их использовать, примеров не видел.
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    "." в конце ссылки убери.