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

Discussion in 'WASM.UNIX' started by crypt, May 31, 2008.

  1. crypt

    crypt New Member

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

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

    rei3er maxim

    Blog Posts:
    0
    Joined:
    Jan 15, 2007
    Messages:
    917
    Location:
    minsk
    в направлении перехвата SIGSEGV
    man 2 sigaction
     
  3. crypt

    crypt New Member

    Blog Posts:
    0
    Joined:
    May 31, 2008
    Messages:
    3
    я имел ввиду перехватить при помощи специально сформированной строки.
     
  4. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    Если только читает, то этим ничего не добьешься.
    Почитай http://doc.bughunter.net/buffer-overflow/heap-corruption.html.
    Интересный пример.
     
  5. crypt

    crypt New Member

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

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    "." в конце ссылки убери.