某云盘encryptMsg 加密之自动化扣webpack

前言

本文主要介绍了webpack半自动化扣代码的流程。不需要ast基础。也不涉及加密的过程。网站硬扣的话很麻烦。特地挑一个模块多的网站去搞。着重介绍于webpack工具的使用与实现方式。

这里的话。本人也开源到了github上了。本人代码写的烂。大佬勿喷,

https://github.com/hybpjx/semi_auto_webpack

目标网站

aHR0cHM6Ly95dW4uMTM5LmNvbS93LyMv

webpack是什么?

Webpack是一个用于构建现代 Web 应用程序的静态模块打包工具。它是一个高度可配置的工具,通过将应用程序的所有资源(例如JavaScript、CSS、图片等)视为模块,并使用依赖关系来管理它们之间的引用,将它们打包成一个或多个最终的静态资源文件。

其实我们做爬虫只需要知道。

webpack就是把所有的代码 打包成一个JS去运行。其中包含了加密解密的JS。然后你通过加载器去调用其中的模块去获取加密代码。

网站分析

这里就不多说了。直接开搞

如下图 encryptMsg 就是我们本文的目标。

然后直接搜索就行。找到加密位置。

这里其实点进去就能知道什么加密 好像也没有经过别的加密。

直接写算法就行。

但是本文目标是实现webpack自动化。这里我们选择强扣。

本文重点不是逆向这个网站。只能说

直接从上一个栈找。

好了 找到了这个地方。

然后我们把s扣下来就行。

这里往上滑。可以看到 加载器只加载了 4f52这个函数。

那就简单了。我们封装一下

javascript 复制代码
s = func_call("4f52")
a = {
    "account": "17772231096",
    "dycPwd": "123213213",
    "type": 1,
    "autoLogin": true,
    "ifOpenAccount": "1",
    "verType": 2
}
console.log(s["a"].loginDataPrecode(a))

编写工具

这里如果要硬扣的话会很麻烦。

这里我主要呢。实现了以下几个步骤

  1. 将整体文件分成三个部分
    1. 模块列表
    2. 加载器列表
    3. 运行文件
  2. 运行文件 运行加载器列表 加载器列表 运行模块列表
  3. 然后运行我们的业务代码。
  4. 然后根据重写的加载器 获取到所有有用的模块列表
  5. 遍历模块列表。写入键和值
  6. 重新进行封装 然后写入。
  7. 完成加密。然后运行代码

这里值得注意的是我们需要重写加载器的这个部分。

需要手动找到如下部分代码

如上图 在调度函数的开始加上如上代码。e为传参值。

javascript 复制代码
if (!modules_list.includes(e)) {
                modules_list.push(e)
}

其他正常使用即可。

当然 本工具尚还不成熟。就是本人瞎写着玩的。

写的也很仓促。就随便封装了一下。

之前看了一个视频里 用了 我就想自己能不能写一个。

大家有兴趣的可以github 点个stars。

hybpjx/semi_auto_webpack: v1版本 (github.com)

相关推荐
猿小猴子34 分钟前
Python3 爬虫 中间人爬虫
开发语言·爬虫·python
YONG823_API1 小时前
电商平台数据批量获取自动抓取的实现方法分享(API)
java·大数据·开发语言·数据库·爬虫·网络爬虫
罔闻_spider2 小时前
爬虫prc技术----小红书爬取解决xs
爬虫·python·算法·机器学习·自然语言处理·中文分词
非著名架构师2 小时前
js混淆的方式方法
开发语言·javascript·ecmascript
多多米10053 小时前
初学Vue(2)
前端·javascript·vue.js
敏编程3 小时前
网页前端开发之Javascript入门篇(5/9):函数
开发语言·javascript
易辰君3 小时前
python爬虫 - 深入requests模块
开发语言·爬虫·python
看到请催我学习3 小时前
内存缓存和硬盘缓存
开发语言·前端·javascript·vue.js·缓存·ecmascript
XiaoYu20025 小时前
22.JS高级-ES6之Symbol类型与Set、Map数据结构
前端·javascript·代码规范
儒雅的烤地瓜5 小时前
JS | JS中判断数组的6种方法,你知道几个?
javascript·instanceof·判断数组·数组方法·isarray·isprototypeof