全能逆向安全班_第五次作业_远程的键盘记录
远程向服务器发送本地键盘记录,处理了包的格式和粘包的问题笔记:
1.键盘钩子获取到数据,需要将数据从(动态链接库发送到客户端)。
2.客户端将数据发送给服务端
1)动态库发送数据给客户端:
windows消息机制(ref:7.8:EmptyWin32)
电脑使用者--操作系统(知道用户什么时候做了什么操作,但是不知道如何处理)--应用程序(知道怎么做(业务逻辑),不知道什么时候做)
消息处理(窗口回调函数,键盘点击了怎么办--OnKeyDown)
消息码(可能来自操作系统,可能来自另一个程序,可能来源人的点击)
WM_KEYDOWN OnKeyDown()
WM_MOUSEDOWN OnMouseDown()
WM_PAINT OnPaint()
WM_COPYDATA消息 OnCopyData() //一种跨进程的方式
自定义消息 处理函数
消息很多,所有消息会排队--消息队列(只有有窗口的或者有消息循环的程序才有消息队列)
消息循环
while(true){
//从消息队列取消息
GetMessage
//派发消息
DispatchMessage
//先查找窗口
//判断有没有消息钩子,如果有则先调用
//分发消息给消息回调函数
}
2)客户端将数据发送给服务端
需要处理粘包问题(不是太快的问题,而是没有处理好)
服务端 <----------------客户端(两个功能)
1) cmd
2)键盘钩子
//1.定义一个标识符,表示数据不同的类型
//2.区分类型数据的边界,定义一个长度,表示数据有多大
map hash表(拿空间换时间)
键 键值
key value
VKK_F1(宏) "VK_F1"
ref: 7.8:testMap
作业:1.完成远程的键盘记录(添加包格式,处理粘包问题) 必须要做
2.编写界面(两个功能,1.cmd 2.键盘) 挑战
源码:
链接:https://pan.baidu.com/s/1Xw6TvzfFu0TPHXN-BYBB1A 提取码:pf4x
页:
[1]