首页
社区
课程
招聘
[原创]发一个解密QQMusic中加密音乐文件的的工具(附源码)
发表于: 2010-1-27 23:20 26378

[原创]发一个解密QQMusic中加密音乐文件的的工具(附源码)

2010-1-27 23:20
26378

首先要感谢我的师哥  SIsIa同学 逆向的算法。
ps. 貌似俺俩还没师傅,此师哥是源于一次我让S大当师傅,他也非要拜师!然后就变成我师弟了,结果S大一直没出现!尴尬

【起因】装系统后,装一些必备的软件(eg。输入法, 音乐播放器,视频播放器,下载工具等等)时,干脆就全套安装了腾讯公司的那一整套,之前用的音乐播放器是千千静听,换成QQ音乐后,发现他的音乐文件是被加密过的。本人虽然水平菜,但是共享的精神却一点不比大牛们差!简单看了一下他是每8字节作为一个单元来加密的,如果文件最后剩下不到8字节就不加密了,所以他处理过的音乐文件的大小是不会发生变化的。用OD跟了一下,无果!(本人的逆向水平=0)还好师弟帮忙跟出了算法,于是就写了这个工具来恢复他们加密过的音乐文件。

很容易发现
0000 0000 0000 0000 加密后是 9844 06EB F036 6D19  (16进制)
AAAA AAAA AAAA AAAA 加密后是 ED9F 1EC8 2036 9FAE  (16进制)

ps. 他加密过的音乐文件是存放在 ..\\cache\\加密后的文件名, cache是一个隐藏文件夹,加密过的音乐文件是数字命名,而且没有扩展名。
下面是师弟逆向的加密算法,我看了看加密算法  马上就弄出解密算法了,因为在R大的板块刚看了这个TEA算法,太巧!
这是Delphi语言,甚至我转化成C后 还以为是javascript,

{
  pData      待加密的数据
  pEncData   加密后的数据
}
Function  EncMusic(pData:PByte;pEncData:PChar;nLen:Integer=8):Integer;
const
  Key1=  $45AD9059;
  FKey1= $F03E934F;
  FKey2= $27BDB886;
  LKey1= $D0AAE945;
  LKey2= $993BA3AE;
var
  FirstData,LastData,Count,Key:DWORD;
begin
  Count:=32;
  Key:=0;
  FirstData:=PDWORD(pData)^;
  LastData:=PDWORD(DWORD(pData)+$4)^;
  if  nLen>=8 then
  begin
    repeat
      Key:= Key+Key1;
      FirstData:=FirstData+ ((FKey2+LastData shl 4) xor (FKey1+ LastData shr 5)  xor (Key+LastData));
      LastData:=LastData+((LKey2 +FirstData shl 4) xor (LKey1+ FirstData shr 5) xor (Key+FirstData));
      Dec(Count);
    until (Count=0);
  end;
  PDWORD(pEncData)^:= FirstData;
  PDWORD(DWORD(pEncData)+$4)^:= LastData;
end;

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (16)
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
第一次坐上沙发!!
2010-1-27 23:24
0
雪    币: 458
活跃值: (426)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
TEA算法相关介绍:
0ccK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3S2A6i4K6u0W2j5X3q4A6k6s2g2Q4x3X3g2U0L8$3#2Q4x3V1k6T1L8s2g2W2j5i4m8H3L8r3g2Q4y4h3k6U0i4K6u0r3j5X3I4G2k6#2)9J5c8X3W2@1k6h3#2Q4x3V1k6W2j5U0p5^5z5h3t1I4x3o6q4U0x3o6t1H3z5r3y4V1j5e0k6W2k6U0y4X3k6r3u0Q4x3X3g2Z5N6r3#2D9

ps:
不足的地方有
1.在处理很多文件的时候没有用到多线程,界面会卡一会,没有一个进度条,这个不好
2.在解析文件格式获得文件名的时候,现在只解析了mp3格式和wma格式,其他的格式还没有加上
3.写的比较乱,没有注释
2010-1-27 23:41
0
雪    币: 4911
活跃值: (155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
俺也很想找师傅。。。
2010-1-28 07:43
0
雪    币: 155
活跃值: (3361)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
值得学习。算法确实难学。
2010-1-30 10:17
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没想到竟然给搞出来了,哈哈
2010-1-30 13:10
0
雪    币: 324
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
好帅啊,原来身边到处都是可以分析的素材
2010-1-30 14:52
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
嗯、支持。

值得学习。
2010-3-10 16:25
0
雪    币: 240
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
通俗易懂,很不错的说…
2010-3-12 00:00
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WRW
10
值得学习!谢谢。
2010-6-27 22:37
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼主强大~  
2010-7-3 17:40
0
雪    币: 488
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我眼馋人家逆向算法的很久了,有空我也试试
2010-7-3 19:51
0
雪    币: 352
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
支持支持·!
2010-7-5 17:53
0
雪    币: 107
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
解密也是最难学的了
2010-7-8 20:06
0
雪    币: 423
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
值得学习,很不错的东西~
2010-12-15 16:17
0
雪    币: 411
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢楼主,很不错的。
2010-12-16 19:27
0
雪    币: 269
活跃值: (51)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
下来学习一下。
2011-1-14 13:18
0
游客
登录 | 注册 方可回帖
返回