TeamViewer 如何在Windows上通过程序模拟Ctrl-Alt-Del?

8
团队查看器和其他远程控制软件如何模拟Alt-Ctr-Del键按下,也称为Windows安全关注序列(SAS)?
  1. 许多论坛声称这是不可能的,但事实证明他们错了。:)
  2. SendSAS 函数似乎是最明显的答案,但需要组策略更改,UIPI bypass等,因此绝对不是仅运行 TeamViewer 所做的。
  3. 另一个常见建议是使用专有的 SasLibEx 库,但该库已停止开发,仅适用于 Windows Vista
  4. 一个旧的 Stackoverflow 回答 差一点就可以,但它不能在更新的 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. 键盘过滤驱动程序 可能是一种解决方案,但它们需要代码签名和特殊权限才能安装,并且实现它们并非易事。我还使用 driverquery 验证了仅运行 Team Viewer 不会安装驱动程序。

那么,其他人是怎么做的呢?

SAS实现的内部提供了一个很好的概述,介绍了幕后发生的事情。


2
不,不是SendInput。 - David Heffernan
1
@lorand,有一个开源的远程软件,它是做什么的? - David Heffernan
1
@michael 众所周知,SAS无法通过伪造输入来生成。 - David Heffernan
1
@Lorlin,请查看此帖子。似乎使用了一个不公开的SASLib API。 - Rita Han
2
我刚刚用 UiAutomation 进行了测试。它可以工作(至少在我的操作系统上(_Windows 10 - 1803, 17134.829_)),但这不是最好的方法... - Castorix
显示剩余3条评论
1个回答

1

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

  • SAS实现的内部原理来自Mark E. Russinovich的书籍,提供了一个非常好的概述,介绍了幕后发生的事情。
  • 两个不知名的网站提供了一些接口本身的细节,但对我而言,这太少了,无法使用它们。( 链接1, 链接2

你有没有想到一种模拟 CAD 的方法? - tunafish24
如果您回答了这篇帖子,请提交答案。 - Lorlin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接