首页
社区
课程
招聘
[高分求助]QQ音乐播放器的音乐文件的加密方式
发表于: 2010-1-24 19:37 14678

[高分求助]QQ音乐播放器的音乐文件的加密方式

2010-1-24 19:37
14678
工具已经做出来了,下载地址:http://bbs.pediy.com/showthread.php?t=106092

【起因】 最近新购笔记本,装一些必备的软件(eg。输入法, 音乐播放器,视频播放器,下载工具等等)时,干脆就全套安装了腾讯公司的那一整套,之前用的音乐播放器是千千静听,换成QQ音乐后,发现他的音乐文件是被加密过的,简单看了一下他是每8字节作为一个单元来加密的,如果文件最后剩下不到8字节就不加密了,所以他处理过的音乐文件的大小是不会发生变化的。用OD跟了一下,无果!(本人逆向的水平 == 0),想请教各位大牛跟出加密算法,我好写个小工具来恢复他们加密过的音乐文件。

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

上传2个附件,一个是加密过的音乐文件,另一个是源音乐文件。

ps. 他加密过的音乐文件是存放在 ..\\cache\\加密后的文件名, cache是一个隐藏文件夹,加密过的音乐文件是数字命名,而且没有扩展名。

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (24)
雪    币: 65
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
其实你可以直接跟中到它的关键算法部分,然后用KEYMAKE来制作,当然前提是你懂汇编
2010-1-24 22:21
0
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么会这样?师弟,CRC验证失败!
2010-1-24 23:12
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
师弟你的意思是 解压缩失败?

我刚才试了  下载不完整  本来 1.6MB 下来只有 300多KB 晕 这个附件没什么大用处  就是让你看看而已    呵呵
2010-1-25 00:38
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
- -
这。。。原来的QQ音乐不是有保存功能么?为什么要转换呢?
2010-1-25 12:08
0
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
进来看看  功夫不够
2010-1-25 13:53
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这种问题我发现就算是有人知道也不乱说,尤其是在看雪,人们都低调的很
2010-1-25 14:35
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
跟一下CreateFileA看看吧,不然就没办法了
2010-1-25 17:36
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这个我也非常想知道 想办法把加密方式破解了 就可以得到wma原格式的音频文件了 不用每次播放都开QQ音乐播放器了 烦!
2010-1-25 17:40
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
10
我不理解QQ公司想干嘛,音乐文件他干嘛还要加密啊  受不鸟他~! 来个牛 破了他!
2010-1-26 09:03
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
可能不是什么加密,只是qq的一种流媒体技术。
比如有歌是mp3格式的,不下完就放不了,这时qq音乐采用了一种格式,可以边下边听。

但是这到底怎么处理的,我就不懂了。

网上资料:

我们应该还能够想到,只有较小的文件才适合网络实时传输,那么,流媒体文件采用了什么样的压缩算法呢?   

而使用Windows操作系统的朋友可以看到,我们观看网上流节目时,它们的后缀名一般是rm、asf、wmv等,这些就是流媒体的格式。流媒体文件格式经过特殊编码,不仅采用较高的压缩比,还加入了许多控制信息,使其适合在网络上边下载边播放,而不是等到下载完整个文件才能播放。   

常见的流媒体格式大致有以下几种:   

流媒体文件格式扩展(Video/Audio) 媒体类型与名称   
asf          Advanced Streaming format. (Microsoft).   
rm          Real Video/Audio 文件 (Progressive Networks).   
ra          Real Audio 文件 (Progressive Networks).   
rp          Real Pix 文件 (Progressive Networks).

rt          Real Text 文件 (Progressive Networks).   
swf          Shock Wave Flash (Macromedia).   
mov          QuickTime(Apple公司格式)   
viv          Vivo Movie 文件(Vivo Software).   

另外还有一个wmv格式,是Windows Media Video的简称,它与asf文件有稍许区别,wmv一般采用window media video/audio 格式,asf视频部分一般采用Microsoft MPG4 V(3/2/1?),音频部分是windows media audio v2/1,不过现在很多制作软件都没有把它们分开,所以直接更改后缀名就能够互相转换为对方格式。   

制作完成的流媒体文件需要发布到网络上才能够被别人使用,这就需要以特定方式安排压缩好的流媒体文件,而安排流媒体文件的格式就被成为流媒体发布格式。常见的发布格式主要有以下几种:   

流媒体发布格式扩展 媒体类型和名称   

asf        Advanced Streaming format.   
smil        Synchronised Multimedia Integration Language.   
ram        RAM File.   
rpm        Embedded RAM File.   
asx        ASF Stream Redirector/ASF流转向器文件   
xml        eXtensible Markup Language
2010-1-26 15:58
0
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
好不容易跟出了加密算法,写不出解密算法,师弟,我算是帮不了你了。

{
  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;
2010-1-26 22:25
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
13
师弟 给个C 或者C++的版本好不好啊   你这是什么语言啊 真看不懂~!~~
我在试着翻译成C代码   晕!
2010-1-27 00:24
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
14
师弟! 我看出来了  这个TEA算法啊
C 代码:
void EncMusic(PDWORD pData, PDWORD pEncData)
{
        DWORD  Key1=  0x45AD9059;
       
        DWORD  FKey1= 0xF03E934F;
        DWORD  FKey2= 0x27BDB886;
        DWORD  LKey1= 0xD0AAE945;
        DWORD  LKey2= 0x993BA3AE;
        DWORD FirstData,LastData,Count,Key;       
       
        Count=32;
        Key=0;
        FirstData = *pData;
        LastData = *(pData+1);
       
        do
        {       
                Key= Key+Key1;
                FirstData=FirstData+ ((FKey2+(LastData<<4)) ^ (FKey1+ (LastData>>5)) ^ (Key+LastData));
                LastData=LastData+((LKey2 +(FirstData<<4)) ^ (LKey1+ (FirstData>>5)) ^ (Key+FirstData));
                Count--;
        }while(Count!=0);
        *pEncData = FirstData;
        *(pEncData+1) = LastData;
}
2010-1-27 00:29
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
15
师弟, 多谢你分析的算法    转化工具我已经写完了,  待我完善一下 就发布并且公布源码   哈哈   幸亏我今天在  密码学板块 学习了TEA算法   结果刚好就被装撞上了  哈哈哈 真巧!
2010-1-27 02:08
0
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
高!!
我也得混混密码学板块了。
2010-1-27 09:22
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
强大!
还真是加密啊。
2010-1-27 11:44
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
希望楼主发布一下这个工具,看到这贴之前就已经有这个需求了,期待~~
2010-2-1 08:12
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
19
在1楼给出工具的连接了, 如果关兴趣可以加上一些功能完善一下,比如

不足的地方有 
1.在处理很多文件的时候没有用到多线程,界面会卡一会,没有一个进度条,这个不好
2.在解析文件格式获得文件名的时候,现在只解析了mp3格式和wma格式,其他的格式还没有加上
3.写的比较乱,没有注释 
2010-2-1 09:01
0
雪    币: 369
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
兄弟你太强悍了~~

2010-2-1 15:52
0
雪    币: 107
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
呵呵厉害`````
2010-2-1 16:21
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
论坛已经有这个转换工具了嘛,
2010-2-1 16:42
0
雪    币: 114
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
期待源代码的公布。
2010-2-1 18:37
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
期待解密工具~~
2010-2-1 19:16
0
雪    币: 24
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
我挺纳闷的 !!!   怎么你们两个互相称呼师弟呢 ?
2010-2-1 19:42
0
游客
登录 | 注册 方可回帖
返回
//