diff --git a/src/ncmcrypt.cpp b/src/ncmcrypt.cpp index 6524bd1..e2c7c73 100644 --- a/src/ncmcrypt.cpp +++ b/src/ncmcrypt.cpp @@ -391,12 +391,14 @@ NeteaseCrypt::NeteaseCrypt(std::string const &path) mMetaData = new NeteaseMusicMetadata(cJSON_Parse(modifyDecryptData.c_str())); } - // skip crc32 & unuse charset - if (!mFile.seekg(9, mFile.cur)) + // skip crc32 & image version + if (!mFile.seekg(5, mFile.cur)) { throw std::invalid_argument("can't seek file"); } + uint32_t cover_frame_len{0}; + read(reinterpret_cast(&cover_frame_len), 4); read(reinterpret_cast(&n), sizeof(n)); if (n > 0) @@ -410,4 +412,5 @@ NeteaseCrypt::NeteaseCrypt(std::string const &path) { std::cout << "[Warn] " << path << " missing album can't fix album image!" << std::endl; } + mFile.seekg(cover_frame_len - n, mFile.cur); }