LoginSignup
7
5

Symbol Desktop Wallet の LevelDB データが残ってる場合のサルベージ

Last updated at Posted at 2024-03-17

ログイン画面からプロファイルが消えてログイン出来ないけど、LevelDBファイルが残っている場合の秘密鍵サルベージ方法です。

流れは以下の通りです。

  • LevelDBファイルから暗号化された秘密鍵を取得
  • 復号のための生け贄になるプロファイルとアカウントをall版ウォレットで作成
  • 生け贄アカウントデータに復元したいアカウントの暗号化秘密鍵を移植
  • all版ウォレットのアカウントから秘密鍵表示

ファイルが残っているか確認

プロファイルやアカウント情報は下記のフォルダのldbファイルまたはlogファイルに入ってます。ファイルがない場合は、残念ながら消えてしまっているので復元は不可能です。

C:\Users\<ユーザー名>\.symbol-desktop-wallet\Local Storage\leveldb

データのバックアップ

間違って削除したり編集したりしても大丈夫なように、.symbol-desktop-walletフォルダごとコピーしてバックアップしておきます。zipで圧縮しておくとアイコンも違うし間違って消したり編集したりすることが減ると思います。

秘密鍵のサルベージ

ldbファイルまたはlogファイルをテキストエディタで開きます。バイナリデータ(文字以外のデータ)も含まれるため、メモ帳ではなくサクラエディタなどが良いです。

ファイルを開いたら、復元したいアドレスを検索します。アドレスの少し後ろにencryptedPrivateKeyがあるので、その値をコピーします。最後が=の172文字です。

ここで、encryptedPrivateKeyがない場合も復元は不可能です。

場合によっては、文字と文字の間にスペース(実際はヌル文字)が入っていることがあるので、よく探してください。

スクリーンショット 2024-03-17 175021.png

ヌル文字は頑張って削除するか、サクラエディタを使用して置換する方法があります。
サクラエディタの方が簡単なのでそちらがお勧めです。
正規表現をオンにして、
置換前: \x{00}
置換後: (何も入力しない)
で置換すると綺麗になります。

秘密鍵の復号

ウォレットに復号する画面を追加しました。

ログイン画面の上部にある「Go to Tools」をクリック

スクリーンショット 2024-03-17 185444.png

「Encrypted PrivateKey」に172文字の暗号化された秘密鍵を入力。
「Password」に暗号化された秘密鍵のあったプロファイルのパスワードを入力。
「Decrypt!!」ボタンを押すと復号されます。

スクリーンショット 2024-03-17 185542.png

秘密鍵の復号(公式all版ウォレットを使用する場合)

ブラウザを使ってデータの編集が出来る、all版ウォレットで新しくプロファイルを作って、出来た新しいアカウントにさっきコピーした暗号化秘密鍵を移植して復号します。

all版ウォレットをダウンロードし、復号したいアカウントのプロファイルと同じパスワードでプロファイルを作成します。

プロファイルが出来たら、一旦ログアウトしてF12を押しデベロッパーツールを起動します。

アプリケーションを選択し、左ペインからローカルストレージ>http://localhost:8080を選択します。

右ペインにキーと値が表示されるので、キーからaccountsを探します。
その値の文字列の中にあるencryptedPrivateKeyを先ほどコピーした値に変更します。
(文字数が多いので、テキストエディタに貼り付けて編集したほうがやりやすいと思います)

スクリーンショット 2024-03-17 101423.png

encryptedPrivateKeyの変更が終わったらログインします。

アカウントメニューを選択し、秘密鍵の表示ボタンを押してパスワードを入力すると、復元したいアドレスの秘密鍵が表示されるはずです。
(パスワードが異なるなどで失敗している場合は何も表示されないと思われます。)

スクリーンショット 2024-03-17 103553.png

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5