剪切板Hook

detour

Windows剪切板是一种简单而且开销较小的IPC(InterProcess Communication,进程间通讯)机制,方便用户在不同程序间拷贝数据。在Windows操作系统中存在两种剪切板机制,即标准剪切板机制和OLE剪切板机制。

标准剪切板的基本机制是:Windows系统预留一块全局共享内存,提供数据的进程创建一个全局内存块,并将要传送的数据拷贝到内存中,接受数据的进程获取此内存块的句柄,并拷贝其中的数据。进程使用剪切板的一般步骤为:调用OpenClipboard()函数打开剪切板,调用GetClipboard Data()函数获取剪切板的内容,如果是设置剪切板内容,则调用EmptyClipboard()函数清空剪切板,然后调用SetCipboard Data()设置剪切板内容,调用CloseClipboard()关闭剪切板。因此,防泄密系统可以通过截获进程对USER32.dll中Open Clipboard、GetClipboardData、EmptyClipboard、SetClipboardData API函数的调用,实现对剪切板的控制。
自从OLE(Object Linking and Embedding,对象链接和嵌入)出现后,Windows操作系统出现了另一种剪切板机制――OLE剪切板机制。OLE剪切板使用IDataObject接口,相关的API函数和标准剪切板类似,主要有以下几个:
OleSetClipboard():在剪切板上放置一个IDataObject接口指针;
OleGetClipboard():从剪切板获取一个IDataObject接口指针;
OleFlushClipboard():清除剪切板中的内容,并释放IDataObject接口指针;

OleIsCurrentClipboard():判断剪切板上是否存在指定对象。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值