又到了在家刷慕课的时候了,哎,渴望学习的我却耐不住性子看今天布置的任务。在刷qq的时候,无心中看到有人在群里叫卖代刷网课,4元一科,就单单这个价格,已经很诱人了,真的很低。其实也能想象,反正是软件刷,本身不费任何力气,便宜走量呗。web
不过,这并不吸引我,吸引个人是刷课软件的原理,话很少说,咱们开始分析!
编程
咱们首先打开一节课,点击进入到课程,让视频处于播放中,咱们此时按住f12 进入谷歌浏览器的开发者模式,点击network 并选择XHR(xmlHttpRequest)浏览器
在视频的播放中,咱们会不断接收这样的消息:缓存
也许有人知道这是什么了,我也不卖关子了,这个就是视频的缓存数据。(后来补充:通过百度搜索,发现慕课使用的m3u8网络传输协议来作在线视频的播放。)cookie
先经过请求获取视频流加载信息表:网络
扩展连接:less
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jjfGEz0w-1585215618816)(C:\Users\86151\Desktop\刷客软件分析过程\3.png)]ide
整个缓存请求是这样的一个URL形式,std0.ts 开始,每次请求数字都加1.这里默认是标清播放,若是是高清播放,结尾是hdx.ts.svg
而后咱们等待视频走完,看看有没有新的请求发出。工具
视频刚播放完毕,立马发出了一个请求
完整的请求是这样:
从连接英文的意思来说,应该是保存慕课学习状态,也就是我们这个视频看完了,总得给我们记录一下,至于记录哪些消息呢,咱们看看发送的数据。对了,地址后面跟了一个csrfkey 这个值,这个应该就是身份标识。
先看cookie
除了一些我的信息以外,我发现了另外三条
hasVolume=true;
videoRate=1.5;
videoVolume=0.93;
这三个分别表示 是否有声音、视频播放速度、视频播放音量
乖乖,我们日常喜欢静音刷网课的同窗注意了,这些行为都会被记录,至于在教师端显示不显示我就不知道了。之后刷课记得开声音(博主仍是提倡你们好好听课的,之后确定用得上)
Form Data
在屡次观察后,我发现:这个保存视频学习状态的请求每五分钟请求一次,并非最终看完视频后,提交一次请求
第一次请求
第二次请求
视频观看完毕后请求
本次课程视频时长为12分26秒,换算成秒应该是746s 但视频是从0开始计算时间的 因此视频长度应该加1 为 747s。
此时有个疑问,这三次请求的学习时长加起来为754s ,比原视频要多6s,这是怎么回事呢。我观看了另一个视频,发现学习时长加起来要比原视频多5s。我猜想这里,只要学习时长大于视频时长便可,具体多几秒 应该没事,只要别多太多,我们就默认5s左右。
至于videotime 第一次为296 第二次为592 第三次为747 ,能够这样解释,由于用户须要在观看时,每5分钟进行状态提交,只要此时视频时间点小于学习时长便可,我们也默认5s。
插一句:每节课程前面都有一个⭕,当你完成该节课程的所有内容后,这个圆圈会变成实心的,若是你仅仅完成一部分,好比只是看完了视频,这个圆圈会变成半实心。
我们接下来看看这个课程的其余资源:
咱们点开中间的文档
每次咱们点击下一页时,咱们会发现,发送了一个请求,请求地址与视频请求地址同样,可是参数有了很大的变化,咱们一块儿来看看
cookie
这里咱们能够看到,视频声音为0.这个咱们很容易理解,文档是没有声音的。虽然不知道后台有没有对这个地方作断定,不过也是给咱们提个醒,若是要作工具的话,要注意这个点。(后续补充:在后面的观察中,我发现这些值与前面视频播放状态保持一致,这里的猜想纯属多余)
Form data
咱们快速点击文档翻页,当咱们点到最后一页的时候,finished=true pagenum=22.这个部分并无作时间限制,咱们只须要获取文档页数,便可发送完成请求,相对比较简单。
讨论部分
讨论部分就比较简单了,请求地址与前面同样,请求参数除了类型那一块不一致外,其他都同样。
有的课会有测试题
咱们先去正常答题,看看提交后的请求信息:
点击提交后,会先发送一个请求检验你的答案,这个咱们不去考虑,紧接着,仍是会发送一个saveMocContentLearn的请求,地址与前面的同样,参数与讨论部分基本一致,只有contentType处这里值为5.
各种学习资源的状态提交请求地址一致,参数方面contenTpye=1 表示视频资源 、contenTpye=3 表示文档资源 、contenTpye=6 表示讨论资源 、contenTpye=5 表示测试资源
咱们能够根据上面分析使用postman工具进行测试,我这里测试没什么问题
目前只是作了比较初级的分析,离后面实现自动刷课还有很长的路要走。
这些仅仅做为编程爱好者之间的分享,博主建议你们日常仍是要老老实实上课听课,知识会给你带来巨大改变的。
欢迎你们跟我一块儿交流,有兴趣的能够博客底下留言。