永发信息网

请问怎么把酷狗的kgtemp的文件转换成mp3文件啊 财富不多求大神

答案:7  悬赏:40  手机版
解决时间 2021-01-24 10:17
请问怎么把酷狗的kgtemp的文件转换成mp3文件啊 财富不多求大神
最佳答案
首先对比了一下缓存文件和下载好的mp3文件,发现缓存文件多了1024个字节,而且对比了几个缓存文件,前1024个字节都一样,看来使了个障眼法,去掉这1024个字节应该就是原版的音频数据了。
然后下图是加密前后的对比:

会发现加密前的一堆0x55 加密后变成 0xA9 0xE9 0xDA 0x52循环了,说明是用了4字节的循环加密,然后切换成2进制研究
加密前 0x55 0x55 0x55 0x55   01010101 01010101 01010101 01010101
加密后 0xA9 0xE9 0xDA 0x52   10101001 11101001 11011010 01010010
对称逐字节加密的运算也就循环移位或者异或固定的数或者取反,但上面的几组数循环移位和取反都不太像,就先假设是异或固定的数A B C D,接下来做填空题:
0x55 0x55 0x55 0x55   01010101 01010101 01010101 01010101
A       B      C      D        11111100 10111100 10001111 00000111
0xA9 0xE9 0xDA 0x52   10101001 11101001 11011010 01010010
得出:A B C D分别为0xFC 0xBC 0x8F 0x07 ,然后取开头的数据验证:
加密前 0x49 0x44 0x33 0x03   01001001 01000100 00110011 00000011
xor     0x3C 0xAC 0xEF 0x67   00111100 10101100 11101111 01100111
加密后 0x75 0xE8 0xDC 0x64   01110101 11101000 11011100 01100100
这次的A B C D分别为0x3C 0xAC 0xEF 0x67
纳尼?不是固定的?WTF! 
两组A B C D低4位的数字都是 C C F 7
看来最终结果确实是xor计算来的,只是高4位的数值要复杂一些。
根据0 xor X =X的性质,我找了一组全0的加密前后的对比,
加密前 0x00 0x00 0x00 0x00   00000000 00000000 00000000 00000000
加密后 0xAC 0xEC 0xDF 0x57   10101100 11101100 11011111 01010111
那A B C D高4位就对应 0xA 0xE 0xD 0x5
再用开头的数据验证:
加密前 0x49 0x44 0x33 0x03   01001001 01000100 00110011 00000011
xor     0xAC 0xEC 0xDF 0x57  10101100 11101100 11011111 01010111
加密后 0xE5 0xA8 0xEC 0x54 11100101 10101000 11101100 01010100
还是不对,而且发现一点:只要加密前的数的高4位=低4位,加密后的高4位都固定为0xA 0xE 0xD 0x5
这不就是xor 中的4个数的高4位吗,由(0 xor X=X)和(X xor X=0)可知,高4位的算法应该是这样的:
分别取输入数的高4位和低4位H,L, 然后取xor的高4位I 结果Y= H xor L xor I
带入前面的3组数据验算,都对了^_^
撸码
既然加密算法已经猜出来了,就撸码验证一下,看解密后的文件的MD5与缓存文件名是否相等:

class Program
{        static void Main(string[] args)
{            byte[] key={0xAC,0xEC,0xDF,0x57};            using (var input = new FileStream(@"E:KuGouTemp236909b6016c6e98365e5225f488dd7a.kgtemp", FileMode.Open, FileAccess.Read))
{                var output = File.OpenWrite(@"d: est.mp3");//输出文件
input.Seek(1024, SeekOrigin.Begin);//跳过1024字节的包头
byte[] buffer = new byte[key.Length];                int length;                while((length=input.Read(buffer,0,buffer.Length))>0)
{                    for(int i=0;i{                        var k = key[i];                        var kh = k >> 4;                        var kl = k & 0xf;                        var b = buffer[i];                        var low = b & 0xf ^ kl;//解密后的低4位
var high = (b >> 4) ^ kh ^ low & 0xf;//解密后的高4位
buffer[i] = (byte)(high << 4 | low);
}
output.Write(buffer, 0, length);
}
output.Close();
}
Console.WriteLine("按任意键退出...");
Console.ReadKey();
}
}


结果:输出文件的MD5与缓存文件名相同,大功告成
总结
固定要异或的key={0xAC,0xEC,0xDF,0x57}
加密方式如下:
1.设输入的数为x,输出结果为y,循环变量为i;
2.分别取x的高4位和低4位h,l;  h=x >> 4 ; l=x & 0xf;
3.分别取key[i]的高4位和低4位kh,kl;kh=key[i] >> 4;kl=key[i] & 0xf;
4.y=h ^ l ^ kh;
5.y=y<< 4 | (l ^ kl);
解密方式如下:
1.设输入的数为x,输出结果为y,循环变量为i;
2.分别取x的高4位和低4位h,l;h=x >> 4 ; l=x & 0xf;
3.分别取key[i]的高4位和低4位kh,kl;kh=key[i] >> 4;kl=key[i] & 0xf;
4.y=l ^ kl;
5.y=(h ^ kh ^ y)<<4 | y;
全部回答

注意,此方法截止18年6月止 是唯一有效方法,其它我试过无数都瞎扯淡,下载一个HXD软件,用软件把酷狗的缓存文件打开,找到00000400这一行,把08那一列的定义数值,改成06后,然后点击另存为自定义名字 后缀必须是.mp3,如XXX.mp3,再打开酷狗,清空播放列表,把改好的文件拖到播放列表,点击播放,这时会播放不了,显示红色歌名文件,右键点击选下载,或右边3个小点里有选项下载,直接就能下载了。



如果只是单纯的到电脑上听,可以把 .kgtemp改为 .mp3的后缀名
私信我,我有转换软件。
直接把后缀改成 mp3
只能在酷狗里打开
狸猫转换器
不可能,你当酷狗音乐是白痴?人家不用养家糊口,那个文件生成的方式只有内部人员知道,想要转化必须交钱给酷狗音乐。想要破解的话那就是想多了,可能别人每天都换一种算法生成kgtemp文件。死心吧。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
对一些反社会的价值观和一些引起心理障碍的价
昨天去烫发,纹理,没用仪器直接冷烫的,烫完
华硕笔记本想一键还原 摁f9出现下面这个
有关马六甲海峡的叙述,正确的是①马六甲海峡
19.98x37一199.8x1.9+1.998x20的简便计算
英特尔G3220的处理器,搭配华擎H81M-ITX主板
勒墉水库地址好找么,我有些事要过去
兴达停车场地址有知道的么?有点事想过去
华宇宾馆(宜昌宜都)地址在哪,我要去那里办事
怎么判断24V汽车内调发电机不发电?
蛟河西到长春西经过龙嘉机场吗
龙凤宾馆(宜昌宜都)怎么去啊,我要去那办事
停车场(府西路)(光明街与府西路交叉口南50米
拉丁美洲是指A. 巴拿马以南的美洲B. 美国以南
什么是同步数字系列(SDH)
推荐资讯
【旧餐桌上的美好时光】《旧餐桌上的美好时光
请教下这算O型腿么 本人175cm 曾经90KG 后减
中国工商银行ATM(世新线)地址在哪,我要去那
下列选项中,属于营业税改征增值税现代服务业
我2月10号夜里23点到南京火车站,第二天早上6
f(2015).(1)若满足(a+1)^-m/3<(3-2a)^-m/3,求
有机物与溴水反应生成溴化氢有哪些有机物和溴
椎名林檎的所有英文歌曲歌名
紫云轩美食居地址好找么,我有些事要过去
情感一张图告诉您在中国,家庭暴力有多严重
鲤鱼卵怎么样的烹饪方法?
纯牛奶养胃吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?