【问题标题】:How TeamViewer simulates Ctrl-Alt-Del on Windows programmatically?TeamViewer 如何以编程方式在 Windows 上模拟 Ctrl-Alt-Del?
【发布时间】:2019-11-02 04:01:26
【问题描述】:

TeamViewer 和其他远程控制软件如何模拟 Alt-Ctr-Del 按键,也称为 Windows 安全注意序列 (SAS)?

  1. 许多论坛声明这是不可能的,但事实却与他们背道而驰。 :)
  2. SendSAS 函数看起来是最明显的答案,但这需要更改组策略、UIPI bypass 等,所以它绝对不是仅运行 TeamViewer 所做的。
  3. 另一个常见的建议是使用专有的 SasLibEx 库,但该库已停产,works only up to Windows Vista
  4. An old Stackoverflow answer 差点错过,但它不适用于较新的 Windows
  5. SendInput 不适用于 Alt-Ctrl-Del,如果发送到 winsta0\winlogon 桌面也不行
  6. PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG( MOD_CONTROL | MOD_ALT, VK_DELETE)); - 不
  7. WmsgSendMessage 尝试了下一个人的建议,结果证明它并不比 SendSAS 更好或不同。
  8. Keyboard filter drivers 可能是一个解决方案,但他们需要代码签名和特殊权限才能安装,并且实施它们既不适合胆小的人。我还通过driverquery 验证了仅运行的 Team Viewer 不会安装驱动程序。

那么,知道其他人是怎么做到的吗?

Internals of SAS implementation 很好地概述了幕后发生的事情。

【问题讨论】:

  • 不,不是 SendInput
  • @lorand 有开源远程软件,它有什么作用?
  • @michael 众所周知,伪造输入无法生成SAS
  • @Lorlin 请检查this thread。似乎使用了不公开的 SASLib API。
  • 我刚刚用 UiAutomation 进行了测试。它可以工作(至少在我的操作系统上(Windows 10 - 1803, 17134.829)),但它是不是最好的方法...

标签: c++ security winapi teamviewer


【解决方案1】:

我发现有一个未记录的安全桌面 LRPC 接口Winlogon RPC 接口由 Windows 组件本身和一些第三方库使用。这是我得到的一切:

  • 来自 Mark E. Russinovich 书中的Internals of SAS implementation 很好地概述了幕后发生的事情
  • 两个不起眼的网站提供了有关界面本身的一些详细信息,但对我来说这太少了,无法使用它们。 (Link 1, Link 2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-24
    • 2016-02-17
    • 1970-01-01
    • 2023-01-27
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多