微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以编写“访问剪贴板”监视程序的代码?

如何解决是否可以编写“访问剪贴板”监视程序的代码?

在Windows上是否有可能创建一个程序(C#甚至C ++或任何其他语言),该程序可以跟踪使用剪贴板的进程?

我有一个恶意软件,当我粘贴以太坊地址时会修改剪贴板。没有工具能够检测到该恶意软件...因为我是程序员,所以我想编写一种工具来帮助我找到恶意进程。

有没有可能?

非常感谢

解决方法

没有Win32 API来监视对剪贴板的访问,仅用于检测何时对剪贴板的内容进行了更改。

要执行您要的操作,您将必须编写一个直接钩住Win32 OpenClipboard()函数的DLL,例如使用detour,然后可以将该DLL注入所有正在运行的DLL中。进程,例如SetWindowsHookEx()AppInit_DLLs等。当您的钩子被调用时,它可以根据需要将有关调用进程的信息传达回您的主应用程序,例如process ID

,

您可以找到一个现有的信誉良好的工具来为您做到这一点: Sysmon v12.0由SysInternals提供。

尽管在文档页面上没有提及,但this指出

Sysmon 12添加剪贴板捕获

我筛选了一些帮助和参考,并确认以下配置有效:

  <Sysmon schemaversion="4.40">
  <CaptureClipboard />
  <EventFiltering>
    <RuleGroup name="" groupRelation="or">
      <ClipboardChange onmatch="exclude">
      </ClipboardChange>
    </RuleGroup>
  </EventFiltering>
</Sysmon>

您可以在Windows事件查看器中查看这些捕获的事件,

Applications and Services Logs/Microsoft/Windows/Sysmon/Operational

响应我在命令提示符下复制文本,我可以看到此记录的事件:

Clipboard changed:
RuleName: -
UtcTime: 2020-10-12 22:08:45.505
ProcessGuid: {0509ed25-cd58-5f84-41a3-050000003500}
ProcessId: 20708
Image: C:\Windows\System32\cmd.exe
Session: 3
etc...
,

另一种选择,适合DIY程序员:)

从您的代码中,将某些内容复制到剪贴板并延迟渲染:

digest::Digest

当某人(该恶意软件?)试图获取该文本时,您会收到一条Digest消息。如果您在此处放置断点并停止执行,则调用程序将在其::SetClipboardData(CF_TEXT,NULL); 调用或类似的操作中被阻止。

我不知道从这里去哪里。枚举所有过程?附加到每个调试器吗?看看他们的电话栈吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。