【发布时间】:2010-12-08 07:28:24
【问题描述】:
我正在查看一些使用名为 DetourXS 的函数 detour 包的代码。我的应用程序针对 Microsoft Server 操作系统。 Microsoft Research 也有一个 Detours 包,他们有一篇关于它如何工作的文章。他们修补加载到内存中的机器代码,并在新注入的代码中插入无条件跳转的代码。
如果此代码通过在运行时修改机器代码来工作,则它们应该面临操作系统的安全限制。这将是操作系统上的一个严重安全漏洞,因为我可以修改任何关键的 DLL,如 kernel32 来做任何我想做的事情。我的理解是,如果用户进程试图修改已加载到内存中的 dll 的代码,它应该被操作系统停止。 Widows Server OS 中是否有启用/禁用此检查的设置?
他们如何克服这个问题?
有没有人有在企业生产环境的任何应用程序中使用这种 detour 包的经验?
【问题讨论】:
-
请注意,如果您使用 Detours,Microsoft 将不会考虑来自您或您的客户的支持电话。你的应用程序使用它的事实是通过强制你的应用程序与 marker DLL - Detoured.dll 链接而人为地显式显示的