HBS decipher tool for QNAP (not official)
Branch: master
Clone or download
Latest commit f0d5c4e Feb 5, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/main/java/qnapdecrypt MAVEN compliant project now Feb 4, 2019
.gitignore MAVEN compliant project now Feb 4, 2019
LICENSE Initial commit Oct 7, 2017
README.md Add signing key URL Feb 4, 2019
compile.sh add scripts to compile and run Apr 23, 2018
decrypt.sh Maven version which builds a single jar. Jun 30, 2018
pom.xml Improve POM informations Feb 4, 2019

README.md

Hybrid Backup Sync Decipher

GuardRails badge

Currently there is no official tool to decipher files from Hybrid Backup Sync (on QNAP devices) on all plateform. I've made this tool with some ideas : light (<1MB), fast (<3s for 300MB on my computer), universal, open source, with as less as possible dependencies.

This software is provided without any warranties, use it at your own risk.

Cat Cat

License:

Tool under GNU version 3 license.

Signing:

All files in my releases are signed with public key : https://keybase.io/yoannttz/pgp_keys.asc

Description:

First of all, this program is not supported or affiliated with QNAP Systems Inc. It is a small tool to decipher files ciphered with Hybrid Backup Sync with cloud providers. It requests the user password and cannot be affiliated with any hacking tool. Both GUI and CLI executables are provided, to be used in script environment or directly by user. After each decipher operation, the result plain file is compared to original plain file by a digest method (or by size in new HBS files >2.1).

Compatibility:

As a JAVA tool, this tool should be compatible with a large variety of OS, as long as a JRE 7+ is installed.

Requirements:

  • At least 512 MB of system memory. Recommended minimum is 1 GB.
  • A modern operating system. Both x86 and x64 are supported.
  • Oracle JAVA JRE 8+, can be found here:
    http://www.oracle.com/technetwork/java/index.html
  • Tested on Windows 10 64bits, CentOS 6 32 bits, Oracle JRE 8 and JRE 9.

** IMPORTANT : notes for MAC users **

  • for password field, use Ctrl+C / Ctrl+V to copy and past.

Deprecated if you are using JAVA after update 151

-Unlimited JCE policy for your JAVA version, can be found on Oracle website.
WARNING: without it JAVA cannot use AES 256 (used by Hybrid Backup Sync) so this tool cannot work. After each JAVA update, JCE policy must be re-applied.
-For JCE on MAC, change in 2 locations :
JRE: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/jre/lib/security
JDK: /Library/Java/JavaVirtualMachines/jdk1.x.x_xxx.jdk/Contents/Home/jre/lib/security


How to decipher a file (summarized):

Pre. You need to download files from your provider to access them locally. Executable must be unzipped

In CLI :

  1. Go to the current tool folder
  2. use command line : java -jar hybrid_backup_sync_decipher_XXX.jar -i PATH_FILE_TO_DECIPHER -o PATH_PLAIN_FILE (where XXX is the current version). You will be ask for the password, or you can provide it with '-p' option. You can add verbose mode with '-v'.

In GUI (require hbs_decipher_gui project) :

  1. Go to the current tool folder
  2. use command line : java -jar hybrid_backup_sync_decipher_XXX_gui.jar (or start it from your file explorer)
  3. Choose a source and destination files
  4. Start deciphering.
  5. A dialog show you the result and more informations are available in HBSUtility_report.txt in destination folder.

Note If you have visual problem :
You can start the GUI as a resizable window, with "r" command-line argument, or simply create a file "resizeEnable" in the same directory as hybrid_backup_sync_decipher_XXX_gui.jar.

Note on files choices: you can choose a folder as source or destination.
If a folder is chosen as source, the destination MUST be a folder too.
If a folder is chosen as destination but the source is a file, a file with the same name will be created in destination folder.
If the source and the destination are the same file or folder, a new file will be created, with same name prefixed by "plain_".