当前位置: 首页 > news >正文

【爬虫实战】使用Python和JS逆向基于webpack的游戏平台

使用Python和JS逆向基于webpack的游戏平台

  • 网站分析
    • JS代码分析
      • 开始进行F12之路
      • 用Python Pyexejs库来动态加载js

网站分析

最近在找游戏,发现一个不错的分享平台,资源下载需要点击下载后扫二维码,进行网盘转存,如果想要20个游戏要扫20次,身为程序员怎么可能这样机械式呢.
在这里插入图片描述在这里插入图片描述

JS代码分析

开始进行F12之路

先找到button [下载] 触发的函数,全局search 下载
在这里插入图片描述
不出意外在这个js文件里面搜索到了
page-4782b9a12c0c8e4a.js
然后开始调试打断点, F5 刷新断住进行跟栈

这里可以看出这地址是加密的
Kcv3H5Y+q+P7BNEPFwrcSlRuRvA1BMnTTTlvTtsCD/7h6HUeY+VtdffUiumxo5MX
在这里插入图片描述

这是解密后的
在这里插入图片描述
来看下w.p(xx)这个是什么东西,点击看下
在这里插入图片描述
毫不意外的可以看出这里就是解密的方法了… 那就开始扣了…
在这里插入图片描述
先把加载器给扣下,然后跟栈,报缺什么方法就补什么方法,这种方式有个缺点…
你永远不知道需要补多少个函数…
我的做法是居然这个函数只有引用到,那我就整个js给扣下来
在这里插入图片描述
然后关注被调用的函数,然后随机删几个,看会不会被依赖到,如果随便删几个跑不动,就保留整个js吧,不要费时间去调了…

然后开始补环境变量

运行后会提示ReferenceError: self is not defined,这里的self只出现了这一行,只是全局性的变量。添加window = global;,并用window替换self。然后再运行,就不会有报错了。但是要记得待会再补代码的时候如果有self也要同样使用window

接下来提示TypeError: Cannot read property ‘call’ of undefined
其实也有两种方式找函数,一个是全选o()然后点击,或者全选n(xx)然后点击,两种方式都可以找到
这里我是全扣…不想去看上下文了…

在这里插入图片描述

在这里插入图片描述
ok 到这里就解密完成了 …

用Python Pyexejs库来动态加载js

import requests
import execjswith open('game.js', encoding='utf8') as f:js_code = f.read()js_compile = execjs.compile(js_code)
code = js_compile.call("decrypt", panUrl)
print(code) # https://pan.quark.cn/s/34d6802ab604

把逻辑完善就是以下的效果了
搜索3A大作的游戏都抓下来, 在用夸克网盘批量转存的工具,保存到自己的云盘就okok
结束撒花~~~~~~~~~
在这里插入图片描述

本文主要介绍了对于使用webpack打包技术的这一类网站的逆向方法和思路。当然对于逆向JS有很多种方式,根据webpack的规则来定位函数只是其中一条路,也不是非走不可。

免责声明

教育和研究用途:本文章提供的信息和示例代码仅供教育和研究用途。它们的目的是帮助读者了解爬虫技术的原理和应用。
合法合规性:请注意,网络爬虫可能会侵犯网站的服务条款或法律法规。在实际应用中,你必须确保你的爬虫活动合法、合规,并遵守所有相关法律。
责任限制:作者对于读者使用文章中提供的信息和代码所导致的任何问题或法律纠纷概不负责。读者应自行承担风险并谨慎操作。
合理使用:请在使用网络爬虫时保持谨慎和礼貌。不要对目标网站造成不必要的干扰或侵害他人利益。请在遵守法律的前提下使用爬虫技术。
变动和更新:作者保留随时更改文章内容的权利,以反映新的法规、技术和最佳实践。
资源和参考文献:本文章中的示例代码和信息可能依赖于第三方资源,作者会尽力提供相关参考文献和资源链接。作者不对这些资源的可用性或准确性负责。
协商:如果您有任何关于本文内容或责任声明的疑虑或疑问,请在使用之前与专业法律顾问协商。

http://www.dtcms.com/a/307439.html

相关文章:

  • vue 中 props 直接解构的话会数据丢失响应式
  • 在 CentOS 7 安装中文字体
  • 法国声学智慧 ,音响品牌SK (SINGKING AUDIO) 重构专业音频边界
  • vue+ts 基础面试题 (二)
  • 正向运动学(Forward Kinematics,简称FK)和逆向运动学(Inverse Kinematics,简称IK)
  • Java项目:基于SSM框架实现的校园活动资讯网管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • 分类-鸢尾花分类
  • 佳维视工业显示器在除尘与过滤设备中的应用
  • 7800系列三端固定式线性稳压器的典型应用电路
  • MakeInstaller: 一款麒麟操作系统安装包制作工具
  • 进阶向:YOLOv11模型轻量化
  • TGD第九篇:三维应用——视频边缘检测
  • 爱普生002墨水与004墨水基本参数及支持机型
  • 【10】大恒相机SDK C++开发 ——对相机采集的原图像数据IFrameData裁剪ROI 实时显示在pictureBox中,3种方法实现(效率不同)
  • 零基础构建MCP服务器:TypeScript/Python双语言实战指南
  • 某讯视频风控参数逆向分析
  • 《C#与.NET Core跨平台开发的融合架构与实践逻辑》
  • 基于STM32的智能温控通风系统设计
  • Web 开发 08
  • 前端核心技术Node.js(四)——express框架
  • 【JavaEE】(7) 网络原理 TCP/IP 协议
  • 前端下载的EXCEL文件无法打开的解决办法
  • 9.Linux 调优与性能检测
  • 前端框架Vue3(四)——组件通信及其他API
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第一天(HTML5)
  • Java WEB技术-序列化和反序列化认识(SpringBoot的Jackson序列化行为?如何打破序列化过程的驼峰规则?如何解决学序列化循环引用问题?)
  • Amazon RDS for MySQL成本优化:RDS缓存降本实战
  • 三坐标测量机路径规划与补偿技术:如何用算法看见微米级误差?
  • 抖音集团基于Paimon的流式数据湖应用实践
  • 常见的中间件漏洞如tomcat,weblogic,jboss,apache靶场攻略