其实vip视频破解网站源码分享的问题并不复杂,但是又很多的朋友都不太了解vip视频破解方法,因此呢,今天小编就来为大家分享vip视频破解网站源码分享的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
晚上十一点半,小伙伴发来信息,要我帮忙获取一个网站的接口数据。
破解流程:
1、分析接口参数
2、postman本地测试
3、分析js参数加密代码
4、编写python爬虫
1、分析接口参数
根据发来的url,浏览器打开,习惯性F12,找到network,点击Fetch/XHR,点击“搜索按钮”,见下图
打开网站,点击搜索
查看请求参数:post、请求参数为json
全部参数
2、打开postman来模拟一下。postman使用教程小伙伴们先自学。
postman模拟请求,出错
postman模拟post请求,返回错误,根据多年经验,一眼就看出是queryparams参数s和t的问题,看来就是这两个参数在后台验证了。看来要扒代码了
3、分析页面代码
右键查看源代码,定位“查询”按钮这个元素,可以看到有一个getProjectList的点击事件
搜索页面的getProjectList发现了连续调用,看下图,最终确定了LEx.Command
找到LEx
继续源代码搜索“LEx“,发现28个,经过排除,发现一个js链接中包含这个。大概率源码就在其中
找到LEx的js链接,准备点进去。看源码
直接点击这个js文件,浏览器打开这个js,搜索Command和setParameter找到了参数s和t的生成规则,剩下的就好办了。
找到参数生成规则
4、写python的爬虫
js规则看不懂无所谓,可以用python执行js,获取生成的值即可。前提还是要懂些js的基础知识。
剩下的看代码,生成参数,使用requests模拟post提交,最终获取数据
成功获取数据
短短50行代码,完成post接口破解,附加完整代码:
@author:chenhuachao\nFilename:postHttp.py\n34;http://隐.私.保.护:8081/icity/api-v2/app.icity.ipro.IproCmd/getProjectList?s={s}&t={t}&34;projectcode&34;&34;projectname&34;&34;contractor&34;&34;projecttype&34;&34;page&34;limit&34;Accept&34;application/json,text/javascript,*/*;q=0.01&34;User-Agent&34;Mozilla/5.0(Macintosh;IntelMacOSX10_15_7)AppleWebKit/537.36(KHTML,likeGecko)Chrome/111.0.0.0Safari/537.36&39;&39;\nfunctionsig(){\nvarchars=&34;;\nvarcurTime=parseInt(Math.random()*(9999-1000+1)+1000)+&34;+Date.parse(newDate());\nsig=chars.charAt(parseInt(Math.random()*(15-15+1)+10))+chars.charAt(curTime.length)+&34;+curTime;\nreturnsig;\n}\n&39;&39;&39;\nfunctiont(sig){\nvarchars=&34;;\nvarkey=&34;;\nvarkeyIndex=-1;\nfor(vari=0;i<6;i++){\nvarc=sig.charAt(keyIndex+1);\nkey+=c;\nkeyIndex=chars.indexOf(c);\nif(keyIndex<0||keyIndex>=sig.length){\nkeyIndex=i;\n}\n}\nvartimestamp=parseInt(Math.random()*(9999-1000+1)+1000)+&34;+key+&34;+Date.parse(newDate());\nvart=timestamp;//LEx.azdg.encrypt(timestamp,key);\nt=t.replace(/\\+/g,&34;);\nreturnt;\n}\n\n&39;&34;sig&34;t&39;__main__':\nsig,t=pyToJs()\ngetProjectList(sig,t)\n
如果你还想了解更多这方面的信息,记得收藏关注本站。
