c++ - TeamViewer 如何以编程方式在 Windows 上模拟 Ctrl-Alt-Del?

标签 c++ security winapi teamviewer

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很好地概述了幕后发生的事情。

最佳答案

我发现,有一个未记录的安全桌面 LRPC 接口(interface) 又名。 Winlogon RPC 接口(interface) 由 Windows 组件本身和一些第三方库使用。这是我得到的所有信息:

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

关于c++ - TeamViewer 如何以编程方式在 Windows 上模拟 Ctrl-Alt-Del?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56667231/

相关文章:

c++ - 在 64 位 Debian 环境下编译 32 位 qt 源码

C++ 虚拟 "file"流

c++ - 从函数返回 lambda 并传入引用捕获

ruby-on-rails - Authlogic 密码的安全性如何?

security - 为什么没有 Sec-WebSocket-Key1 的 WebSockets 不安全?

对 CreateFile 的 Java JNI 调用始终返回 INVALID_HANDLE_VALUE 和 ERROR_ACCESS_DENIED

c# - C/C++ 与 C# 的互操作性命名约定

c++ - 匹配 CRTP 类的固定大小数组

python - Django 中存储用户上传的文件的位置

winapi - 所有调整大小操作的 Windows 消息