summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/zenutils/source/zen_crypt/main.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/utils/zenutils/source/zen_crypt/main.cpp b/utils/zenutils/source/zen_crypt/main.cpp
index 3442baf738..29f0a843ae 100644
--- a/utils/zenutils/source/zen_crypt/main.cpp
+++ b/utils/zenutils/source/zen_crypt/main.cpp
@@ -74,6 +74,8 @@ static const char tl_zen_key[] = "1sN0TM3D az u~may th1nk*"
"Creative ZEN";
static const char tl_zenxf_key[] = "1sN0TM3D az u~may th1nk*"
"Creative ZEN X-Fi";
+static const char tl_zenmo_key[] = "1sN0TM3D az u~may th1nk*"
+ "Creative ZEN Mozaic";
static const char tl_zv_key[] = "1sN0TM3D az u~may th1nk*"
"Creative Zen Vision";
static const char tl_zvw_key[] = "1sN0TM3D az u~may th1nk*"
@@ -102,6 +104,7 @@ player_info_t players[] = {
{"Zen Vision:M 60GB", null_key_v2, fresc_key_v1, tl_zvm60_key, false},
{"ZEN", null_key_v4, fresc_key_v2, tl_zen_key, false},
{"ZEN X-Fi", null_key_v4, fresc_key_v2, tl_zenxf_key, false},
+ {"ZEN Mozaic", null_key_v4, fresc_key_v2, tl_zenmo_key, false},
{"Zen Vision", null_key_v2, fresc_key_v1, tl_zv_key, false},
{"Zen Vision W", null_key_v2, fresc_key_v1, tl_zvw_key, false},
{"Zen Micro", null_key_v1, fresc_key_v1, tl_zm_key, true},
@@ -494,6 +497,13 @@ bool decrypt(shared::bytes& data, int mode, player_info_t* pi,
std::cerr << "Failed to decrypt the input file." << std::endl;
return false;
}
+
+ if (*(dword*)&data[0] != 'EDOC' &&
+ *(dword*)&data[0] != 'CODE')
+ {
+ std::cerr << "Failed to decode the input file." << std::endl;
+ return false;
+ }
if (verbose)
std::cout << "[*] Writing file data..." << std::endl;