前から気になっていたんですが、FFFTP の INIファイルやレジストリに書かれているパスワードは、次に示すような 非常に簡単なコードで解読できる。
『パスワードわすれてしまった・・・』という場合は 以下のプログラムを参考に元のパスワードに戻すことができる。
まあ、FTPなんて ネットワーク上を パスワードが暗号化されずに送信されているので、この程度の簡単な暗号化でも特に問題ないと思いますけど・・。
逆にFTPのパスワードに利用している文字が他の用途で利用しているパスワードと同じ場合には、FTPのパスワードはすぐに変更するべき!!。
private string DecodeFFFTP(string enc)
{
if (enc == null) return "";
System.Text.StringBuilder plain = new System.Text.StringBuilder();
for(int i=0;i<enc.Length;)
{
int c1 = (int) enc[i];
int c2 = (int) enc[i+1];
int Rnd = c1 >> 4 & 0x3;
int Ch = c1 & 0xf | (c2 & 0xF) << 4;
Ch <<= 8;
Ch = Ch >> Rnd;
Ch = (Ch & 0xFF) | ((Ch >> 8) & 0xFF);
plain.Append((char) Ch);
i = i + 2 + c1 % 2;
}
return plain.ToString();
}
2010年3月追記
Gumblarウイルス関連でこのページにたどり着いた方が多いようなので補足しておきます。
FFFTP の バージョン Ver.1.97a 以降は、保存するパスワードの暗号化方法を変更しているそうです。バージョンアップしておきましょう。