①如果您的选修课网址类似于http://****.tsk.erya100.com/***
请在每刷完一课后等待1分钟到两分钟后再刷下一集,不然会一直卡在同一课
请不要使用新版播放器
1 | javascript:( function (){ var a=document.createElement( 'script' );a.src= 'http://git.oschina.net/ccccchen/fuckerya/raw/master/erya20140412.js' ;document.body.appendChild(a)})(); |
②如果您的选修课网址类似于 http://mc.erya100.com/*** (不能使用上面的)
尔雅后台验证代码又变了,播放器也修改了。。。。提交的数据居然加了MD5,还真是蛋疼!!!
放出自动挂机代码,一科一次性挂完。。至于另外的科目,您得自己想法子多开了(比如开一个chrome,然后再开一个Firefox,再来一个IE。。您就可以一次性看完3科了)
1 | javascript:( function (){ var a=document.createElement( 'script' );a.src= 'http://git.oschina.net/ccccchen/fuckerya/raw/master/eryamc20140503.js' ;document.body.appendChild(a)})(); |
至于有童鞋反应弹广告的问题,那只是我加了点广告代码,赚点网站的维护费用。如果您觉得不爽,自行去淘宝花钱找人代刷,我可以很负责人的告诉你,那些所谓的代挂的,好多照样是用我的代码,其中有个2B为了让我把公布的免费代码撤了,居然冒充某学校教务处威胁我。。。
还有,代码如何运行自行看教程
强烈建意各位看官使用如下现代浏览器,触摸更精彩的web世界
chrome:https://www.google.com/intl/zh-CN/chrome/browser/
firefox:http://firefox.com.cn/download/
opera:http://www.opera.com/zh-cn/computer
ie9+:http://windows.microsoft.com/zh-cn/windows/downloads
代码使用方法视频教程:
去优酷观看://v.youku.com/v_show/id_XNTA4OTQ3MjIw.html
======================以下内容已过期==================================
为了这东西,折腾两天了
好久没玩破解了 ,把常用的破解套路也忘了。。。这圈子兜得。。。 唉 总算皇天不负有心人 还是给解决了
给位童鞋 加紧了,指不定哪天尔雅又蛋疼了
更新内容:
①针对尔雅修改代码 重新破解视频快进
②在作业页面运行代码,可对每题进行快速百度搜索
要注意的是,每集看完,不要去点击播放器上面的下一集按钮,而是要点击运行代码后出现的这个按钮 切记 否则无效
代码如下:(失效)
1 | javascript:( function (){ var s=document.createElement( 'script' ),t= new Date ().getTime();s.src= 'http://0.tiebaimg.duapp.com/ccc5.js?' +t;document.body.appendChild(s)})(); |
=============================================================================
学校用的是尔雅通识课的网络课程,播放器做了限制,无法快进,而且看完一集还要自己去点下一集,所以只能老老实实看完每一课。
去年自己选修的时候没想到去解决快进的问题,而是用易语言写了个鼠标自动点击工具,当看完一集后自动点击进入下一集,这样,大概一两天的时间可以把课程挂完。
今天,同学找我要那个工具,我发给他后,他说用不了了,我进入网站看了下,原来播放器做了鼠标点击的限制,没办法,只能想想别的办法了。
突然想到已经看过的课程是可以快进的,那么是否能快进必然是受后台或JS动态控制的,于是乎debug查看了下网站加载的JS文件 发现这个JS文件 http://*.tsk.erya100.com/flash/videoplay/flash_main.js
其中很醒目的代码
/** 是否允许用户拖动: 0不允许,1允许 */
var canDrag;
生怕别人不知道这个变量干啥的,作者把注释都给出来了
接着查找关键字canDrag,看看是哪个函数传入这个参数,找到参数_canDrag
又见到注释了,作者老好人啊
* ***********************************************************/
/**
* 发布视频–js调用
* @param xiaoL 校园网视频地址
* @param gongL 公网视频地址
* @param _subtitle 字幕字符串
* @param _isSend 是否向后台(java)发送请求: 0不发送;1发送
* @param _sendURL 交互地址
* @param _canDrag 是否允许用户拖动: 0不允许,1允许
* @param _hasNextVideo 是否有下一集: 0不是,1是
* @param _nextVideoUrl 下一集地址
* @param _isLogin 是否登录(是则显示作业/下一集面板)
*/
关键字 _canDrag的查找它吧
看到函数了
1 2 3 | function publishVideo(_xiaoL, _gongL, _subtitleG, _subtitleX, _isSend, _sendURL, _canDrag, _hasNextVideo, _nextVideoUrl, _startTime, _zuoyeNum, _zuoyeURL, _curVideo) { thisMovie( "flashplayer" ).flash_publish(_xiaoL, _gongL, _subtitleG, _subtitleG, _isSend, _sendURL, _canDrag, _hasNextVideo, _nextVideoUrl, _startTime, _zuoyeNum, _zuoyeURL, _curVideo //切换的集数 ); |
好吧,就是它了publishVideo,去html文档中找找它的调用吧
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | function toCourseVideo(courseId,videoId) { if (!(courseId&&videoId)||courseId.length<=0||videoId.length<=0) return ; if (iscommiting) { alert( "请求处理中,请稍候..." ); return ; } iscommiting= true ; $.ajax({ type: "POST" , data: { courseId:courseId, videoId:videoId }, async: true , cache: false , url: "/courseAction!getCourseVideo" , dataType: "text" , contentType: "application/x-www-form-urlencoded; charset=UTF-8" , timeout : 30000, success: function (data) { iscommiting= false ; if (data&&data.length>0){ $( "#video_list" ).html(data); cur_video=$( "#span_cur_video" ).attr( "cur_video" ); init_scroll(); publishVideo($( "#span_localflv" ).attr( "localflv" ), $( "#span_flv" ).attr( "flv" )+ "?t=" + new Date().getTime(), $( "#span_subtitle" ).attr( "subtitle" ), $( "#span_localsubtitle" ).attr( "localsubtitle" ), $( "#span_isSend" ).attr( "issend" ), $( "#span_recieveurl" ).attr( "recieveurl" ), $( "#span_isSend" ).attr( "candrag" ), $( "#span_nextVideoId" ).attr( "nextvideoid" ), $( "#span_nextVideourl" ).attr( "nextvideourl" ), $( "#span_vbai" ).attr( "vbai" ), $( "#span_currentVideoExamineCount" ).attr( "currentVideoExamineCount" ), $( "#span_homeworkurl" ).attr( "homeworkurl" ), cur_video ); } else { alert( "服务器忙,请稍候再试或者重新刷新页面。" ); } } , error : function (e) { iscommiting= false ; alert( "服务器忙,请稍候再试或者重新刷新页面。" ); } }); } |
第三十行调用到了publishVideo函数,点击某一课程的时候调用toCourseVideo函数,然后ajax请求服务器,返回数据,从返回数据中取出一些数据传入publishVideo函数中,我们要修改的就是函数publishVideo传入的参数,让ajax无论返回啥数据我们都让其进度条可以被拖动
修改后的代码如下 修改了第36行 本来应该是传入
$("#span_isSend").attr("candrag")
的结果,我们现在限制为1
那么无论如何,我们都可以都可以拖动进度条了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | function toCourseVideo(courseId,videoId) { if (!(courseId&&videoId)||courseId.length<=0||videoId.length<=0) return ; if (iscommiting) { alert( "请求处理中,请稍候..." ); return ; } iscommiting= true ; $.ajax({ type: "POST" , data: { courseId:courseId, videoId:videoId }, async: true , cache: false , url: "/courseAction!getCourseVideo" , dataType: "text" , contentType: "application/x-www-form-urlencoded; charset=UTF-8" , timeout : 30000, success: function (data) { iscommiting= false ; if (data&&data.length>0){ $( "#video_list" ).html(data); cur_video=$( "#span_cur_video" ).attr( "cur_video" ); init_scroll(); publishVideo($( "#span_localflv" ).attr( "localflv" ), $( "#span_flv" ).attr( "flv" )+ "?t=" + new Date().getTime(), $( "#span_subtitle" ).attr( "subtitle" ), $( "#span_localsubtitle" ).attr( "localsubtitle" ), $( "#span_isSend" ).attr( "issend" ), $( "#span_recieveurl" ).attr( "recieveurl" ), 1, $( "#span_nextVideoId" ).attr( "nextvideoid" ), $( "#span_nextVideourl" ).attr( "nextvideourl" ), $( "#span_vbai" ).attr( "vbai" ), $( "#span_currentVideoExamineCount" ).attr( "currentVideoExamineCount" ), $( "#span_homeworkurl" ).attr( "homeworkurl" ), cur_video ); } else { alert( "服务器忙,请稍候再试或者重新刷新页面。" ); } } , error : function (e) { iscommiting= false ; alert( "服务器忙,请稍候再试或者重新刷新页面。" ); } }); } |
运行上面的代码,覆盖原有的函数,然后我们随便点击下前面看过的课程,然后再点回正在看的课程就可以拖动进度条了,这样做的目的是初始化函数
如果还在看第一节课,那么就再执行下如下代码吧
1 2 | var current = $( '#currli .zcblks1 #cur_stat' ).attr( 'url' ); eval(current); |
重新加载下当前视频,实现代码初始化
Over
联系客服