summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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*"
74 "Creative ZEN"; 74 "Creative ZEN";
75static const char tl_zenxf_key[] = "1sN0TM3D az u~may th1nk*" 75static const char tl_zenxf_key[] = "1sN0TM3D az u~may th1nk*"
76 "Creative ZEN X-Fi"; 76 "Creative ZEN X-Fi";
77static const char tl_zenmo_key[] = "1sN0TM3D az u~may th1nk*"
78 "Creative ZEN Mozaic";
77static const char tl_zv_key[] = "1sN0TM3D az u~may th1nk*" 79static const char tl_zv_key[] = "1sN0TM3D az u~may th1nk*"
78 "Creative Zen Vision"; 80 "Creative Zen Vision";
79static const char tl_zvw_key[] = "1sN0TM3D az u~may th1nk*" 81static const char tl_zvw_key[] = "1sN0TM3D az u~may th1nk*"
@@ -102,6 +104,7 @@ player_info_t players[] = {
102 {"Zen Vision:M 60GB", null_key_v2, fresc_key_v1, tl_zvm60_key, false}, 104 {"Zen Vision:M 60GB", null_key_v2, fresc_key_v1, tl_zvm60_key, false},
103 {"ZEN", null_key_v4, fresc_key_v2, tl_zen_key, false}, 105 {"ZEN", null_key_v4, fresc_key_v2, tl_zen_key, false},
104 {"ZEN X-Fi", null_key_v4, fresc_key_v2, tl_zenxf_key, false}, 106 {"ZEN X-Fi", null_key_v4, fresc_key_v2, tl_zenxf_key, false},
107 {"ZEN Mozaic", null_key_v4, fresc_key_v2, tl_zenmo_key, false},
105 {"Zen Vision", null_key_v2, fresc_key_v1, tl_zv_key, false}, 108 {"Zen Vision", null_key_v2, fresc_key_v1, tl_zv_key, false},
106 {"Zen Vision W", null_key_v2, fresc_key_v1, tl_zvw_key, false}, 109 {"Zen Vision W", null_key_v2, fresc_key_v1, tl_zvw_key, false},
107 {"Zen Micro", null_key_v1, fresc_key_v1, tl_zm_key, true}, 110 {"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,
494 std::cerr << "Failed to decrypt the input file." << std::endl; 497 std::cerr << "Failed to decrypt the input file." << std::endl;
495 return false; 498 return false;
496 } 499 }
500
501 if (*(dword*)&data[0] != 'EDOC' &&
502 *(dword*)&data[0] != 'CODE')
503 {
504 std::cerr << "Failed to decode the input file." << std::endl;
505 return false;
506 }
497 507
498 if (verbose) 508 if (verbose)
499 std::cout << "[*] Writing file data..." << std::endl; 509 std::cout << "[*] Writing file data..." << std::endl;