Я смотрю на некоторый код, который использует пакет функции обхода под названием DetourXS.Мое приложение предназначено для операционных систем Microsoft Server.У Microsoft Research также есть пакет Detours, и у них есть статья о том, как он работает.Они исправляют машинный код, который загружен в память, и вставляют код, который делает безусловный переход во вновь введенный код.
Если этот код работает путем изменения машинного кода во время выполнения, они должны столкнуться с ограничениями безопасности:Операционная система.Это может стать серьезным недостатком безопасности в ОС, поскольку я могу изменить любую критически важную DLL, например, kernel32, чтобы делать все, что захочу.Насколько я понимаю, если пользовательский процесс пытается изменить код DLL, уже загруженный в память, он должен быть остановлен ОС.Есть ли в ОС Widows Server параметр, позволяющий включить / отключить эту проверку?
Как они преодолевают это?
Есть ли у кого-нибудь опыт использования такого рода обходных пакетов в любых приложениях в производственной среде предприятия?