js逆向 webpack_js逆向之webpack模块

本文介绍了如何进行js逆向,特别是针对webpack模块的逆向分析。通过跟踪xhr调用,发现并理解加密函数,利用Webpack的基本模型定位模块加载器。通过构造自执行函数和寻找关键参数,成功解密并找到导出函数。注意处理内部加密函数和全局变量的定义顺序,以正确调用加密方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标网址:

b'aHR0cHM6Ly93d3cuZ205OS5jb20v'

ea40f25514a840500538ce3649b35696.png

开始控制台  跟xhr调用栈;

ad143b2fab80c5d9499a23fd351d2e1c.png

打上断点,再次请求;

c2ca217357567f0eef30acd913f63748.png

发现加密函数,跟进去;

1c6ee1d97ed8a9e2bd4223a68bb08295.png

Webpack:

a87c6999199e0bc9a64c053ddc86d7c4.png


这就是webpack的基本模型,两种形态一个参数是list  一个是object;再js内搜索}([  或者}({就可以定位到开始定义位置;

48f394691dc70e024eefd7f492534107.png

1.webpackfunction(x){  function t(yy){  x[yy].apply(x1,x2)   //调用第几个方法  }  t(1)}([function(x1,x2){},function(){}])  //方法列表

webpack步骤:

  1. 找到上面的模块加载器;也就是调用位置

  2. 找到我们需要的模块

  3. 构造自执行函数

    9e7a8cb3960563c6a8e0a3df5334b584.png

    7558feaf5e1b5474bc8b6dd98e4270e8.png

    模仿它的写法,我们自己构造一个模块加载器;

    454b839d7c7e317faa229d12f3360401.png

    因为加密是调用n,所以我们只有构造n就可以了;

    ee9d2251edae51ac5a544ac9475ef0a4.png

  4. 复制所以代码,进行折叠,找参数;

note选择语言js  view选择折叠所有;

导出函数

9ba6fc3c4acba39501bd41d2f62741c0.png

d4ffded5f644938d9cdb436cf964126f.png

选择再note里find

06a654a52c157a4a5314086d6441bd7d.png

直接就找到了;

154ace22f7428eb52e5f3a8a80e79b23.png

这里有个小坑,s是r(3),r经过调试其实就是n;同理找到里层加密函数,导出;

0a8fd5068a1a995e72d2c5d12189f05a.png

180ca16f85f8bc317fe3ae8ab2502c99.png

n = r  这里参数是对象,所以把r(3)改为参数调用;

781167d4f630bb4619a28683936f93dc.png

定义全局变量_n,提取加密函数;

100625b215950916fae9492f7d9e30fa.png

671ecba4aefd03964abaa7d43767059f.png

这里看到加密函数方法未定义,其实就是对象要先定义,才能调用;

d3523e66e86f0efb76356a1d08a17609.png

4335509d070bb0c0c4a4364e1672fb36.png

8c7b2d4e3d9657e0c4a4270f3213f7f8.png

42c01d8e25e554ff7527219ce3696e3c.png

以上;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值