bpx GetClipboardData 下获取剪贴板断点。F9运行起来,到然后先输入一些数字,再Ctrl+V粘贴一下数据进去,此时断点断下,如下图所示。
然后单击此处返回至上一层,此处我们来分析一下GetClipboardData函数,百度一下发现它的代码实现由好几步实现,分别是:
-
GlobalLock 锁定剪贴板该内存块
-
GlobalSize 获取该内存块大小
-
GlobalUnlock 解除锁定
-
CloseClipboard 关闭剪贴板
从上步骤可以看出粘贴内容的步骤为这样,然后我们双击覆盖自身的函数进去,发现是一个jmp语句,双击到大jmp后的语句,取消所有断点,设置断点在此处,F4过来,再取消当前断点,发现该语句是sub rsp,28 ,F9运行三次我们就能看到右侧堆栈窗口,发现我们剪贴板里的数据了。