js逆向-webpack-python

网站(base64):aHR0cHM6Ly93d3cuY29pbmdsYXNzLmNvbS96aA==

案例响应解密爬取(webpack)

1、找到目标url

2、进行入口定位(此案例使用 ‘decrypt(’ 关键字搜索 )

3、找到位置进行分析

--t 为 data

-- e 为 key 并且是随机变换得(但只有两个值)

4、根据堆栈信息查找得er得被调用情况

--发现不同执行方式会有不同得生成n得值也就是 e(直接将代码copy进本地)

--t.header.user 是动态变得,获取时通过响应头获取,在传参

而 r 生成出来得则是解密后的值

5、将所需得代码都copy进本地后可以进行运行查找错误

--en函数错误,在将en导入本地

6、ee错误

-- 分析发现ee是一个webpack

--我们需要找到其加载器,都知道本地,使用加载器调用函数

7、找到n得函数位置

--发现一部分是一个标准的加载器写法

8、全部复制过来,

--然后把加载器赋值给全局变量

--方便调用

9、发现这个()中没有参数

--说明是多文件传入

--有参数说明是单文件传入

10、需要将另一个其参数的映射文件复制本地

--搜索参数找到其位置

--复制到本地

11、最后将两个文件引入到最初的js文件中,并进行调用

12、导入py文件进行调用执行

### 关于 Webpack.js逆向工程与反编译 #### 一、Webpack 打包文件结构解析 Webpack 将多个模块组合成单个或少数几个捆绑文件,在这个过程中进行了大量的优化操作,如代码分割、Tree Shaking等。这些处理使得原始源码难以直接被读取和理解。对于经过混淆压缩后的 JavaScript 文件来说更是如此。 当面对一个由 Webpack 构建出来的应用时,首先要做的就是尝试还原其原本的目录结构以及依赖关系图谱[^1]。 #### 二、解密与去混淆 许多应用程序不仅通过 Webpack 进行打包还会采用额外的安全措施比如字符串加密、函数名替换等方式增加破解难度。此时就需要利用特定工具来进行初步清理工作: - **JSDecrypter**: 对简单的 Base64 编码或者其他常见编码方式进行快速解码; - **JSNice.org**: 自动美化并猜测变量名称以提高可读性; 需要注意的是,并不是所有的加密手段都能轻易解除,某些情况下可能需要深入研究算法原理才能找到突破口[^2]。 #### 三、动态调试法 静态分析虽然重要但也存在局限性,特别是针对那些运行时才会加载的内容或者是基于环境变化而改变行为的应用程序部分。这时可以借助浏览器开发者工具(DevTools)、Burp Suite 等代理服务器软件来捕获网络请求数据流,观察实际执行路径从而获取更多信息。 另外还可以考虑使用 Hook 技术拦截目标对象的方法调用,记录参数传递情况以便进一步追踪逻辑走向。 ```javascript // 使用 Proxy 实现简单 hook 功能 const originalMethod = Object.getPrototypeOf(targetObject).methodName; Object.defineProperty(Object.getPrototypeOf(targetObject), 'methodName', { value(...args){ console.log('Before method call:', args); const result = originalMethod.apply(this, args); console.log('After method call:', result); return result; } }); ``` #### 四、自动化辅助脚本编写 在整个逆向过程中可能会遇到重复性的任务,例如批量下载资源文件、自动填充表单提交测试等等。这时候就可以开发一些小型爬虫或者命令行工具来简化流程,提升效率。 Python 和 Node.js 都是非常适合用来构建此类工具的语言选择,它们拥有丰富的第三方库支持Web交互需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值