2010-04-09

limechatに設定しているサーバーパスワードを忘れた場合

LimeChatに設定している、サーバーパスワードを忘れてしまった。IRCのサーバーパスワードと言うのは、結局、平文で送らなければならないわけだ。とすれば、LimeChat2は、何らかの方法で、平文のパスワードを保存しているはずである。

LimeChat2の設定ファイルを見てみたところ、それらしき文字列があった。ただし、何らかの方法で暗号化されている。もちろん、結局は、平文でサーバーに送るしかないパスワードなのだから、当然複合できるはずである。見たところ、何らかの方法で暗号化して、HEXにしているだけのようだ。

とはいえ、これだけの理由で、LimeChat2を解析するのは骨が折れる。なにか方法はないものか。

サーバーパスワードを表示するEDITコントロールは、●で埋まっている。これを取得してみるのはどうか。

残念ながら、設定ファイルに使われているのと同じ、HEXが返ってくるだけであった。抜かりはない。

とすると、limechatをデバッガにかけて解析するしかないのか。まてよ、結局、IRCサーバーには、平文でパスワードを送らなければならないわけだ。ならば、IRCサーバーに送るパケットを読めばいいのではないか。

パケットキャプチャをインストールするのも面倒だったので、socketをbindしてlistenしてacceptしてrecvするだけの、簡易なサーバーを書いた。結果として、無事、パスワードはサルベージできた。

しかし、この程度のことに、C++を使うのは、どうも、鶏を割くのに牛刀を用いているような気がしてならない。何か、socketも話せる、スクリプト言語をひとつ覚えるべきか。

しかし、私は好き嫌いが激しいので、世に出回っているスクリプト言語は、あまり気に入っていない。唯一、Javascriptは気に入っている。Javascriptに、明示的に整数やバイト列を扱う機能を付け加え、さらに、ファイルの入出力やソケットなどのライブラリを付け加えれば、結構面白い処理系になりそうなのだが。

No comments: