Keelogは、ハードウェアキーロガーファミリーの早期バージョンを一般に公開することを決定しました。これには、フルファームウェア&ソフトウェアのソースコード、キーロガーハードウェアの電気スキーマ、およびドキュメントが含まれています。このPS/2キーロガーは、世界中の何百人もの人々によって組み立てられ、使用された100%動作およびテスト済みのデバイスです。このハードウェアキーロガーの操作は、KeyGrabber PS/2に類似しています。記録されたキーストロークデータの取得および分析のためのアプリケーションKeyGrabを提供しています。ただし、このDIYハードウェアキーロガープロジェクトは、すべての欠陥を含み、現状有姿で提供され、一切の保証はありません。
開始する前に、このリストを確認して、このハードウェアキーロガープロジェクトを達成するために必要なすべてのツールとスキルを持っているかどうかを確認してください:
ハードウェアキーロガープロジェクトには、次のコンポーネントが必要です:
最後に、ハードウェアキーロガーのケーシングが必要です。 PS/2延長ケーブルと4インチの熱収縮チューブを購入するのが良いアイデアです。これらは、すでに作成されたキーロガーの周囲に熱的に巻き付けることができます。
マイクロコントローラーとEEPROMから始めて、コンポーネントをはんだ付けしてください。未使用のICピンは取り外すことができます。押しボタンがアクセス可能であることを確認してください。コンデンサを取り付ける際は、適切にバイアスがかかっていることを確認してください。
ハードウェアキーロガーをできるだけコンパクトにし、ただしショートサーキットを避けてください。デバイスが完成した後は取り外しが難しくなります。主要部品が接続された後、キーロガーサーキットは写真に示されているプロトタイプにやや似ているべきです。
最後に、PS/2コネクタをキーロガーにはんだ付けします。PS/2延長ケーブルを2つに切断し、それぞれを別々にはんだ付けするのが良いアイデアです。ケーブルの一部に熱収縮チューブを取り付けることを忘れないでください。キーボードとコンピュータの両方のコネクタ(CLK、DATA、VCC、GND)に使用されるPS/2ピンをすべて接続します。
ハードウェアキーロガーの周りに熱絶縁チューブを引く前に、コンポーネント間に少しの接着剤や樹脂を入れてデバイスをより堅牢にするのは良い考えです。最後に熱絶縁チューブを引き、はんだ付けされたコンポーネントに巻きつくまで加熱し、ボタンがアクセス可能になるように小さな穴を切り取ります。
ハードウェアキーロガーは、キーボードとコンピューターの間に挿入されると、キーデータの記録を開始します。キーロガーはコンピューターの動作に完全に透明であり、記録モードのソフトウェアによって検出されることはありません。キーボードから送信されたすべてのキーデータは、64 kB ハードウェア不揮発性EEPROMメモリに記録されます。記録モードはコンピューターにインストールされているオペレーティングシステムと完全に独立しています。
コンピューターでPS/2コネクタを見つけます。
キーボードを切断してください。
キーボードの代わりにハードウェアキーロガーを接続してください。
キーボードをキーロガーに接続します。コンピューターの電源を入れるとデータの記録が開始されます。
ハードウェアキーロガーがキーデータを記録したら、Windows 9X/Me/XP/2000を実行している任意のPCに取得できます。 ハードウェアキーロガーは、キーボードのキーストロークをシミュレートすることでこれを行います。 送信されたキーストロークデータは、KeyGrabアプリケーションによって取得されます。 これらのデータがコンピュータに送信されると、処理および分析が可能です。 データダウンロードを開始するための手順に従ってください。
KeyGrabアプリケーションを実行します。
キーボードの代わりにハードウェアキーロガーを接続してください。キーボードを接続しないでください。
KeyGrab タイトルバーをクリックして、アクティブなアプリケーションにします。
データのダウンロードを開始するには、ハードウェアキーロガーのボタンを押してください。 送信中にアクティブなアプリケーションを変更しないでください。 送信を終了するには、ボタンをもう一度押してください。 PCに希望のキーストロークデータがダウンロードされたときにこれを行ってください。
ハードウェアキーロガーを取り外し、PS/2キーボードを再接続してください。
KeyGrab のメインテーブルにキーストロークデータをダウンロードする際、記録中にログされたキーデータを表示するために自動的に前処理されます。データは降順で送信され、最近押されたキーを最初に表示します。以前に発生したキーストロークは後で送信されます。テーブルを手動で分析するか、一部の検索オプションを使用できます。
ユーザーにとって興味深い唯一の列はキー(2)とアクション(3)です。 これらの列は、押されたキーと解放されたキーをコード化します。 録画中にキーストローク履歴を表示するには、バーをスクロールします。 キーロガーデータは逆の時系列で送信されます(最新のキーストロークデータが最初に表示されます)。
Windows 9X/ME/2000/XP向けのDIYハードウェアキーロガーデータ取得および分析アプリケーション:
KeyGrab.zip (0.7MB)
AT89C2051マイクロコントローラーの完全なソースコード:
ソースコード - diy.asm
プリコンパイルされたAT89C2051ハードウェアキーロガーファームウェアも利用可能です:
BINファイル - diy.bin, HEXファイル - diy.hex
ハードウェアキーロガーを使用する際に発生する問題を回避するために、このセクションをお読みいただくことをお勧めします。
もしPS/2のキーボードケーブルを切断した場合、おそらく内部に6本のワイヤーがあるでしょう。そのうちの4本だけが意味を持ちます。2本は電源ラインであり、コンピュータの電源供給からのグラウンド(GND)と+5ボルト(VCC)です。残りの2本は非同期伝送ラインであり、データライン(DATA)とクロックライン(CLK)です。これらのラインが右図のDIN(a)およびminiDIN(b)コネクターピンに対応しているのがわかります。伝送は双方向ですが、キーボードが優れています。キーボードは押されたキーと離されたキーに関する情報を送信します。データチャンクは1バイトだけで、開始ビットで先行し、パリティビットとストップビットで後続します。キーボードは連続するビットをDATAラインに配置し、CLKラインに負のインパルスでクロックします。クロック周波数は10...30 kHzです。これは非常に優れたシリアルプロトコルであるはずですが、コンピュータが時折キーボードに情報を送信したいときがあります。そのような場合、PCは一時的にCLKラインを低に引き、キーボードがインパルスを生成し始めるのを待ちます。これらのインパルスが始まると、PCは自身の文字をDATAラインにクロックインします。下図には、キーボードからホスト(a)およびホストからキーボード(b)への伝送の状態図が示されています。このプロトコルには、伝送の中断、文字の繰り返しなどの例外がもちろんありますが、これらは非常に稀なケースです。
実際にキーボードのラインを通じて送信されるのは何ですか? 起動時には、キーボードとコンピューターの両方が初期化データを送信し、正常であることを通知します。コンピューターが正常に稼働しているとき、キーボードだけがデータを送信します。これは、発生したすべてのイベントに関するデータです。イベントとは、キーが押されたり離されたりすることを指します。標準キーが押されると、その「スキャンコード」と呼ばれるものが送信されます。すべてのキーには正確に1つのスキャンコードがあり、スキャンコードのマップが作成されます。キーが離されると、まず特別なバイト240(F0 hex)が送信され、次にキーのスキャンコードが送信されます。したがって、標準のキーストロークはラインを通じて3つの文字を送信します。キーを一定時間押し続けると、そのスキャンコードが設定された繰り返し遅延で継続的に生成されます。最終的に離すと、240(F0 hex)の文字が送信され、その後にスキャンコードが送信されます。 このプロトコルは、ホーム、エンド、矢印など、標準のPCキーボードに特殊なキーが存在しなければ、依然として優れたものとなるでしょう。特殊なキーが押されると、バイト224(E0ヘックス)が生成され、その後にスキャンコードが続きます。特殊なキーが離されると、シーケンス224、240(E0、F0)が発生し、その後にスキャンコードが続きます。通常のキーと特殊なキーは、スキャンコードのマップに関して、すべての国のキーボードレイアウトで共通です。さらに複雑になるストーリーにするために、Print ScreenとPauseという2つの超特殊なキーが存在し、これらのキーを押すと複数のスキャンコードのシーケンスが送信されます。キーボードインタフェースにとっては、これらのキーが存在しないと想定するのが最善です。
マイクロコントローラーは常にDATAおよびCLKラインを監視し、すべてのデータを取得します。 データはラインを下っていくときに不揮発性EEPROMメモリに記録されます。 これにより、ユーザーは後でキーボード上のすべてのイベントについて知ることができます。 ユーザーが録音が終了したと判断し、ボタンを押すと、ハードウェアキーロガーは再生モードに切り替わります。 キーボードは切断されている必要があります。そうでないと、データフローを解釈します。 キーロガーは内部ハードウェアメモリからキーデータをシミュレートし始めます。 KeyGrab アプリケーションは、キーロガーハードウェアからのデータフローを処理するためにアクティブである必要があります。 通常のキーはメモリに書かれたかのようにシミュレートされ、特殊キーは2バイトの16進コードを使用して送信されます。