场景说明:
下载下来的文件是 压缩 / 混淆后的 min.js JS 全部挤成单独整整一大行,没有换行缩进,VSCode弹出「出于性能原因,标记化时跳过长行」警告,阅读分析代码极其困难。
区分两个格式化插件的适用场景
| Prettier‑Code formatter | 正规开发项目代码格式化(适合自己写的源代码),默认会拒绝处理严重压缩混淆的 min 单行 JS,容错比较严格。 |
|---|---|
| JS‑Beautify | 专门逆向、爬虫下载的压缩 JS 美化工具,容错更强,对付网站另存下来的单行混淆代码更稳,规则宽松,不适合日常开发编码 |
一.扩展商店搜索安装
Prettier - Code formatter
该插件更适合源代码,部分高度混淆网页 JS 会格式化失败
(1)(前置步骤)消除 VSCode 长行性能警告
VS Code 提示原话翻译:
出于性能原因,标记化(语法解析)跳过长行。阈值配置项:editor.maxTokenizationLineLength
先解除 VSCode 单行限制(先做这个) Ctrl + , 打开设置
搜索:editor.maxTokenizationLineLength 默认值:100000 改成 10000000(一千万字符)
保存,关闭 JS 文件重新打开,警告消失。
二.把 Prettier 设为默认格式化工具
快捷键 Ctrl + , 打开设置
搜索:default formatter
Editor: Default Formatter 下拉选择:
esbenp.prettier-vscode
基础使用方法
方式① 快捷键
打开桌面下载的单行 .js 文件
按下:Shift + Alt + F
尝试一键格式化整个文档
方式② 右键菜单
在代码编辑区域右键 → Format Document
tip:.min.js = production生产环境压缩脚本,网站为了加快网页加载速度,删除空格、换行、注释;
压缩 ≠ 混淆
单纯压缩:去掉空格换行,美化工具就可以恢复可读代码;
JS 混淆:修改变量、函数名称为乱码字符串,增加逆向难度(阿里云验证码 JS 就属于这类)