Подтвердить что ты не робот

Как выглядит карта памяти процесса Windows?

Это может быть дублирующий вопрос. Я хочу знать, как выглядит карта памяти процесса Windows? Я ищу подробности. Просьба предоставлять ссылки на блоги, статьи и другую соответствующую литературу.

4b9b3361

Ответ 1

Мне всегда нравится видеть вещи, а не просто читать теорию. Оказывается, согласно это сообщение в блоге, что если вы открываете программу с помощью windbg, даже если она не работает, она все равно отображается на адресное пространство, как если бы оно было. Таким образом, ваше окно разборки фигурально (не гарантируется загрузка кода на этих точных адресах) показывает вам, что находится на этих адресах с точки зрения кода:

WinDbg working

Конечно, вы не можете гарантировать эти адреса благодаря ASLR, но это дает вам идею/заставляет вас думать: адреса памяти - это просто код. Код и память хранятся в одном и том же (виртуальном) пространстве, в соответствии с архитектурой Von Neumann, которую реализуют большинство современных компьютеров. К сожалению, так же, как нет стека, кучи и т.д., Вы не можете двигаться и смотреть на них.

Этот сообщение в блоге от Microsoft дает вам обзор высокого уровня виртуального адресного пространства. Как вы можете видеть, половина из них зарезервирована для использования операционной системой, а другая половина вы можете заполнить тем, что у вас есть (код, malloc вызовы, распределения стека и т.д.).

В терминах того, как адресное пространство работает на стороне пользователя, эта диаграмма помогла мне понять это. Он связал в этом вопросе, в котором содержится ряд достойных ссылок относительно различных возможных карт. Помните, однако, что макет в памяти будет отличаться по части.

Важно помнить, что все это, программа, данные, стек, куча, материал ядра - это одна большая последовательная серия адресов памяти, хотя они могут или не могут фактически перевести на фактические адреса памяти.

Пока вы на нем, вам также может быть интересно, как исполняемый файл появляется на диске. Эта статья и в этой статье, в частности, анализ формата файла PE. В последней статье также есть небольшая диаграмма, показывающая, как данные mmap'd.