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

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

  1. crypt

    crypt New Member

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

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

    rei3er maxim

    Публикаций:
    0
    в направлении перехвата SIGSEGV
    man 2 sigaction
     
  3. crypt

    crypt New Member

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

    n0name New Member

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

    crypt New Member

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

    n0name New Member

    Публикаций:
    0
    "." в конце ссылки убери.