?
Название
Руководитель
Компания
18
Иследование технологий модификации кода в исполняемой программе (Live Patching)
Станислав Кинсбурский
Технологии модификации кода в исполняемой программе (процессе), так же известные как «Live patching» означают модификацию бинарного кода «на лету» в с целью изменения логики исполнения процесса. Целью технологии является «горячее» исправление ошибок в процессах (в первую очередь CVE — Common Vulnerabilities and Exposures) без их остановки, снижая таким образом время простоя сервисов в реальных системах. Эта тема быстро набирает популярность как среди пользователей, так и среди разработчиков благодаря успеху таких технологий, как kpatch и kgraft.
Однако упомянутые технологии покрывают только ядро операционной системы, позволяя модифицировать его без перезагрузки, тогда как решения для пользовательских приложений в данным момент активно разработывается такими компаниями, как Amazon, Red Hat, Suse, Oracle.
Технология «Live patching» может быть грубо разделена на несколько подтехнологий:
  • Создание заплаты (patch’а)
  • Внедрение patch’а в адресное пространство процесса
  • Перенаправление исполнения процесса со старого кода на новый.
Возможные результаты НИР:
  1.  Статья на основе изучения и анализа существующих технологий «Live Patching» (kpatch, kGraft, Ksplice) с целью оценки их эффективности и применимости к модификации произвольного приложения, работающего в пространстве пользователя
  2.  Статья на основе разработки и исследования создание заплаты (patch’а) для произвольного куска бинарного кода
  3.  Статья на основе разработки и исследования методов внедрения patch’а в адресное пространство процесса
  4.  Статья на основе разработки и исследования методов перенаправление исполнения процесса со старого кода на новый при прикладывании patch’а и возврата в процесса в изначальное состояние в случае отката patch’а.