ОБНАРУЖЕНИЕ И СМЯГЧЕНИЕ ВРЕДА ОТ ЗЛОУМЫШЛЕННОГО ВЫЗОВА ЧУВСТВИТЕЛЬНОГО КОДА

1. По меньшей мере один считываемый компьютером носитель информации, содержащий одну или более инструкций, которые при их исполнении по меньшей мере одним процессором вызывают:
идентификацию областей кода, подлежащих отслеживанию;
зондирование и блокирование кодовых страниц, которые включают в себя идентифицированные области кода, и
повторное отображение упомянутых кодовых страниц как только исполняемых.
2. По меньшей мере один считываемый компьютером носитель информации по п. 1, в котором кодовые страницы повторно отображаются как только исполняемые в альтернативном виде расширенной таблицы страниц.
3. По меньшей мере один считываемый компьютером носитель информации по п. 1, дополнительно содержащий одну или более инструкций, которые при их исполнении по меньшей мере одним процессором вызывают:
захват ответвлений и возвратов непрямой виртуальной адресации для кодовых страниц.
4. По меньшей мере один считываемый компьютером носитель информации по п. 1, дополнительно содержащий одну или более инструкций, которые при их исполнении по меньшей мере одним процессором вызывают:
прием запроса на исполнение прикладного программного интерфейса для кодовых страниц; и
генерирование отказа исполнения в ответ на запрос.
5. По меньшей мере один считываемый компьютером носитель информации по п. 4, дополнительно содержащий одну или более инструкций, которые при их исполнении по меньшей мере одним процессором вызывают:
обработку отказов исполнения на кодовых страницах с помощью виртуализированного обработчика исключений.
6. По меньшей мере один считываемый компьютером носитель информации по п. 4, в котором отказ исполнения представляет собой отказ расширенной таблицы страниц.
7. По меньшей мере один считываемый компьютером носитель информации по п. 4, дополнительно содержащий одну или более инструкций, которые при их исполнении по меньшей мере одним процессором вызывают:
инспектирование контекстной информации, относящейся к отказу исполнения, для определения, является ли действительной точка входа для запроса исполнения прикладного программного интерфейса.
8. По меньшей мере один считываемый компьютером носитель информации по п. 7, дополнительно содержащий одну или более инструкций, которые при их исполнении по меньшей мере одним процессором вызывают:
отображение смещения входа на смещение стека, если точка входа недействительна.
9. Устройство, содержащее:
модуль мониторинга, выполненный с возможностью:
идентификации областей кода, подлежащих отслеживанию;
зондирования и блокирования кодовых страниц, которые включают в себя идентифицированные области кода; и
повторного отображения кодовых страниц как только исполняемых.
10. Устройство по п. 9, в котором модуль мониторинга дополнительно выполнен с возможностью:
повторного отображения кодовых страниц как только исполняемых в альтернативном виде расширенной таблицы страниц.
11. Устройство по п. 9, в котором модуль мониторинга дополнительно выполнен с возможностью:
захвата ответвлений и возвратов непрямой виртуальной адресации для кодовых страниц.
12. Устройство по п. 9, в котором модуль мониторинга дополнительно выполнен с возможностью:
приема запроса на исполнение прикладного программного интерфейса для кодовых страниц; и
генерирования отказа исполнения в ответ на запрос.
13. Устройство по п. 12, в котором модуль мониторинга дополнительно выполнен с возможностью:
обработки отказов исполнения на кодовых страницах с помощью виртуализированного обработчика исключений.
14. Устройство по п. 12, в котором отказ модуля мониторинга представляет собой отказ расширенной таблицы страниц.
15. Устройство по п. 12, в котором модуль мониторинга дополнительно выполнен с возможностью:
инспектирования контекстной информации, относящейся к отказу исполнения, для определения, является ли действительной точка входа для запроса исполнения прикладного программного интерфейса.
16. Устройство по п. 15, в котором модуль мониторинга дополнительно выполнен с возможностью:
отображения смещения входа на смещение стека, если точка входа недействительна.
17. Способ, содержащий этапы, на которых:
идентифицируют области кода, подлежащие отслеживанию;
зондируют и фиксируют кодовые страницы, которые включают в себя идентифицированные области кода; и
повторно отображают кодовые страницы как только исполняемые.
18. Способ по п. 17, в котором кодовые страницы повторно отображают как только исполняемые в альтернативном виде расширенной таблицы страниц.
19. Способ по п. 17, дополнительно содержащий этап, на котором:
захватывают ответвления и возвраты непрямой виртуальной адресации для кодовых страниц.
20. Способ по п. 17, дополнительно содержащий этапы, на которых:
принимают запрос на исполнение прикладного программного интерфейса для кодовых страниц; и
генерируют отказ исполнения в ответ на запрос.
21. Способ по п. 20, дополнительно содержащий этап, на котором:
обрабатывают отказы исполнения на кодовых страницах с помощью виртуализированного обработчика исключений.
22. Способ по п. 20, в котором отказ исполнения представляет собой отказ расширенной таблицы страниц.
23. Способ по п. 20, дополнительно содержащий этапы, на которых:
инспектируют контекстную информацию, относящуюся к отказу исполнения, для определения, является ли действительной точка входа для запроса исполнения прикладного программного интерфейса; и
отображают смещение записи на смещение стека, если точка входа недействительна.
24. Система для обнаружения и смягчения вреда от злоумышленного вызова чувствительного кода, содержащая:
модуль мониторинга, выполненный с возможностью:
идентификации областей кода, подлежащих отслеживанию;
зондирования и фиксации кодовых страниц, которые включают в себя идентифицированные области кода; и
повторного отображения кодовых страниц как только исполняемых, причем кодовые страницы повторно отображаются как только исполняемые в альтернативном виде расширенной таблицы страниц.
25. Система по п. 24, характеризующаяся тем, что выполнена с возможностью:
приема запроса на исполнение прикладного программного интерфейса для кодовых страниц;
генерирования отказа исполнения в ответ на запрос; и
инспекцию контекстной информации, относящейся к отказу исполнения, для определения, является ли действительной точка входа для запроса исполнения прикладного программного интерфейса.