51Mike缓存文件探究

声明:本文并没有针对任何组织或个人,如果任何组织或个人觉得本文侵犯其权利,请告知本人,本人会及时删除,谢谢。

 namgking

 

 

家里装了51Mike,并不是为了K歌用的,而是为了看MTV。我哥比较喜欢,我也比较喜欢,不过最近51Mike的速度不敢恭维,而且每个MTV加载期间都有一段小广告,有点郁闷。51Mike使用的是缓存到电脑上的文件,因此,把注意打在这个上面。

51Mike的缓存文件是经过加密的,不能用正常方式来播放。因此,如果想要正常地观看MTV,只有解密之后才行。

 

用ultraedit打开缓存文件,看到WMV的开头RSwww.51mike.com后面一串,有点晕,怎么会是这个。实在不知道用什么方法加密的,看下面。看到连续8Byte的出现重复。其实可以在有的头文件里找到此wmv的下载地址,下载回来对照的加密过的wmv文件看,更容易看出来他是一个8Byte加密的。因为接触DES比较多,所以还以为是DES加密的。不过后来事实证明是错误的。做了个程序对比加密过和未加密过的wmv文件,发现只有文件的前0x80000Byte加密过,也就是说只加密了前512KB。(也应该只做部分加密,要不然解密速度太慢了跟不上)。一直以为是DES,可是最后拿工具一看。才知道是blowfish算法。我郁闷啊。没办法,只能用OD来看看了。说实话,OD以前没用过,汇编根本也没碰过,不过为了自己的幸福,还是努力学了下汇编,学习OD的基本使用方法(很多方法参考看雪里各位的教程)。还好,看雪里有一篇专门讲blowfish算法的,让我学习起来更快。

 

使用OD,下断点,忽略异常。说到这个异常,我很晕,原来一直没学过反汇编,不会用OD,不知道异常怎么处理,51Mike主程序一直抛异常,到最后结束,郁闷好长时间,害我用IDA分析好长时间也无啥结果。后来请教了一位高手,终于帮我解决。解决方法很简单,只要忽略所有异常就OK了。起先不知道如何解密的,下读文件的断点竟然一堆,看的头都大了。后来看到是有写中间文件的,于是下写文件API的断点。哈哈,终于被我发现了。51Mike的文件播放是以缓存文件解密然后写到临时文件夹,然后播放,播放完毕后再删除。

 

找到了解密方式,但是没发现密钥生成方式。有点郁闷。没心情慢慢跟,所以就图简单,直接复制出内存中的key_sbox和key_pbox,然后写了个小程序,把密钥格式化就直接当作keybox来用了,简单实在,哈哈。不过51Mike的blowfish还是有点点的变形,具体的有兴趣自己跟吧。

 

总的来说,这次的成功跟51Mike本身没加壳有很大的关系,让我不用去学脱壳先,呵呵

其次,51Mike本身采用的是中间文件播放方式,所以用OD下断点比较容易。

 

这次的学习还是比较有收获的,学习了blowfish算法,也学习了点汇编的知识和OD的使用方法,了解具体的堆栈工作情况。感觉提高甚多。不过前后也花费了我两个星期的时间去学习哎。

 

后记:我把解密函数做成了DLL,只要输入源文件名和目的文件名,根据缓存文件头格式即RSwww.51mike.com,判断是否需要解密,然后将解密后文件写到目的文件中。测试过性能,10M左右的文件只要0.05S左右的时间,速度还不错。

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值