酷狗.kgtemp文件加密算法逆向

该帖转载于孤心浪子--http://www.cnblogs.com/KMBlog/p/6877752.html

酷狗音乐上的一些歌曲是不能免费下载的,然而用户仍然可以离线试听,这说明有缓存文件,并且极有可能被加密了.

解密算法:

class Program
{
  static void Main(string[] args)
  {

    byte[] key={0xAC,0xEC,0xDF,0x57};
    using (var input = new FileStream(@"E:\KuGou\Temp\***.kgtemp", FileMode.Open, FileAccess.Read))
    {
      var output = File.OpenWrite(@"E:\KuGou\***.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<length;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;

时间: 2024-10-03 22:37:17

酷狗.kgtemp文件加密算法逆向的相关文章

闲来无事研究一下酷狗缓存文件kgtemp的加密方式

此贴为本人原创,转载请注明出处 序 前几天更新了被打入冷宫很久的酷狗,等进入之后就感觉菊花一紧----试 听 居 然 都 要 开 通 音 乐 包(高品和无损)才行了,WTF! 这意味着以前缓存的都听不了了,本着好马不吃回头草的原则,不打算去降级了,下载PJ版的又担心被植入恶意代码,心好累╮(╯▽╰)╭ 作为一个程序猿,岂能被你这小阴招就击败,定要给你点颜色看看! 探索 首先对比了一下缓存文件和下载好的mp3文件,发现缓存文件多了1024个字节,而且对比了几个缓存文件,前1024个字节都一样,看来

仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)

转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出来,给学习duilib布局的朋友做个demo.现在编写的仿酷狗选项设置窗体和原酷狗的窗体不细看几乎看不出差别,控件的布局位置和原酷狗最多只有几个像素的位置差别. 先来看一下原酷狗的选项设置窗体的其中一个页面: 如果还不太会布局的朋友可以先看我前些日子写的关于duilib布局的博客<duilib各种布

Android耳机线控详解,蓝牙耳机按钮监听(仿酷狗线控效果)

转载请注明出处:http://blog.csdn.net/fengyuzhengfan/article/details/46461253 当耳机的媒体按键被单击后,Android系统会发出一个广播,该广播的携带者一个Action名为MEDIA_BUTTON的Intent.监听该广播便可以获取手机的耳机媒体按键的单击事件. 在Android中有个AudioManager类,该类会维护MEDIA_BUTTON广播的分发,所以要实现耳机按键监听需要向AudioManager注册一个用于接收耳机按键单击

仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源代码)

转载请说明原出处,谢谢~~ 上一篇仿酷狗日志结束后,整个换肤功能就仅仅剩下调色板功能没有做了.我本以为会非常easy.可是研究了酷狗的调色板功能后发现不是那么简单的事情.首先看一下酷狗的调色板的样子: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1aG9uZ3NodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > waterm

酷狗音乐展示滚动歌词效果的控件实现

文章来自http://blog.csdn.net/zhaodecang 在音乐播放器项目中使用到酷狗音乐展示歌词的效果,需要支持修改字体.颜色.渐变色等功能 截图如下(效果不是很好,请下载Demo查看) 歌词绘制流程核心代码如下(具体实现过程请看Github源码) @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 中心Y坐标 float centerY = getHeight() / 2 + mTe

仿酷狗音乐播放器已开源!

转载请说明原出处,谢谢:http://blog.csdn.net/zhuhongshu/article/details/41037875 距离我发布测试版的Redrain音乐盒(仿酷狗播放器),现在正好刚2个月.博客留言和QQ群里也一直有网友关心这个小项目开源的问题.先感谢网友对这个小项目的支持.之前我一直担心版权问题而没有开源这个项目,因为我只是个在校大学生,不想惹麻烦,希望大家体谅! 关于这个Redrain音乐盒的发布程序的说明和使用方法,见<Redrain仿酷狗音乐播放器开发完毕,发布测试

在线音乐播放器-----酷狗音乐api接口抓取

首先身为一个在线音乐播放器,需要前端和数据库的搭配使用. 在数据库方面,我们没有办法制作,首先是版权问题,再加上数据量.所以我们需要借用其他网络播放器的数据库. 但是这些在线播放器,如百度,酷狗,酷我等在线音乐播放器,是不会提供他们的数据库接口的,所以这个我们需要,在线抓取这些在线音乐播放器的接口,首先,这个事情,是属于违规的.是属于侵犯这些公司的版权的.所以,不能用于商业用途 我们以酷狗音乐为例子,抓取他的连接数据库的API接口 我是用的是谷歌,进入私密模式,因为在这种模式下,不会缓存歌曲 1

二、酷狗 歌词下载

上篇中得到的JSON穿通过解析可以得到以下数据 TSearchKg=record singername:string;//歌手名 filename:string;//歌词名 hash:string;//哈希验证 timelength:string;//时长 end; 酷狗歌词下载Url:http://mobilecdn.kugou.com/new/app/i/krc.php?' + 'keyword=' +    song + '&timelength=' + timelength + '&

酷狗音乐盒缓存文件夹KuGouCache的设置方法

1.每次一打开酷狗总能在E盘里找到这个 KuGouCache 文件夹 ,是自动生成的MV缓存文件 .按照常规 ,可以修改这个文件的办法是 找到C盘里的:用户\administrator\AppDate\Roamine\KuGou8\kugou.ini 文件,将 MVCacheFolder=E:\KuGouCache 后面的路径修改到别的地方就好了. 2.在修改过程中确保酷狗客户端是关闭的状态. 3.在再次打开酷狗前记得将KuGouCache文件夹从E盘下剪切到你指定的位置上去,不然酷狗在重启时如