吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 27403|回复: 39
收起左侧

[Android 原创] 超星学习通协议分析

  [复制链接]
红哥 发表于 2019-6-15 12:15
本帖最后由 红哥 于 2019-6-15 19:44 编辑

这几天学校又让刷学习通的网课,看了一下,视频挺多,有90多课,于是就想分析一下学习通的视频进度保存的协议,伪造请求发送给服务器,达到视频不用看直接过,话不多说,开始正文:
首先点开视频再返回,fiddler抓包看一下,这里抓到了一个请求:

1

1

关键内容如下:
GET /multimedia/log/a/69553433/226af628bb8ff118d743aff040f376b3?otherInfo=nodeId_143057010&playingTime=329&duration=903&akid=null&jobid=1466044408893&clipTime=0_903&clazzId=8502942&objectId=7f1bd7024ea1de627d15b1ac51d2388b&userid=xxxxxx&isdrag=2&enc=32455dcffa4efae69d837ce13327834b&dtype=Video&view=json HTTP/1.1
又抓了一个包:
GET /multimedia/log/a/69553433/226af628bb8ff118d743aff040f376b3?otherInfo=nodeId_143057010&playingTime=330&duration=903&akid=null&jobid=1466044408893&clipTime=0_903&clazzId=8502942&objectId=7f1bd7024ea1de627d15b1ac51d2388b&userid=xxxxxx&isdrag=2&enc=4d4f1c803cf9004d8b3d31f3141ad6e6&dtype=Video&view=json HTTP/1.1
对比一下可以发现变化的部分只有两个一个是playingTime字段另一个是enc字段,这里分析一下playingTime应该是视频进度时间,duration是视频总时间,单位是秒,现在就只剩下一个enc了,这个enc应该是校验字段,接下来就分析一下enc的值是怎么得到的,首先在Androidkiller中打开学习通,搜索enc可能得到太多结果,这里我搜索playingTime,一共搜到了三个结果:

2

2

前两个看起来差不多,随便点进一个看看,往上翻了翻,看到一堆字符串拼接:

3

3

在jeb中打开看一下:

4

4

很明显这里就是拼接字符串的地方,这个v5[9]中储存的就是enc的值,v5[9]中的值来自v1_1,接下来看一下v1_1的值是什么
[Java] 纯文本查看 复制代码
String v1_1 = com.fanzhou.d.l.b("[" + this.V + "][" + v4 + "][" + this.T.getJobid() + "][" + this.T.getObjectid() + "][" + v1 * 1000 + "][" + "d_yHJ!$pdA~5" + "][" + this.aV * 1000 + "][" + this.aW + "]");

可以看到v1_1就是b方法的返回值,这些this.V这些分别对应下面的那些值,这里就不一一分析了,进入b方法看一下

5

5

明显可以看出是md5加密,现在就很明了了,enc的值就是[]+上面那些值加盐值d_yHJ!$pdA~5拼接后的md5的值
至于jobid,objectId这些字段的值抓包分析一下我的课程页面,和课程本身页面 都可以构造url从服务器请求到


接下来分析一下学习通的登陆协议
首先还是抓包分析,这是抓取的数据
POST http://passport2.chaoxing.com/xxt/loginregisternew?token=4faa8662c59590c6f43ae9fe5b002b42&_time=1560511025758&inf_enc=d20cc428ce717f08156ae9e6201b4467 HTTP/1.1
Accept-Language: zh_CN
Cookie:
Content-Length: 727
Content-Type: multipart/form-data; boundary=vj2gwfmP-DxuCIPFN8zUcQ-ZGzXQFa4FJ7pQ
Host: passport2.chaoxing.com
Connection: Keep-Alive
User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-G9350 Build/LMY48Z) com.chaoxing.mobile/ChaoXingStudy_3_5.21_android_phone_206_1 (SM-G9350; Android 5.1.1; zh_CN)_1969814533

--vj2gwfmP-DxuCIPFN8zUcQ-ZGzXQFa4FJ7pQ
Content-Disposition: form-data; name="uname"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

zhanghao  //这是账号
--vj2gwfmP-DxuCIPFN8zUcQ-ZGzXQFa4FJ7pQ
Content-Disposition: form-data; name="code"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

mimamima  //这是密码
--vj2gwfmP-DxuCIPFN8zUcQ-ZGzXQFa4FJ7pQ
Content-Disposition: form-data; name="loginType"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

1
--vj2gwfmP-DxuCIPFN8zUcQ-ZGzXQFa4FJ7pQ
Content-Disposition: form-data; name="roleSelect"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

true
--vj2gwfmP-DxuCIPFN8zUcQ-ZGzXQFa4FJ7pQ--

这里用了multipart/form-data请求,是post的变种,有兴趣的可以去搜一下,这里就不讲了
可以看到,账号密码都是明文,
经过多次抓包发现这个token竟然是不变的,_time是现在的时间,这样就只用分析inf_enc
androidkiller搜索inf_enc

6

6

搜索出来两个结果,看着第一个更像一点,在jeb中打开

7

7

一开始看到deskey还以为是des加密,没想到点进去还是md5

8

8

那现在就只用分析arg3和arg4是什么,先交叉引用看一下

9

9

发现有两地方引用了这个方法,随便点进去一个看看,有交叉引用了一下,还是有两地方引用

10

10

懒得一个一个看了,这里我又搜索了一下loginregisternew?,这次就只搜到了一个结果

11

11

jeb打开

12

12

一步一步往下走

13

13

14

14

进入b方法看一下

15

15

这里是一个字符串拼接,就是给token _time赋值
返回上一个方法,进入f方法

16

16

接着往下

17

17

这里就到了之前找到的关键方法,现在就知道arg3和arg4是什么了
arg3="Z(AfY@XS"
arg4="token="+值+“&_time=”+值
所以inf_enc就是md5("token="+值+“&_time=”+值+"Z(AfY@XS")

下面是我写好的脚本:

18

18

19

19



ps:因为我只有一门网课,所以抓到的数据都是一门课的数据,没有做多门网课数据的处理,所以有多个网课的同学使用此脚本可能会出现bug
另外,此脚本只能刷视频,不能刷题

地址: https://github.com/jiangyei/fakechaoxing

看到下面有人评论说,可能会被检测异常,或者以后翻旧账,不过我现在是没有异常,以后就不知道了,用与不用看你们自己

点评

这段时间超星有动作,不像以前那样发不良记录的通知。现在没问题,之后就不知道了。所以还是不要使用秒视频类的脚本,个人意见,不是酸不是喷。  发表于 2019-6-15 15:06

免费评分

参与人数 12威望 +1 吾爱币 +19 热心值 +11 收起 理由
52___pojie + 1 + 1 我很赞同!
华娱ヽ??百合 + 1 用心讨论,共获提升!
吾王fate + 1 我很赞同!
醉舞红颜 + 1 + 1 大佬求做一个多门网课的
q85963191 + 1 + 1 谢谢@Thanks!
qtfreet00 + 1 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
hellozl + 1 跟着学学用fiddler
坏坏的笑一点 + 1 我很赞同!
loqiu + 1 用心讨论,共获提升!
独行风云 + 1 + 1 厉害
niebaohua + 1 + 1 我很赞同!
xiao1193687 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

q6378561 发表于 2019-6-15 15:24
现在超星学习通是通过log日志来封你号的你,虽然秒视频了 但是post包的时间还是会被检测出来,我就这样被封的...
一叶知夏 发表于 2019-6-15 17:33
xiao1193687 发表于 2019-6-15 12:40
niebaohua 发表于 2019-6-15 12:43
楼主优秀
aipaicxq 发表于 2019-6-15 12:51
楼楼太棒了
w15439 发表于 2019-6-15 13:06
不会提示异常么?
 楼主| 红哥 发表于 2019-6-15 13:20
w15439 发表于 2019-6-15 13:06
不会提示异常么?

刷了十几课了,没有提示异常
likereading 发表于 2019-6-15 14:11
佩服,谢谢分享经验
XyJoe7 发表于 2019-6-15 14:31
那每个视频对应的三道题还在吗?
hunteraa 发表于 2019-6-15 14:33
这个东西我是用不到了
q993423309 发表于 2019-6-15 14:41
厉害了,楼主
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表