#linux #memory-management #linux-kernel
Вопрос:
Я изучаю переполнение буфера на основе кучи для QEMU , где есть a memcpy()
, так что место назначения находится в анонимном отображении памяти.
Я пытаюсь предвидеть/предсказать, когда произойдет сбой, выяснив, какие части QEMU используют одно и то же анонимное отображение памяти. Тем не менее, это кажется довольно трудным делом из-за того, что по самой своей природе оно не поддерживается файлами.
На данный момент я могу только предполагать, что в момент сбоя последние N байтов данных, отправленных по сети, переписали часть памяти в этом конкретном анонимном отображении памяти. Эта перезапись привела к тому, что регистры использовали N байтов данных этой частью программы — и из-за недопустимых адресов, которые она пытается разыменовать, это вызывает ошибку сегментации. Однако даже после перезаписи я все еще не уверен, как точно выяснить, сколько последних N байтов вызвало сбой.