OXY NOTES

旧環境のバックアップファイルからFFFTPの設定をコピーする方法

意外に大変なFFFTPの設定をコピーする方法

公式で開発が終了しても、有志の手によってプロジェクトが引き継がれた大人気FTPソフトFFFTP。そのシンプルさと直感的なインターフェイスが人気の理由だと思いますが、設定の移行をするとなるとシンプルには行きません。

なぜかというと、FFFTPは設定ファイルをレジストリに保存しています。そのため、アプリケーションの入ったフォルダをコピーしても設定は引き継がれません。そのため以下の手順が必要になります。

旧環境で「接続 > 設定 > 設定をファイルに保存」として設定ファイルを保存して、
新しい環境で「接続 > 設定 > 設定をファイルから復元」で保存したファイルを読み込む。これが一番簡単な方法です。

しかし、今回は「旧環境を起動させることが困難」という特殊な場合に、FFFTPの設定を引き継ぐ方法を解説します。環境の移行に際して「HDDのバックアップさえあれば簡単だろう」と高をくくっていましたが、意外に大変だったので、メモとして残しておきます。

※ この方法は旧バージョンでのみ有効です。新しいFFFTPの場合は「マスターパスワードを導入したFFFTPでパスワードを復号化する方法」をご覧ください。


設定方法

1.まずHDDを外付けなどに接続して認識させます。

2.C: < Documents and Settings < User名 < ntuser.dat」に保存されているレジストリファイルを「MiTeC Windows Registry File Viewer(LFV)」というソフトで開きます。

3.Software\Sota\FFFTP\Options\」に「Host」というキーがあるので開きます。

それぞれ
HostAdrs」が「ホスト名(アドレス)
UserName」が「ユーザー名
Password」が「パスワード/フレーズ」に対応しています。

4.気がついたと思いますが、「Password」は暗号化されて保存されているため、コピペしてもログインできません。そこで暗号化を解除する必要があります。「こちらの解読ツール」に「Password」のキーをコピペしてください。

ご自由にとのことなので、保険としてこのサイトにもjavascriptを掲載しておきます。

<script type="text/javascript">
function deffftp() {
  In = window.prompt("Enter encrypted password text", "");
  if (In == null) return;
 
  Str = In.replace(/\\\\/g , '\\');
  Put = "";
  
  i = 0;
  while( i < Str.length ) {
    Get1 = Str.charCodeAt(i);
    Get2 = Str.charCodeAt(i+1);
    Rnd = Get1 >> 4 & 0x3;
    Ch = (Get1 & 0xF) | ((Get2 & 0xF) << 4);
    Ch <<= 8;
    if ((Get1 & 0x1) != 0) i++;
    i += 2;
    Ch >>= Rnd;
    Ch = (Ch & 0xFF) | ((Ch >> 8) & 0xFF);
    Put += String.fromCharCode(Ch);
  }
  window.alert("Decrypted password is '" + Put + "'");
}
</script>

以上で環境移行後にFFFTPの設定を外付けHDDからコピーできました。

このような憂き目に合わないためにも、FFFTPの「オプション > その他 > 設定をレジストリでなくINIファイルに保存する」のチェックボックスにチェックを入れておきましょう。
こうすることで新しい環境でINIファイルを読みこめば簡単に設定を引き継げます。