网页抓取解密(网页版AES:1.的函数())

优采云 发布时间: 2022-02-19 22:24

  网页抓取解密(网页版AES:1.的函数())

  一、网络 AES:

  1.首先,我们在浏览器中打开“西丽西丽”的网页。

  2.F12 打开“开发者模式”-“网络”。(众所周知,一般这种视频是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 然后取出从第 8 位开始的 16 位字符串

  所以通过计算当前视频的iv和key

  11.然后我们尝试用AES解密

  12. 解密成功,获得m3u8地址。拼接好主机后直接打开,发现无法播放。

  让我们回到网页捕获数据包。原来m3u8地址后面有一个token参数。添加令牌后,打开正常播放。

  13.值得注意的是,在获取/video/info时,需要在headers中添加origin、platform等,否则返回的是视频介绍,不是完整的视频。

  所以在使用我哥的M3U8下载器时,需要自定义协议头:Origin

  二、在网页上获取用户的Token:

  攀登时问题来了,每个用户只能免费观看30个视频。然后让我们获得更多用户:

  感觉应该是因为token(一个token代表一个用户),那么我们需要了解一下token是怎么产生的:

  1.F12打开“开发者模式”-“网络”,刷新页面,搜索token的值,其实这个pwatoken是一个参数,只会在第二次访问时可用,

  我们新建一个隐身窗口或者小窗口,打开F12.找到一个新的界面mail_pwa_temp。建议全程使用抓包软件。

  可以看出token是mail_pwa_temp返回的,看提交的参数,post提交的是pwa-ckv

  那么这个 pwa-ckv 是从哪里来的呢?其实我们访问首页的时候会返回一个license,就是pwa-ckv

  PS:但是,当我们设置帖子内容为pwa-ckv=1时,出现了一个有趣的现象(附:好像任何帖子都会返回会员的token,包括空格)

  这在浏览器中体现如下:

  没错,这是2级VIP(所谓的尊贵VIP账号),那么他的token就可以无限拍摄视频了。

  看来爬行速度不能太快,会很频繁。

  三、网页版实现无限制观看的两种方法【方法已过期,将强制退出,token已被封禁,无法再使用此token抓视频】:

  第一种:FD的自动回复,这个我就不说了,直接把token换成前面得到的honor token

  第二种:JS打印这个,步骤如下:

  1.打开会员页面,点击账号后面的刷新,会提示刷新成功,我们搜索“刷新成功”,不难发现在文件中调用应用程序.XXXXXX.js

  2.搜索“refresh_success”,可以找到getUserInfo的功能,

  3. 给这个函数设置断点,刷新个人信息,然后我们打印出来这个

  4.在控制台输入 temp1.$store.state.newToken = 'Honor token'

  这里提到的honor token就是第二步抓到的token,字符串长度大约是145。

  您可以在浏览器中将其更改为尊贵的VIP,并享受无限观看。(值得注意的是,网页一刷新就失效了……可以再次操作)

  四、在APP端实现真正的无限制查看【方法已过期,将强制退出,token已被封禁】:

  其实原因很简单,就是将APP中返回的Token固定为之前获得的尊贵VIP的Token。

  1.首先我们抓包并下载APP。果然 Token 和网页版一样使用,只是调用接口不同。

  2.然后我们打开MT管理器或者NP管理器,尝试搜索方法名中收录Token的内容。

  3.找到了2个相关的getToken函数,让我们点进去修改一下,返回之前获取的Token

  4.app编译完成后,打开查看效果。

  5. 果然成了尊贵的贵宾。

  虽然它显示的是每日观看限制,但实际上你会发现它是无限观看

  五、真正实现APP端无限观看:

  其实原因很简单,第一次打开APP需要注册。然后我们将注册的参数修改为随机,这样每次清除数据后打开APP都是一个新的体验用户。

  因为在SMALI中重新添加函数有点复杂,所以我这里直接调用APP原来的随机函数(PS:这个随机是我用的函数的缩写,你可以试试其他随机函数)

  下图是NP管理器修改为JAVA前后代码的区别:(思路是给this.d分配随机字符)

  这种方法比第四步稍微困难一点,但也只是稍微困难一点。

  我相信你们可以抓住数据包并获取一些信息并再次完成它。

  我不会在这里详细解释。防止和谐,有能力的可以试试。这对我这个自学成才的半生不熟的人来说并不难,相信你也不会觉得难。

  PS:抓包还可以找到/user/info接口返回的expiry、level、user_id等信息。通过MT管理器或者NP管理器搜索方法名,发现都在ResponseUserInfo类中:

  例如getLevel(const v0, 0x2 1是正常/2是荣誉)、getExpiry(const v0, 0x746a6480)等。

  修改后发现只在本地显示。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线