キーボードから入力されたふりをさせるドライバ


警告

このドライバを組み込むことにより,セキュリティホールが生じる場合があります. セキュアな用途に用いるマシンにはインストールしないこと.

これは何?

デバイスファイルに出力されたスキャンコードをキーボードから入力されたように扱わせるドライバです.

キーボードドライバまわりで小細工しているので,コンソールでも X でも動作します.

実用的な意味はほとんどないので,良い子は手を出さないように. なお,作者自身にも実用的な用途はわかっておりません.

(追記) と思ったら,USB ジョイスティックに使えることがわかりました. このドライバを作ったときには作者自身も予想していなかった使い途だったりします :-)

インストール

  1. pseudokbd.tar.gz を get.
  2. アーカイブを開く
  3. make する
  4. 必要に応じて pseudokbd.o を適当なディレクトリに持って行く
  5. 必要に応じて /etc/conf.modules の設定をいじる
  6. 必要に応じてデバイスファイルを作成する
    	mknod /dev/pseudokbd c 10 241
    

使いかた

まずは insmod コマンドで pseudokbd モジュールをロードしましょう. 自動ロードの設定をしている場合は不要ですが.

で,その後,デバイスファイルにスキャンコードを出力します. 例えば,[A] のキーは,押したときに 0x1e, 離したときに 0x9e のスキャンコードを発生するので,

awk 'BEGIN{printf"\x1e\x9e"}' > /dev/pseudokbd
とすると,[A] のキーを押して離したと同じことが起こります.

asc2scan プログラム

英数字文字列をスキャンコードに変換するフィルタを作ってみました. 同梱の asc2scan という perl スクリプトです.

標準入力から読み込んだ文字列をスキャンコードに変換して標準出力へと吐き出します.使い方の一例として

echo ls -l | asc2scan > /dev/pseudokbd &
なんてすると,あら不思議.

あとは

find / -type d -exec echo ls {} \; | asc2scan > /dev/pseudokbd &
なんてのも思いつきますが…


Linux のお部屋のもくじ
いまいくんのページのもくじ
2002 年 8 月 21 日更新
imai@jr0bak.homelinux.net