4

在不被键盘记录器检测到甚至没有被 SetWindowsHookEx LowLevel Keyboard Hooking 检测到的情况下,将键发送到应用程序的替代方法是什么。我知道有用于此目的的虚拟键盘,但我想要它的技术?有没有与之相关的开源项目?

4

3 回答 3

2

您可以使用 WM_SETTEXT 消息直接设置目标应用程序中特定编辑框的文本值,但您必须先将您的进程注入目标进程。

这样做的好处是,即使使用 SetWindowHookEx 钩住了消息,如果不同样注入进程,也无法找出字符串。为了真实地拦截这种消息,恶意软件必须挂钩计算机上的每个进程,即使这样它也没有用,因为大多数文本不是键盘文本,所以恶意软件无法知道什么是键盘文本以及什么是键盘文本不是。

另一种方法是使用 WM_COPYDATA,但这是外部可挂钩的。

于 2013-03-07T19:45:15.197 回答
1

最好的方法是通过剪贴板发送 ASCII 字符串,这是一些程序使用的聪明方法,比如 Bruce Schneier 的优秀 KeePassX 或 PasswordSafe

于 2013-03-07T19:14:55.163 回答
0

如果发送 4 位或 6 位 PIN 就足够了,您的应用程序可能会要求通过随机映射输入它 ->

    (1)  (2)  (3)
    zih  lbg  qsw

    (4)  (5)  (6)
    ukx  ...  ...

代码 1234 将输入为 ibqu 或 zlsx。
当然,这在客户实际输入他的 PIN 作为数字的那一刻就受到了损害......

当长度增加时,这种方法变得越来越烦人——所以我提供这个只是你标题中要求的一种替代方法,而不是最好的。

于 2013-03-09T09:44:17.733 回答