В свободное время я исследую программу под Linux с закрытым исходным кодом. В ней есть ошибка. Она принимает от пользователя строку, корректно выделяет память в куче, а потом делает разбор строки. Причем, читает строку до тех пор, пока не встретит маркер завершения. Если маркера нет, читает, пока не кончится выделенная память. При работе с программой можно записать в память два буффера последовательно, примерно так: 100--buf1-->200....300--buf2-->400 Есть ли возможность перехватить управление программой? В каком направлении можно посмотреть?
Если только читает, то этим ничего не добьешься. Почитай http://doc.bughunter.net/buffer-overflow/heap-corruption.html. Интересный пример.
Понятно, я думал, что могу чего-то не знать. Ссылка недоступна. Впрочем, я уже почитал, как работает переполнение в куче. Вот есть ошибки типа double free, как их использовать, примеров не видел.