VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 835|回复: 8

哪位老大帮我抓包分析一下,让程序控制学习网站指定未学课程自动播放学习。

[复制链接]
13_avatar_middle
最佳答案
0 
在线会员 发表于 2021-6-13 11:41:28 | 显示全部楼层 |阅读模式
学习了老大一部分VC++实战HP之POS第一期课程后,想做一个山西干部在线学院的挂机辅助,目前程序能实现登录,获取用户信息功能。
下一个主要功能遇到困难,就是选定一节未学课程后,无法让程序控制指定未学课程自动播放学习。
用fidder抓包分析无法确定 点击播放后是简单的发送请求后播放还是执行了JS脚本后播放。
山西干部在线学院网址:https://www.sxgbxx.gov.cn
用户名u0246624密码dlx111111(不要改密码哦)
哪位老大抽空帮我登陆抓包分析一下,指点一下,感激不尽。





上一篇:能否用sizeof求字符数组中不为0的字符长度?
下一篇:对话框我忘了在向导里添加上关于菜单了。如何在后期手工添加上
19_avatar_middle
最佳答案
12 
在线会员 发表于 2021-6-13 23:59:13 | 显示全部楼层
这个好像有点费时间
get和post不能操作网页的事件啊 只能获取和提交数据   或者下载他的视频(.ts)到本地从新合成

非要操作网页 可以用程序打开一个浏览器把登录信息(Cookie)带上 ---(用程序操作浏览器这个我没接触过)

如果你知道怎么用程序传递数据进浏览器可以忽略下面:
   用微软的CHtmlView封装自己的浏览器可以拿到网页上的消息 就可以访问他的播放页面 自动播放了
参考:  https://blog.csdn.net/zhongbin104/article/details/8731163

以上纯属个人理解 网页方面接触不多  
  
31_avatar_middle
最佳答案
46 
在线会员 发表于 2021-6-13 14:39:48 | 显示全部楼层
提问就该发到提问版块,提问并不是什么丢脸的事!

想办法在播放页面执行下边两句JS:

  1.     var obj = document.getElementsByClassName('pv-icon-btn-play pv-iconfont');
  2.     obj[0].click();
复制代码


演示视频:
https://live.csdn.net/v/166584
https://streamja.com/nXoMM

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2 很给力!

查看全部评分

13_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-6-13 11:50:21 | 显示全部楼层
我的QQ24885530,微信wx24885530,欢迎大家与交流。
13_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-6-13 19:03:49 | 显示全部楼层
谢谢大佬提醒,第一次发帖提问求帮助还没熟悉规矩,以后还要继续多向大家请教。
13_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-6-29 17:12:48 | 显示全部楼层
我用winhttprequest的post方法登录网站后,把获取的cookie传给webbrowser控件,现在打开登录后的网址显示是登录状态,而且webbrowser在接下来的各种GET操作里返回都是正确的,但是POST操作就不正确了,通过抓包对比数据发现,在浏览器里post数据里这样子的:sid=a4d68dd7c9344d259caad71a35f485bf&courseId=1719&kpointIds=8531%2C8533%2C8534%2C8535%2C8536,我的webbrowser控件里post数据是这样:sid=&courseId=1719&kpointIds=8531%2C8533%2C8534%2C8535%2C8536。
不知道为啥sid成了空值了,所以返回错误,这个sid值在前面的GET操作COOKIE里是正确显示的。
13_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-6-30 15:06:07 | 显示全部楼层
这段时间学习网页操作C++编程,收获不小,昨天发了帖子后,一直在思考为什么COOKIE都已经设置好,为什么取不到SID的值呢,认真分析设置COOKIE用到的函数时,终于找到了原因,五条COOKIE里,只有JSESSIONID是需要设置成为INTERNET_COOKIE_HTTPONLY属性的,我五条全部设置成INTERNET_COOKIE_HTTPONLY属性,网页里的SCRIPT脚本当然获取不到SID的值了,其余四条改成INTERNET_COOKIE_THIRD_PARTY属性后,后续网页也能正常打开了,离程序控制课程播放越来越近了。
13_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-7 10:23:08 | 显示全部楼层
var obj = document.getElementsByClassName('pv-icon-btn-play pv-iconfont');
    obj[0].click();
在播放页面执行不成功,在IE下F12调试找不到哪里出了问题。
改用CHROME浏览器调试发现后,flash播放相关控制元素是JS动态生成的,
var obj = document.getElementsByClassName('pv-playpause pv-iconfont pv-icon-btn-play');
obj[0].click();
在控制台可以执行成功并播放
但现在我在程序里执行JS脚本却没有反应,咋回事呀?
13_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-7 10:27:09 | 显示全部楼层
本帖最后由 qxyfw 于 2021-7-7 10:31 编辑

我设置了一个定时器,每30秒执行一次,下面就是定时器函数里执行的语句

IHTMLDocument2   *pHTMLDoc = NULL;

        HRESULT isReadystatecomplete = m_webSxhgb.get_ReadyState();//READYSTATE_COMPLETE
        if (isReadystatecomplete == READYSTATE_COMPLETE)
        {
                HRESULT isBusy = m_webSxhgb.get_Busy();
                if (!isBusy)
                {
                        if (!m_Finishedloading)//对话框初始化为false
                        {
                                VARIANT varRet;
                                varRet.vt = VT_EMPTY;
                                pHTMLDoc = (IHTMLDocument2*)m_webSxhgb.get_Document();
                                if (pHTMLDoc != NULL)
                                {
                                        IHTMLWindow2* pHTMLWnd = NULL;
                                        CString sScript = L"var obj = document.getElementsByClassName('pv-playpause pv-iconfont pv-icon-btn-play');";               
                                        CString sScript1 = L"obj[0].click();";
                                        CString Type = L"javascript";
                                        BSTR bstr = sScript.AllocSysString();
                                        BSTR btype = Type.AllocSysString();
                                        BSTR bstr1 = sScript.AllocSysString();

                                        pHTMLDoc->get_parentWindow(&pHTMLWnd);
                                        if (pHTMLWnd != NULL)
                                        {
                                                pHTMLWnd->execScript(bstr,btype,&varRet);//执行成功后即使再次执行也不会成功,因为播放后pv-playpause pv-iconfont pv-icon-btn-play已经变为pv-playpause pv-iconfont pv-icon-pause
                                                pHTMLWnd->execScript(bstr1,btype,&varRet);
                                        }
                                        ::SysFreeString(bstr);
                                        ::SysFreeString(bstr1);
                                        ::SysFreeString(btype);

                                }
                        }
                }
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-9-27 05:38

Powered by CcTry.CoM

© 2009-2021 cctry.com

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