キーロギング(情報を得るためにキーストロークをロギングする)である悪意のある(または悪意のない)ソフトウェアを検出するプログラムを作成する場合があります。
- どのような戦術が使用されますか?
- 探すべき特定のコードはありますか?
- 検索すべき特定の場所はありますか?
- 私はこれらの言語に堪能なので、JavaまたはPerlが好きです
- これらの言語は機能しますか?
- この場合に使用するより良い言語はありますか?
- 何が使われるのでしょうか?
- コード?
- アルゴリズム?
- 働き?
キーロギング(情報を得るためにキーストロークをロギングする)である悪意のある(または悪意のない)ソフトウェアを検出するプログラムを作成する場合があります。
何をしようとしているかによると思います。既知のキーロギング プログラムを探している場合は、ファイル システムを検索してファイルの署名を表示できる任意のソフトウェアを使用できます。ただし、不明なプログラムを検出したいようです。これが厳密に可能だとは思いません。キーロギング アプリケーションは、キーストロークを受動的にリッスンできるため、探すことができるアクティブな署名はありません。コンピューターで実行されるはずのソフトウェアを理解してから、実行を開始する新しいソフトウェアを検出する方がおそらく簡単です。必ずしもキーストローク ロギング ソフトウェアである必要はありませんが、未承認のソフトウェア (少なくともまだ承認されていないソフトウェア) です。
キーストロークは、アプリケーションでサブスクライブできるイベントとしてシステムにブロードキャストされます。これは、ゲームやその他のプログラムがキーボード入力を使用する方法です。システム全体が、いつキーが押されたのか、どのキーが押されたのかを認識しています。誰が聞いているかわかりません。
別の言い方をすれば、これが可能であれば、すべてのウイルス対策およびスパイウェア対策アプリケーションには、これらの種類のソフトウェアをすべて検出して削除するオプションがあるため、ソフトウェア キーストローク ロガーが殺されます。これに似たオプションがありますが、これは既知のキーストローク ロガーの既知の署名に基づいています。
入力がキーログに記録されているかどうかを把握しようとしているだけのプログラムとして、不適切に作成されたキーロガーの場合、ロガーがバッファをリサイクルするときの定期的な遅延など、いくつかの時間パターンを探すことができますが、通常、キーロガーは非常にうまく機能します。書き込まれ、ドライバーチェーンに挿入されるため、通常のチェーンとは区別できません。
その場合、キーロガーを検出する唯一の希望は、非標準ドライバーを探してドライバーチェーンを検査することです (ただし、一部のキーロガーは標準ドライバーに感染する可能性があります)。これは、Windows ランドでは特に簡単ではありません (このような低レベルの検査)。 .
キーロギングが行われているかどうかを検出するために、ドライバーチェーンの定義だけでなく、実行されている実際のコードに実際にアクセスできるようにするには、ウイルス対策/マルウェア対策フックにプラグインする必要がありますが、これは困難です。 、官僚主義に満ちており、C / C ++以外ではほとんど元に戻すことができません