gpt4 book ai didi

windows - 防止跨进程 SendMessage 调用

转载 作者:可可西里 更新时间:2023-11-01 10:27:18 25 4
gpt4 key购买 nike

假设我有一个带有按钮的 Windows GUI 应用程序。我能够通过将 BM_CLICK 用作调用参数的 sendMessage winapi 调用来模拟对该按钮的点击。

现在,从安全的角度来看,我不希望这种情况发生。即我的目标进程应该忽略来自另一个进程的 sendMessage 调用。是否有这样做的规定?一种验证 sendMessage 调用的方法?

编辑:换句话说,我如何才能阻止诸如 Enabler、TurnitOn 之类的应用程序 http://www.raymond.cc/blog/how-to-enable-and-access-disabled-grayed-out-buttons-windows-and-checkboxes/从访问不打算由用户访问的功能?

最佳答案

如果应用程序运行在用户自己的上下文中,那么它只能做用户能做的事。其推论往往被忽视,即应用程序可以做的任何事情,用户也可以做。

因此,过分担心此类应用程序上的按钮是否“真的”被禁用实际上没有任何意义。无论如何,用户总能找到另一种方法来完成按钮要做的任何事情。 (这可能是通过使用注册表编辑器,获取另一个具有相同功能的应用程序,或者,如果没有其他方便的话,他们可以在调试器中运行该应用程序并强制它重新启用该按钮。)

适当的解决方案取决于上下文:

  • 在很多情况下,最合适的解决办法就是停止担心。您应该能够信任您的用户,如果不能,那就是人力资源问题,而不是技术问题。

  • 如果应用程序正在为在更高上下文中运行的某些东西提供接口(interface),例如反病毒软件的前端,那么安全决策(用户是否允许这样做?)应该发生在后端。也就是说,安全决策需要由不在用户控制范围内的代码做出。

  • 如果您是一名试图锁定自助服务机的系统管理员 - 一台将由不受信任的用户使用的机器,通常使用某种单一的 guest 帐户 - 那么您可以使用 AppLocker 或软件限制定义允许用户运行哪些应用程序的策略。由于 Enabler 和 TurnItOn 不在您的列表中,因此用户将无法运行它们来绕过您的安全策略。

关于windows - 防止跨进程 SendMessage 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com