概述
一、网页版AES:
1.首先我们打开浏览器"某哩某哩"的网页。 2.F12开启"开发者模式"-"Network"。(众所周知,一般这种视频都是m3u8.) 3.随便点一个视频进去 4.搜索"m3u8",果然是m3u8流 5.然后直接搜这个m3u8的文件名,结果搜不到,那么应该是被加密了 6.然后我们尝试搜这个视频的ID,可以发现有“视频推荐”、“演员信息”、“当前视频信息”3个相关的请求(PS:这个ID是后来加的,截图之前是另一个) 7.由上图得到的/video/info是从哪来的呢?不要急,ctrl+f搜一下,还真搜到一个JS文件。 8.我们从sources中打开这个文件,搜/video/info看看,果然搜到一个getVideoInfo的函数(注意这个a的值是从headers中获取的) 9.接着往下看,就看到一个decryptString,那么我猜这个应该就是解密的函数了,再搜decryptString,找到函数 10.分析下这个函数: t = 获取到的加密字符串,o = 取md5,e = 取md5之后从第八位开始取出16位字符串 所以通过计算得出当前视频的iv和key 11.然后我们用AES解密试试 12.成功解密,并获得m3u8地址,拼接host后直接打开,结果发现不能播放。 我们返回网页的抓包看看,原来m3u8地址后面还有个token参数,添加token后打开正常播放 13.值得注意的是/video/info获取的时候是需要headers中添加origin、platform等的,不然返回的是视频简介,并不是完整的视频. 所以用老哥的M3U8下载器时,需要自定义协议头:Origin二、网页端用户Token的获取:
爬的时候问题来了,每个用户只能免费看30个视频。那我们就多弄点用户: 感觉应该是token的缘故(一个token代表一个用户),那么就要了解下token是怎么产生的:
1.F12开启"开发者模式"-"Network",刷新下网页,搜索token的值,其实这个pwatoken是第二次访问的时候才会有的参数, 我们新建一个无痕窗口或小号窗口,开启F12.会发现一个新的接口mail_pwa_temp,建议全程用抓包软件抓着。 可以看出token是由mail_pwa_temp返回的,看一下提交的参数,post提交pwa-ckv 那么这个pwa-ckv是哪来的呢,其实当我们访问首页的时候会返回一个license,这个就是pwa-ckv PS:但是,当我们把post的内容设为pwa-ckv=1的时候,出现了一个有意思的现象(附:貌似post任何都会返回会员的token,包括空白) 体现到浏览器是这样的: 没错,这就是一个VIP等级为2(也就是所谓的尊荣VIP的账号),那么他的token是可以无限抓视频的噢。 貌似爬取的速度不能太快,会频繁。 三、实现网页版的无限观看的两种方法【方法已失效,会强制登出,token已被禁,已无法使用这个token抓视频】:
第一种:FD的自动回复器,这个我就不讲了,就是把token替换成前面取到的尊荣Token 第二种:JS打印this,下面是步骤: 1.打开到会员页面,点击账户后面的刷新,会提示刷新成功,我们搜索“刷新成功”,不难发现还是app.XXXXXX.js这个文件中调用的 2.搜索“refresh_success”,可以找到getUserInfo的函数, 3.给这个函数打个断点,再刷新下个人信息,然后我们把this打印出来 4.console中输入temp1.$store.state.newToken = '尊荣token' 这里提到的尊荣token,是第二步中抓到的token,字符串长度大约是145左右。 即可在浏览器中更换为尊荣VIP,享受无限观看。(值得注意的是:一刷新网页就会失效...再次操作即可) 四、实现APP端的真正无限观看①【方法已失效,会强制登出,token已被禁】:
其实道理很简单,就是把APP中返回的Token固定成前面得到的尊荣VIP的Token。 1.首先我们抓包下APP,果然也是和网页版一样用到了Token,不过调用的接口不太一样。 2.那么我们打开MT管理器或者NP管理器,尝试搜索方法名包含Token的内容。 3.发现2个相关的getToken函数,让我们点进去,修改为返回之前得到的Token 4.编译APP之后,打开查看效果。 5.果然就变成了尊荣VIP。 虽然显示有每日观看次数限制,但是实际上你会发现是无限观看五、实现APP端的真正无限观看②:
其实道理也是很简单,首次打开APP的时候是要注册的。那么我们把注册的参数修改为随机即可达到每次清空数据后打开APP都会是一个新的体验用户。 因为SMALI中重新添加函数什么的稍微有点复杂,所以我在这直接调用了APP的原有random的函数(PS:这个random是我用到的函数简写,大家可以尝试其他的随机函数) 下图是由NP管理器转JAVA的修改前后的代码区别:(思路就是this.d赋值随机字符) 这个方法相对于第四步来说稍微有点难度,但是也只是稍微有点而已。 我相信你们能通过抓包然后得到一些信息,然后再次搞定。 这里就不详细的解说了,防止和谐,有能力者可以试试,对我我这自学的半吊子来说不是很难,我相信你们也不会觉得难的。
PS:抓包也能发现/user/info接口返回的expiry、level、user_id等信息,通过MT管理器或NP管理器搜索方法名,发现全部在ResponseUserInfo类中: 比如getLevel(const v0,0x2 1是普通/2是尊荣)、getExpiry(const v0,0x746a6480)等等 修改后发现仅仅是本地显示的。
最后
以上就是天真故事为你收集整理的.net网页input 赋值 提交时空白_[Android ] 某哩某哩网页aes解密和APP真正免VIP无限观看...的全部内容,希望文章能够帮你解决.net网页input 赋值 提交时空白_[Android ] 某哩某哩网页aes解密和APP真正免VIP无限观看...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复