Анонимное отображение памяти — Используется какой частью программы?

#linux #memory-management #linux-kernel

Вопрос:

Я изучаю переполнение буфера на основе кучи для QEMU , где есть a memcpy() , так что место назначения находится в анонимном отображении памяти.

Я пытаюсь предвидеть/предсказать, когда произойдет сбой, выяснив, какие части QEMU используют одно и то же анонимное отображение памяти. Тем не менее, это кажется довольно трудным делом из-за того, что по самой своей природе оно не поддерживается файлами.

На данный момент я могу только предполагать, что в момент сбоя последние N байтов данных, отправленных по сети, переписали часть памяти в этом конкретном анонимном отображении памяти. Эта перезапись привела к тому, что регистры использовали N байтов данных этой частью программы — и из-за недопустимых адресов, которые она пытается разыменовать, это вызывает ошибку сегментации. Однако даже после перезаписи я все еще не уверен, как точно выяснить, сколько последних N байтов вызвало сбой.