1. Написать программу (желательно использовать язык Си/Си++), которая печатает Hello World и виртуальный адрес этой строки в памяти. Программа должна печатать сообщение с периодом в 1 секунду. 2. На целевой системе (лучше виртуальной машине) включить в ОС Windows режим отладки. Все дальнейшие действия проводятся на целевой системе, каждое действие фиксируется скриншотами и комментариями, которые идут в отчёт:
a. Перевести целевую систему в режим отладки ядра
b. Определить используемый механизм страничной адресации (PAE, PML4 и т.п., см. https://wiki.osdev.org/Paging)
c. Запустить на целевой системе разработанную программу. Все остальные действия проводить не закрывая программу.
d. С использованием механизмов отладки найти в списке процессов разработанную программу и запомнить адрес DirBase (это значение CR3).
e. Затем с помощью программы RwEverything и его окна Memory найти область физической памяти со строкой Hello World. Для этого потребуется вручную преобразовать виртуальный адрес из программы, который печатается раз в секунду, в физический адрес. В отчёте привести рассчёты.
f. Описать PageTableEntry (или аналогичную структуру) страницы со строкой ‘Hello World’.
g. Заменить в окошке Memory несколько символов в строке Hello World и убедиться, что строка изменилась на экране программы.
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |