ИЗМЕНЕНИЕ ПУТИ ВЫПОЛНЕНИЯ КОДА С ИСПОЛЬЗОВАНЕМ ПЕРЕНАПРАВЛЕНИЯ РЕЖИМА ЯДРА

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