
Una herramienta para descifrar todos los archivos cifrados de Synology (SPK, PAT, ...)
Una herramienta para descifrar todos los archivos cifrados de Synology (SPK, PAT, ...). El trabajo de ingeniería inversa se explica en nuestra entrada de blog.
pip install -r requirements.txt
Primero debes extraer las claves de cifrado y colocarlas en un archivo JSON (p. ej., en keys.json).
Este archivo JSON debe tener el siguiente formato:
{
"keypairs": [
{
"keytypes": [0, 1, 2],
"signing": "hex_signing_key",
"master": "hex_master_key"
},
{
"keytypes": [6],
"signing": "hex_signing_key",
"master": "hex_master_key"
},
{
"keytypes": [3],
"signing": "hex_signing_key",
"master": "hex_master_key"
},
[...]
],
"dev_signing_key": "hex_dev_signing_key"
}
$ python3 synodecrypt.py --help
usage: synodecrypt.py [-h] [-o OUTPUT] [-v] [-k KEYTYPE] [-f KEYFILE] [-d] archive
positional arguments:
archive
options:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
name of the decrypted archive, defaults to archive path with ".tar" suffix
(default: None)
-v, --verbose
-k KEYTYPE, --keytype KEYTYPE
force a specific keytype (default: None)
-f KEYFILE, --keyfile KEYFILE
path to the json containing the encryption keys (default: ./keys.json)
-d, --dev-signing-key
use the dev signing key, must specify the keytype (default: False)
$ python3 synodecrypt.py BSM_BST150-4T_65374.pat
[+] found matching keys
[+] header signature verified
[+] 53 entries
DiskCompatibilityDB.tar
VERSION
hda1.tgz
indexdb.txz
model.dtb
rd.bin
synohdpack_img.txz
uboot_MANGO.bin
uboot_do_upd.sh
updater
zImage
checksum.syno
Synology.sig
packages/BeePhotos-BSM-armv8-1.1.0-10053.spk
packages/CloudSync-BSM-armv8-2.7.1-4001.spk
packages/CodecPack-BSM-rtd1619bmango-4.0.0-4051.spk
packages/FileStation-BSM-armv8-1.3.5-1721.spk
packages/HyperBackup-BSM-armv8-4.1.1-3735.spk
packages/MangoDrive-BSM-armv8-1.1.0-10555.spk
packages/Node.js_v20-BSM-armv8-20.13.0-2009.spk
packages/PHP7.4-BSM-armv8-7.4.33-0140.spk
packages/QuickConnect-BSM-armv8-1.0.8-0149.spk
packages/SMBService-BSM-armv8-4.15.13-2101.spk
packages/SynologyApplicationService-BSM-armv8-1.8.0-20663.spk
packages/SynologyDrive-BSM-armv8-3.4.1-25812.spk
packages/SynologyPhotosBSM-BSM-rtd1619bmango-1.7.0-0829.spk
packages/SynologyUniversalSearch-BSM-armv8-1.7.0-0743.spk
packages/USBCopy-BSM-armv8-2.2.1-2306.spk
packages/UniversalViewer-BSM-armv8-1.4.0-0611.spk
packages/bee-AdminCenter-BSM-armv8-1.1-0136.spk
packages/bee-Fonts-BSM-armv8-1.1.0-0007.spk
packages/exFAT-Free-BSM-armv8-7.3.0-0402.spk
texts/chs/strings
texts/cht/strings
texts/csy/strings
texts/dan/strings
texts/enu/strings
texts/fre/strings
texts/ger/strings
texts/hun/strings
texts/ita/strings
texts/jpn/strings
texts/krn/strings
texts/nld/strings
texts/nor/strings
texts/plk/strings
texts/ptb/strings
texts/ptg/strings
texts/rus/strings
texts/spn/strings
texts/sve/strings
texts/tha/strings
texts/trk/strings
[+] archive successfully decrypted
[+] output at BSM_BST150-4T_65374.tar