Я просматриваю код, в котором используется пакет обхода функций под названием DetourXS. Мое приложение предназначено для операционных систем Microsoft Server. Microsoft Research также имеет пакет Detours, и у них есть статья о том, как это работает. Они исправляют машинный код, который загружается в память, и вставляют код, который делает безусловный переход во вновь введенный код.Как сделать обходные пакеты обходной защиты
Если этот код работает, изменяя машинный код во время выполнения, они должны сталкиваться с ограничениями безопасности операционной системой. Это будет серьезным провалом безопасности в ОС, поскольку я могу изменить любую критическую DLL, такую как kernel32, чтобы делать все, что я хочу. Я понимаю, что если пользовательский процесс пытается изменить код уже загруженной в память dll, он должен быть остановлен ОС. Есть ли в Widows Server OS параметр для включения/выключения этой проверки?
Как они преодолевают это?
Есть ли у кого-нибудь опыт использования такого рода обходных пакетов в любом приложении в производственной среде предприятия?
Обратите внимание, что Microsoft не будет рассматривать вызовы поддержки от вас или ваших клиентов, если вы используете Detours. И тот факт, что ваше приложение использует его, искусственно делается явным, заставляя ваше приложение связываться с _marker_ DLL - ** Detoured.dll ** – Andrey 2011-03-04 01:04:23