dist静态打包文件reverse-sourcemap反编译为源文件

0.此教程的背景为源代码丢失,想尝试通过线上包进行一些操作还原源代码
1.需要用到node,npm命令所以你的环境中要配置过,否则影响后面操作
2.打包文件中要有*.js.map文件(一般在dist/static/js下),reverse-sourcemap主要是通过反编译*.js.map得到源文件
3.此篇只记录如何使用reverse-sourcemap反编译,不是将静态文件完全还原成源代码的教程,因为我也没有成功还原,只是拿到了部分文件

全局安装 reverse-sourcemap

npm install --global reverse-sourcemap

执行反编译命令

reverse-sourcemap --output-dir source-XXXX   XXXX.js.map

其中source-XXXX是输出目录,XXXX.js.map是需要反编译的文件
该命令需要在存放XXXX.js.map的目录下执行
如果你有多个.js.map文件需要批量执行,可以参考下面给出的js脚本

const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');

const folderPath = "C:\\Users\\12345\\Documents\\source";  // 你需要指定包含js.map文件的文件夹路径

fs.readdirSync(folderPath).forEach(file => {
  if (file.endsWith('.js.map')) {
     const mapFilePrefix = path.basename(file, '.js.map');
     const outputDir = `source-${mapFilePrefix}`;
     const command = `reverse-sourcemap --output-dir ${outputDir} ${file}`;

    try {
      execSync(command);
      console.log(`Executed reverse-sourcemap for ${file}`);
    } catch (error) {
      console.error(`Error executing reverse-sourcemap for ${file}:`, error);
    }
  }
});

执行上面的脚本你需要先新建一个source文件夹,然后将所有的需要执行的*.js.map文件放到source下面(我这里直接将静态文件夹中js所有内容都拷过来了,没关系脚本只会处理.js.map后缀的文件),再新建一个js文件,复制以上代码保存,我这里举例将脚本文件命名为reverse-js.js
在这里插入图片描述

然后再source目录下打开cmd,执行

node reverse-js.js

控制台输出示例
在这里插入图片描述
然后你的source文件夹下就得到了一堆像我这样的文件夹,即为反编译后的文件
在这里插入图片描述
打开文件可以看到能拿到原项目的js文件,但是vue文件还是编译过的没办法完全还原

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值