HUAWEI HiSuite で暗号化されたバックアップデータを kobackupdec で復号する

HUAWEI HiSuite で暗号化されたバックアップデータを kobackupdec で復号する

こんにちは、じんないです。

私は以前、HUAWEI P20 Pro を使っていました。

スマートフォンの管理には HiSuite と呼ばれるソフトウェアが提供されており、ファイルの管理やバックアップが行えます。

ふと、過去のデータを参照したくなりバックアップデータをのぞいてみたのですが、すべてのデータが .enc 形式で暗号化されています。

001

HiSuite があれば復号できるのかと思っていましたが、どうやら元の端末が必要なようです。

端末はすいぶん前に売却していたので困っていましたが、GitHub に HiSuite でバックアップしたデータを復号できる Python スクリプトが公開されているのを発見しました。

なんともまぁピッタリな用途で感激しました。

想定環境

  • Windows 10
  • Python 3.11.0
  • pip 22.3.1

HiSuite によるバックアップデータがそのまま残っていることを前提としています。

準備

Python3 のインストール

Python の公式ページから最新版をインストールしておきます。
執筆時の最新版は 3.11.0 です。

インストールできたらコマンドプロンプトからバージョン確認しておきましょう。

C:\work>py --version
Python 3.11.0

pipsetuptools をアップグレードしておきます。

python -m pip install --upgrade pip setuptools

pycryptodome パッケージが必須要件となっているため、これもインストールします。

pip install pycryptodome

スクリプトの展開

RealityNet/kobackupdec: Huawei backup decryptor へアクセスし、Code から Download ZIP をクリックしてダウンロードします。

002

ダウンロードしたファイルは適当なフォルダへ展開しておきましょう。私は C:\work へ展開しました。

C:\work>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 7C8B-5034 です

 C:\work のディレクトリ

2022/12/04  17:46    <DIR>          .
2022/12/04  17:46    <DIR>          ..
2022/12/04  17:25    <DIR>          .github
2022/12/04  17:25            39,105 kobackupdec.py
2022/12/04  17:25             1,114 LICENSE
2022/12/04  17:25             4,311 README.md
2022/12/04  17:25                13 requirements.txt
2022/12/04  17:25               517 setup.py
               5 個のファイル              45,060 バイト
               3 個のディレクトリ  43,530,944,512 バイトの空き領域

ファイルを展開した C:\work でコマンドプロンプト開き、Python スクリプトが実行できることを確認します。下記ではコマンドのヘルプを参照しています。

C:\work>py kobackupdec.py -h
usage: kobackupdec.py [-h] [-e] [-w] [-v] password backup_path dest_path

Huawei KoBackup decryptor version 20200705

positional arguments:
  password         user password for the backup
  backup_path      backup folder
  dest_path        decrypted backup folder

options:
  -h, --help       show this help message and exit
  -e, --expandtar  expand tar files
  -w, --writable   do not set RO pemission on decrypted data
  -v, --verbose    verbose level, -v to -vvv

バックアップデータの復号

使用法は GitHub の Example を見るのが早いですが、コマンド例としては下記となります。

py kobackupdec.py -vvv <バックアップ時に指定したパスワード> "<バックアップデータのパス>" "<復号したファイルの出力先>"

-vvv は詳細にログを出すモードを指定しているもので、なくても大丈夫です。

<バックアップ時に指定したパスワード>HiSuite でバックアップ実行時に入力したパスワードです。端末ロックのパスワードではないので注意しましょう。

"<バックアップデータのパス>" は通常以下のようなパスになります。パスにスペースがあるとエラーになるので、ダブルクオーテーションでくくるようにしましょう。

C:\Users\<ユーザー名>\Documents\HiSuite\backup\HUAWEI P20 Pro_2021-12-04 21.00.02
※日時の部分はバックアップ実行日時が入ります。

"<復号したファイルの出力先>" はコマンド実行時に作成されるので、あらかじめ作成しておく必要はありません。

準備ができたらコマンドを実行します。容量やファイル数によっては数十分かかります。

コマンドが終了したら、"<復号したファイルの出力先>" で指定したフォルダを参照します。

無事、.enc の拡張子が外れて復号できていました!

003

何気なく撮った写真でもその場その場の思い出になっていたり、重要な情報が残っていたりするもんです。

9割以上諦めていましたが、このスクリプトに救われました。ありがとうございます!

参考

jinna-i