【问题标题】:Most efficient way to code a keylogger? (VB.NET) [closed]编写键盘记录器的最有效方法? (VB.NET)[关闭]
【发布时间】:2012-12-28 03:12:23
【问题描述】:

我正在设计一个键盘记录器来进行诸如“查询最多的 Google 字符串”之类的统计数据......用户会知道它是一个键盘记录器,而不是“秘密”。

我研究了 GetAsyncKeyState WinAPI 函数,但我也遇到了使用钩子的情况。哪一个会占用最少的系统资源?记录击键的最有效方法是什么?

【问题讨论】:

  • 哦,好吧。如果是出于的原因,我想我们应该公开这段代码,嗯?
  • 我感觉到讽刺了吗?我从来没有问过代码,我问的是哪个更有效,GetAsyncKeyState 还是使用钩子。我已经知道代码了...
  • 以何种方式高效。速度、性能、准确性?啊,没关系,反正我宁愿把别针钉在眼睛里也不愿帮助别人写键盘记录器。
  • 我已经说过“什么会占用最少的系统资源”...我已经知道如何编写键盘记录器...任何有半点头脑的人都可以从 Google 复制和粘贴示例代码。我只是问哪种方法最有效。
  • 最少的系统资源? GetAsyncKeyState。这只是一个系统调用。 SetWindowsHooksEx 将把你的模块加载到每个进程中(当然,操作系统做了很好的技巧来保持效率,但仍然对许多进程进行了大量修改)。太糟糕了,这是一个不错的问题。

标签: vb.net winapi hook keylogger


【解决方案1】:

与其编写一个键盘记录器,它必须查看单个击键并手动尝试找出它们属于什么,我会编写一个浏览器插件,而不是查看被请求的实际 URL。然后,您可以查找 Google 网址,并在检测到时查看正在提交的实际搜索字词。比普通的键盘记录器更准确、更高效。

【讨论】:

  • 更通用的解决方案是运行环回代理,以便您可以捕获流量,而不管应用程序如何。这就是 Fiddler 等工具的工作原理。
  • 另外,我相信这些信息可以通过 google api 获得
  • 代理方法的缺点是它需要重新配置每个应用程序才能连接到它。 Fiddler 修改了 WinInet API 配置,这会影响所有 WinInet 应用程序,包括 IE。 IE 有自己的钩子请求 API,其他浏览器可能有类似的钩子。 “更通用”的解决方案是使用 WinPCap 透明地捕获和分析所有应用程序的所有套接字通信。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多