УМЕНЬШЕНИЕ ВОЗДЕЙСТВИЯ ЭКСПЛОЙТОВ, ПОВРЕЖДАЮЩИХ СТЕК

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