最近听音乐,听得有点烦躁,想把某鹅的音乐传到某易,发现某鹅vip载的音乐都是加密的比较烦躁,网上找了好多大都要钱,所以还是自力更生写了个转码工具,不做任何商用。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/*** * @author oftoo**/
public class DecodeQMC {private int x = -1;private int y = 8;private int dx = 1;private int index = -1;private int[][] seedMap = { { 0x4a, 0xd6, 0xca, 0x90, 0x67, 0xf7, 0x52 },{ 0x5e, 0x95, 0x23, 0x9f, 0x13, 0x11, 0x7e }, { 0x47, 0x74, 0x3d, 0x90, 0xaa, 0x3f, 0x51 },{ 0xc6, 0x09, 0xd5, 0x9f, 0xfa, 0x66, 0xf9 }, { 0xf3, 0xd6, 0xa1, 0x90, 0xa0, 0xf7, 0xf0 },{ 0x1d, 0x95, 0xde, 0x9f, 0x84, 0x11, 0xf4 }, { 0x0e, 0x74, 0xbb, 0x90, 0xbc, 0x3f, 0x92 },{ 0x00, 0x09, 0x5b, 0x9f, 0x62, 0x66, 0xa1 } };public int NextMask() {int ret;index++;if (x < 0) {dx = 1;y = ((8 - y) % 8);ret = ((8 - y) % 8);ret = 0xc3;} else if (x > 6) {dx = -1;y = 7 - y;ret = 0xd8;} else {ret = seedMap[y][x];}x += dx;if (index == 0x8000 || (index > 0x8000 && (index + 1) % 0x8000 == 0)) {return NextMask();}return ret;}public static void main(String[] args) throws Exception {String filename = "D:\\CloudMusic\\VipSongsDownload\\넬 - 기억을 걷는 시간 (聚集记忆的时间) .qmc3";FileInputStream fis = new FileInputStream(new File(filename));byte[] buffer = new byte[fis.available()];fis.read(buffer);DecodeQMC dc = new DecodeQMC();for (int i = 0; i < buffer.length; ++i) {buffer[i] = (byte) (dc.NextMask() ^ buffer[i]);}// 目前仅支持QQ音乐的格式 qmc3\qmcflac等 欢迎补充,不会覆盖源文件。FileOutputStream fos = new FileOutputStream(new File(filename.replace(".qmc3", ".mp3")));fos.write(buffer);fos.flush();fos.close();fis.close();}
}

QMC解码-某音乐解码相关推荐

  1. python模块之email: 电子邮件编码解码 (一、解码邮件)

    https://yq.aliyun.com/articles/54621 python模块之email: 电子邮件编码解码 (一.解码邮件) python自带的email模块是个很有意思的东西,它可以 ...

  2. “硬解码”与“软解码”的区别

    关于"硬解码"与"软解码" 忧蓝 发布于: 2010-08-02 11:03 由于高清视频的分辨率远远高于一般格式视频,使得高清视频的码率非常高.再加上VC-1 ...

  3. 软解码与硬解码区别linux,软解码和硬解码哪个好 软解码和硬解码有什么区别

    喜欢用手机看视频的同学应该都会接触到这样一个概念,手机软解码和硬解码.虽然这两个选项在播放器中再常见不过.不过还是很多机友不知道两者的区别再哪里.就针对这个问题百事网小编给大家普及一下相关的软解和硬解 ...

  4. H264视频传输、编解码----FFmpeg软解码

    记录一下之前项目的实际使用过程. 将按照Java层------>JNI接口------>JNI代码中使用FFmpeg解码. 首先Java层: public class CodecWrapp ...

  5. 硬解码和软解码的区别

    我们在计算机上播放的视频文件都是经过压缩的,因为这样有利于节约存储空间:那么在播放过程,就需要进行一个反射的解压缩过程.在以前这项工作都是由CPU来完成的,对于普通分辨率的AVI.RMVB等文件,绝大 ...

  6. HEVC的软解码和硬解码

    1.概念 从数字视频诞生以来,硬解码和软解码的说法一直伴随着它的发展.数字视频的软解码是指在通用CPU上通过专门的播放软件解码并播放视频:而硬解码则是指在专用的硬件解码模块解码视频,然后将解码数据送至 ...

  7. ffmpeg硬解码与软解码的压测对比

    文章目录 ffmpeg硬解码与软解码的压测 一.基本知识 二.压测实验 1. 实验条件及工具说明 2. 压测脚本 3. 实验数据结果 ffmpeg硬解码与软解码的压测 一.基本知识 本文基于intel ...

  8. C# WinForm 调用海思 H264 解码库进行解码

    最近做视频监控监控项目,学习了一下如何在 C# WinForm 下进行 H264 解码.下面贴一下代码,让大家了解一下如何使用海思的 H264 解码库进行解码,以方便其他有需要的人使用. 1.首先根据 ...

  9. 硬解码与软解码的选择

    前言 事物都有两面性,软解码和硬解码的并存,存在即合理,没有哪个最好,以后两者都会更好,而对于如何选择,根据项目需要. 在上篇<快速集成一个视频直播功能> 中提到,"确定需求后进 ...

  10. java获取的NTLM电脑用户名并解码(python解码)

    java的NTLM电脑用户名解码(python解码) getMi(传入密文) 得到一个前部分乱码,后部分电脑用户名的字符串 getcode(传入字节码) 得到一个前部分乱码,后部分电脑用户名的字符串 ...

最新文章

  1. CentOS安装jdk的三种方法
  2. C++ Primer 5th笔记(6)chapter6 函数: 调试帮助
  3. 小波的秘密10_小波包的数学支撑
  4. java数组缓冲_java – 何时使用数组,缓冲区或直接缓冲区
  5. 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)
  6. 网站压力测试软件(Apache JMeter)2.13 官方版 Error: Unable to access jarfile ApacheJMeter.jar
  7. BootStrap的入门和响应式的使用
  8. 83-spark2.2的DataFrame使用以及以前版本SqlContext的隐式引用
  9. RFC1323 timestamp PAWS的实现陷阱
  10. vs2017调用目标发生了异常
  11. 【错误记录】Ubuntu 编译 ffmpeg 报错 ( nasm/yasm not found or too old. Use --disable-x86asm for a crippled bu )
  12. 如何把桌面路径设置到D盘
  13. 死磕 Framework准没错,大把的高薪岗位等着你~
  14. 数据库系统概论练习4
  15. 零基础想学大数据?你需要这个完整学习路线
  16. if语句——python
  17. CAD命令行不见了怎么重新恢复?
  18. 【3】现代计算机图形学(正交投影,透视投影,MVP变换)
  19. 认识和选用常用的几种 GPRS 模块(转)
  20. mysql设置或者修改新密码

热门文章

  1. 安装的时候出现SPSS中can not create java virtual machine问题怎么办
  2. Java中获取时间戳
  3. node.js连接数据库实现注册登录拼接添加到页面 (增删改查)
  4. UltraISO和rufus制作服务器U启动和下载步骤
  5. java 地心坐标系(ECEF)和WGS-84坐标系(WGS84)互转
  6. 令牌桶算法和漏桶算法python_如何实现漏桶算法与令牌桶算法
  7. iOS人脸识别(检测)
  8. 8.4 Power Management
  9. vivado版本升级导致的IP锁定的更新解决办法
  10. 以太网测试仪的RFC2544测试你了解吗?