HOGE播放源解析

宁夏广电,青海广电,吉林广电

这几个卫视跟地方台得代理。用得同一个框架。HOGE厚建开发得
官网www.hoge.cn,有防盗处理

通过青岛卫视长江云分析

  1. GET http://v.qhbtv.com/m2o/player/drmx.php?hash=05461957134c80f9cc384e847ce208be&url=http%3A%2F%2Fstream%2Eqhbtv%2Ecom%2Fqhws%2Fsd%2Flive%2Em3u8&playerVersion=4%2E12%2E180327%5FRC&time=1555166298818&refererurl=http%3A%2F%2Fwww%2Eqhbtv%2Ecom%2Fnew%5Findex%2Flive%2F HTTP/1.1
  2. Host: v.qhbtv.com
  3. Connection: keep-alive
  4. User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 BIDUBrowser/8.7 Safari/537.36
  5. X-Requested-With: ShockwaveFlash/21.0.0.216
  6. Accept: */*
  7. Referer: http://www.qhbtv.com/new_index/live/
  8. Accept-Encoding: gzip, deflate
  9. Accept-Language: zh-CN,zh;q=0.8
  10. Cookie: pgv_pvi=317253632; pgv_si=s376704000
  11. DNT: 1

通过上面得链接动态获取m3u8播放链接。其中有个hash。
继续追查分析。加密过程在swf中进行。下载http://playerv1.hoge.cn/live.swf反编译

  1. loc1 = new flash.net.URLRequest(api);
  2. loc2 = new flash.net.URLVariables();
  3. loc2.playerVersion = playerVersion;
  4. loc2.refererurl = arg3;
  5. loc2.time = new Date().time;
  6. loc2.url = arg1;
  7. loc3 = aes.decryptStringFromBase64(SOLT);
  8. loc4 = playerVersion + arg3 + loc2.time + arg1;
  9. loc2.hash = com.adobe.crypto.MD5.hash(loc3 + loc4 + loc3);

此段为核心加密过程

loc2.hash = com.adobe.crypto.MD5.hash(loc3 + loc4 + loc3);

需要得参数如下
SOLT:String=”vNIR0lurDuCNBzpTozmlU9kxA/SEwuReipfVHWhbEW8=”;
AES分别需要得KEY跟IV为

public static const KEY:flash.utils.ByteArray=com.hurlant.util.Hex.toArray("f056180ec970b169980f108c13305642");
public static const IV:flash.utils.ByteArray=com.hurlant.util.Hex.toArray("912467427aa54cccf443d2ae206a63ce");

易语言源码

云盘下载

  1. epaygps说道:

    楼主来个PHP源码学习下吧

  2. 曾经最美说道:

    老大你好,请加我的QQ(邮件地址的前面部分),有事向您请教 :win:

  3. 鲤鱼泡泡说道:

    大神,我不是很懂,只会一点PHP的皮毛。看了您的这篇文章,有您提供的几个参数,是不是可以理解为loc3就不是变量了,只有loc4是变量。另外,能不能再提供下hash的算法函数,我反编译了swf,看到了MD5hash函数,但还是不明白要怎么弄?麻烦您有空的时候指点一下,万分感谢!

    1. 隐士说道:

      这附件好像不对的,原来的PHP好像给我删了。
      其实当时不着调LAC3的时候以为是动态的。后面等我解出来的时候
      其实变量是固定的。http://playerv1.hoge.cn/263live.xml这 的DRMASLT就是LOC3

      HASH=MD5(862DF6728D919D06E3182D5129832559+loc4 +862DF6728D919D06E3182D5129832559)

      loc4 = playerVersion + arg3 + loc2.time + arg1;

      这些数据在抓包提交的参数上面可以看到

      1. 鲤鱼泡泡说道:

        感谢回复,意思这个hash直接MD5加密就行,没有专门的加密函数了?

        1. 隐士说道:

          嗯,是的,算法就那个AES,我已经直接算出来了。你就直接把需要的参数串起来去MD5加密就可以用了

          1. 鲤鱼泡泡说道:

            懂了,谢谢指点,马上试试去。

  4. lijunyh说道:

    大哥,我关注你博客已经很久了,但你讲的东西太高深了,看不懂啊,像我等小白你能不能搞个QQ付费群,我们进来用点你抓好的节目源,谢谢了

    1. 隐士说道:

      只提供原理思路及分析,不提供服务,搞怕了,谢谢。

      1. 王洪喜说道:

        又一个小白前来报道。。。。 :lei:

发表评论

邮箱地址不会被公开。 必填项已用*标注