QMC解码-某音乐解码
最近听音乐,听得有点烦躁,想把某鹅的音乐传到某易,发现某鹅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解码-某音乐解码相关推荐
- python模块之email: 电子邮件编码解码 (一、解码邮件)
https://yq.aliyun.com/articles/54621 python模块之email: 电子邮件编码解码 (一.解码邮件) python自带的email模块是个很有意思的东西,它可以 ...
- “硬解码”与“软解码”的区别
关于"硬解码"与"软解码" 忧蓝 发布于: 2010-08-02 11:03 由于高清视频的分辨率远远高于一般格式视频,使得高清视频的码率非常高.再加上VC-1 ...
- 软解码与硬解码区别linux,软解码和硬解码哪个好 软解码和硬解码有什么区别
喜欢用手机看视频的同学应该都会接触到这样一个概念,手机软解码和硬解码.虽然这两个选项在播放器中再常见不过.不过还是很多机友不知道两者的区别再哪里.就针对这个问题百事网小编给大家普及一下相关的软解和硬解 ...
- H264视频传输、编解码----FFmpeg软解码
记录一下之前项目的实际使用过程. 将按照Java层------>JNI接口------>JNI代码中使用FFmpeg解码. 首先Java层: public class CodecWrapp ...
- 硬解码和软解码的区别
我们在计算机上播放的视频文件都是经过压缩的,因为这样有利于节约存储空间:那么在播放过程,就需要进行一个反射的解压缩过程.在以前这项工作都是由CPU来完成的,对于普通分辨率的AVI.RMVB等文件,绝大 ...
- HEVC的软解码和硬解码
1.概念 从数字视频诞生以来,硬解码和软解码的说法一直伴随着它的发展.数字视频的软解码是指在通用CPU上通过专门的播放软件解码并播放视频:而硬解码则是指在专用的硬件解码模块解码视频,然后将解码数据送至 ...
- ffmpeg硬解码与软解码的压测对比
文章目录 ffmpeg硬解码与软解码的压测 一.基本知识 二.压测实验 1. 实验条件及工具说明 2. 压测脚本 3. 实验数据结果 ffmpeg硬解码与软解码的压测 一.基本知识 本文基于intel ...
- C# WinForm 调用海思 H264 解码库进行解码
最近做视频监控监控项目,学习了一下如何在 C# WinForm 下进行 H264 解码.下面贴一下代码,让大家了解一下如何使用海思的 H264 解码库进行解码,以方便其他有需要的人使用. 1.首先根据 ...
- 硬解码与软解码的选择
前言 事物都有两面性,软解码和硬解码的并存,存在即合理,没有哪个最好,以后两者都会更好,而对于如何选择,根据项目需要. 在上篇<快速集成一个视频直播功能> 中提到,"确定需求后进 ...
- java获取的NTLM电脑用户名并解码(python解码)
java的NTLM电脑用户名解码(python解码) getMi(传入密文) 得到一个前部分乱码,后部分电脑用户名的字符串 getcode(传入字节码) 得到一个前部分乱码,后部分电脑用户名的字符串 ...
最新文章
- CentOS安装jdk的三种方法
- C++ Primer 5th笔记(6)chapter6 函数: 调试帮助
- 小波的秘密10_小波包的数学支撑
- java数组缓冲_java – 何时使用数组,缓冲区或直接缓冲区
- 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)
- 网站压力测试软件(Apache JMeter)2.13 官方版 Error: Unable to access jarfile ApacheJMeter.jar
- BootStrap的入门和响应式的使用
- 83-spark2.2的DataFrame使用以及以前版本SqlContext的隐式引用
- RFC1323 timestamp PAWS的实现陷阱
- vs2017调用目标发生了异常
- 【错误记录】Ubuntu 编译 ffmpeg 报错 ( nasm/yasm not found or too old. Use --disable-x86asm for a crippled bu )
- 如何把桌面路径设置到D盘
- 死磕 Framework准没错,大把的高薪岗位等着你~
- 数据库系统概论练习4
- 零基础想学大数据?你需要这个完整学习路线
- if语句——python
- CAD命令行不见了怎么重新恢复?
- 【3】现代计算机图形学(正交投影,透视投影,MVP变换)
- 认识和选用常用的几种 GPRS 模块(转)
- mysql设置或者修改新密码
热门文章
- 安装的时候出现SPSS中can not create java virtual machine问题怎么办
- Java中获取时间戳
- node.js连接数据库实现注册登录拼接添加到页面 (增删改查)
- UltraISO和rufus制作服务器U启动和下载步骤
- java 地心坐标系(ECEF)和WGS-84坐标系(WGS84)互转
- 令牌桶算法和漏桶算法python_如何实现漏桶算法与令牌桶算法
- iOS人脸识别(检测)
- 8.4 Power Management
- vivado版本升级导致的IP锁定的更新解决办法
- 以太网测试仪的RFC2544测试你了解吗?