吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10477|回复: 48
收起左侧

[Web逆向] ast自动扣webpack脚本实战

  [复制链接]
漁滒 发表于 2022-1-7 00:25
本帖最后由 漁滒 于 2022-1-7 00:30 编辑

@TOC

webpack是什么

webpack是一个现代 JavaScript 应用程序的静态模块打包器(module bundler),通俗来讲,我的理解就是把你在加解密过程中要调用的模块打包成为一个JS文件,然后引入它,自动展现出你要引入的资源。可能我这里说的不是很清楚,可以推荐一篇文章:https://www.cnblogs.com/Eeyhan/p/10584014.html

在这里插入图片描述

前置阅读

本文章主要是讲述脚本的使用方式,而js的分析过程在本文中会省略。文章中实战的来源于下方网址,请先阅读下方网站中的分析过程,再尝试阅读本文,会更加清晰。

阅读地址:用3个实战案例带你理解webpack

webpack自动扣代码脚本

项目地址: 渔滒 / webpack_ast

使用命令行的方式

node webpack_mixer.txt -l runtime.62249a5.js -m app.597640f.js -o webout.js

参数说明:

-l 加载器的js路径

加载器的js特征:

1.以自执行函数开头

2.定义导出函数,类似 return e[n].call(r.exports, r, r.exports, d), r.l = !0, r.exports

3.为导出函数添加多个方法,类似d.e,d.m,d.n等等

-m 函数模块的js路径

函数模块的js特征:

1.一般以(window.webpackJsonp开头

-o 输入结果的js路径

备注:如果js本身有检测等,需要自行补头或者其他处理

实战内容

文章中的第一个网站是猿人学的webpack,因为这个不是一个常规的,所以这里不适用,直接从第二个开始

从文章中可以知道,加密的方法来自于home.min.js这个js文件,那么直接将这个文件下载下来,这个文件就是一个加载器

在这里插入图片描述

下载完成后,把脚本文件webpack_mixer.js放到同一目录,并执行

node webpack_mixer.js -l home.min.js -o webpack_out.js

可以得到webpack_out.js这个已经扣取完成的文件,自己在同目录创建一个test.js的测试文件,直接导入文件

在这里插入图片描述

可以正常获取到所有的导出函数

在这里插入图片描述

当调用加密的时候,缺少环境。那么直接导入jsdom

在这里插入图片描述
继续运行发现ASN1未定义,主要是因为浏览器和node环境不同导致的,在下面三个位置前面加上window来调用就可以

在这里插入图片描述

再次运行得到加密结果

在这里插入图片描述
继续来到第三个实战

根据文章中的分析,密码的加密调用到了login.5170f665.js这个文件,但是这个文件只是一个模块,还要找到它的加载器app.f24d08e9.js一起下载下来

node webpack_mixer.js -l app.f24d08e9.js -m login.5170f665.js -o webpack_out.js

尝试对密码进行加密

在这里插入图片描述

出现这个错误,那么一定就是还是缺少需要的模块,经过查找是缺少了chunk-vendors.bb13f90f.js这个模块,那么继续下载这个模块放到一起

node webpack_mixer.js -l app.f24d08e9.js -m login.5170f665.js -m chunk-vendors.bb13f90f.js -o webpack_out.js

在这里插入图片描述
此时密码加密已经完成,还差一个请求体的加密,发现是调用另外一个文件DCSAPPClientAPI-0.0.0.7.js进行加密的,也下载下来

在这里插入图片描述

通过导入文件,就可以实现全部的加密了,至此实战完成

免费评分

参与人数 18吾爱币 +33 热心值 +14 收起 理由
dincia + 1 谢谢@Thanks!
yuzhiyizhan + 1 + 1 我很赞同!
eoo + 1 鼓励转贴优秀软件安全工具和文档!
Jack150 + 1 我很赞同!
Akihi6 + 1 + 1 好东西!!!
heartfilia + 1 + 1 渔滒太强了
helian147 + 1 热心回复!
littlebird999 + 1 我很赞同!
jiakechong1 + 1 我很赞同!
笙若 + 1 + 1 谢谢@Thanks!
Sound + 16 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
cclong + 1 + 1 很不错哦,学习了一下思路
ofo + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lecat + 1 + 1 谢谢@Thanks!
a657938016 + 1 + 1 用心讨论,共获提升!
天空宫阙 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lgc81034 + 1 谢谢@Thanks!
为之奈何? + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

carson512 发表于 2022-12-13 20:42
[Asm] 纯文本查看 复制代码
E:\tiancity>node .\webpack_mixer.js -l .\runtime.js  -m .\user-sign.js -m .\vendor.js -o webpack_sdk.js
E:\tiancity\webpack_mixer.js:23
    if (loader_ast.program.body[0].expression.type === 'UnaryExpression'){
                                              ^

TypeError: Cannot read properties of undefined (reading 'type')
    at run (E:\tiancity\webpack_mixer.js:23:47)
    at E:\tiancity\webpack_mixer.js:159:9
    at Object.<anonymous> (E:\tiancity\webpack_mixer.js:161:2)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

Node.js v18.12.1


实战遇到的问题 是加载器没找对么
18780334870 发表于 2022-5-14 01:41
漁滒 发表于 2022-4-24 09:05
我不是发布者,所以我也没有办法补了

这是哪个公众号作者发布的文章啊,前段时间存的,打算这段时间再拿出来看下,就没了,心里好难受
天空宫阙 发表于 2022-1-7 07:58
夕阳枫 发表于 2022-1-7 08:28
谢谢分享,我要认真学习下。
头像被屏蔽
TRHX 发表于 2022-1-7 09:02
提示: 作者被禁止或删除 内容自动屏蔽
ronle 发表于 2022-1-7 09:04
这个就很强了
yufd1986 发表于 2022-1-7 09:29
强,学习了。。。。
a657938016 发表于 2022-1-7 09:33
牛逼啊,大佬,跟着你一起学习下
byyulei 发表于 2022-1-7 10:25
鱼giegie  能亲一口吗
onoffon 发表于 2022-1-7 10:25
感谢,初步了解 auto js 是怎么回事了
梦回凉亭的她 发表于 2022-1-7 10:49
鱼哥有公众号之类的嘛!!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 07:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表