gpt4 book ai didi

security - 从 Windows-7 登录屏幕创建事件

转载 作者:行者123 更新时间:2023-12-03 15:23:24 25 4
gpt4 key购买 nike

我问这个问题是因为事实证明,在 Delphi 中编写能够从登录屏幕运行的屏幕保护程序应用程序存在一些困难。

查看问题:Windows 7 logon screensaver in Delphi

我已将问题(或至少一个问题)缩小到特定的 Win API 调用 CreateEvent .

SyncEvent := CreateEvent(nil, True, False, '');
if SyncEvent = 0 then
RaiseLastOSError;

此代码仅在从登录屏幕调用时才会失败。 GetLastError 返回访问被拒绝。登录屏幕上的安全限制显然会阻止 CreateEvent(nil, True, False, '');根据需要创建事件。

(我真的不明白事件如何成为可利用的安全风险。)

所以,问题是:是否可以从登录屏幕创建事件?大概通过以下任一方式:

  • 使用适当的lpEventAttributes
  • 或者改为调用CreatingEventEx。

虽然这个问题是在 Delphi 中遇到的,但这更多是关于 Win API 的。因此,请随意用您选择的语言回答

最佳答案

尝试设置CreateEvent()的最后一个参数nil 而不是 '' 。之间存在差异一个 nil 指针和一个指向零长度字符串的指针。这 documentation没有说任何关于零的事情length 字符串的处理方式与 any 不同 其他命名字符串。因此,您的计算机上的其他位置可能存在另一个零长度命名的事件,您的应用程序无法访问该事件,因此当 CreateEvent() 尝试访问现有事件时会出现“访问被拒绝”错误,并且失败。如果你想创建一个未命名的事件, 使用nil代替。

关于security - 从 Windows-7 登录屏幕创建事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24726463/

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