LimeChatに設定している、サーバーパスワードを忘れてしまった。IRCのサーバーパスワードと言うのは、結局、平文で送らなければならないわけだ。とすれば、LimeChat2は、何らかの方法で、平文のパスワードを保存しているはずである。
LimeChat2の設定ファイルを見てみたところ、それらしき文字列があった。ただし、何らかの方法で暗号化されている。もちろん、結局は、平文でサーバーに送るしかないパスワードなのだから、当然複合できるはずである。見たところ、何らかの方法で暗号化して、HEXにしているだけのようだ。
とはいえ、これだけの理由で、LimeChat2を解析するのは骨が折れる。なにか方法はないものか。
サーバーパスワードを表示するEDITコントロールは、●で埋まっている。これを取得してみるのはどうか。
残念ながら、設定ファイルに使われているのと同じ、HEXが返ってくるだけであった。抜かりはない。
とすると、limechatをデバッガにかけて解析するしかないのか。まてよ、結局、IRCサーバーには、平文でパスワードを送らなければならないわけだ。ならば、IRCサーバーに送るパケットを読めばいいのではないか。
パケットキャプチャをインストールするのも面倒だったので、socketをbindしてlistenしてacceptしてrecvするだけの、簡易なサーバーを書いた。結果として、無事、パスワードはサルベージできた。
しかし、この程度のことに、C++を使うのは、どうも、鶏を割くのに牛刀を用いているような気がしてならない。何か、socketも話せる、スクリプト言語をひとつ覚えるべきか。
しかし、私は好き嫌いが激しいので、世に出回っているスクリプト言語は、あまり気に入っていない。唯一、Javascriptは気に入っている。Javascriptに、明示的に整数やバイト列を扱う機能を付け加え、さらに、ファイルの入出力やソケットなどのライブラリを付け加えれば、結構面白い処理系になりそうなのだが。
No comments:
Post a Comment