我正在查看一些使用名为 DetourXS 的函数 detour 包的代码。我的应用程序针对 Microsoft Server 操作系统。Microsoft Research 也有一个 Detours 包,他们有一篇关于它如何工作的文章。他们修补加载到内存中的机器代码,并将无条件跳转到新注入的代码中的代码插入。
如果此代码通过在运行时修改机器代码来工作,则它们应该面临操作系统的安全限制。这将是操作系统上的一个严重安全漏洞,因为我可以修改任何关键的 DLL,如 kernel32 来做任何我想做的事情。我的理解是,如果用户进程试图修改已加载到内存中的 dll 的代码,它应该被操作系统停止。Widows Server OS 中是否有启用/禁用此检查的设置?
他们如何克服这一点?
有没有人有在企业生产环境中的任何应用程序中使用这种 detour 包的经验?