JS 逆向基础

面试官想考什么

  • 是否只会工具。
  • 是否理解前端加密参数的分析流程。
  • 是否能处理登录、爬虫、接口签名、小程序等场景。

一句话理解

1
JS 逆向是通过分析前端 JavaScript 代码,定位加密、签名、混淆或反调试逻辑,还原接口参数生成过程。

常见场景

  • 登录密码加密。
  • 请求参数 sign。
  • token 生成。
  • 时间戳和随机数校验。
  • 接口数据加密。
  • 反爬虫。
  • 小程序接口签名。

基础流程

  1. 抓包确认请求。
  2. 找加密参数,如 signtokenpassworddata
  3. 在 JS 中搜索关键字。
  4. 使用浏览器开发者工具打断点。
  5. 跟调用栈定位加密函数。
  6. 判断算法:MD5、SHA、AES、RSA、Base64。
  7. 找密钥、IV、时间戳、随机数来源。
  8. 用 Python 或 Node.js 复现加密逻辑。

工具

  • Chrome DevTools。
  • Burp Suite。
  • Postman。
  • Node.js。
  • Python。
  • AST 反混淆工具。
  • 随波逐流等工具可以辅助,但不要只说工具名。

面试标准回答

1
2
3
JS 逆向我目前还在学习阶段,主要了解基础流程。一般会先抓包确认加密参数,比如 sign、token、timestamp、password 等,然后在前端 JS 里搜索关键字,用浏览器开发者工具打断点,跟调用栈定位加密函数。

定位后会判断是否使用 MD5、AES、RSA、Base64、时间戳、随机数等逻辑,再尝试用 Python 或 Node.js 复现参数生成过程。工具可以辅助,但关键还是理解参数从哪里来、函数在哪里执行、密钥和签名规则是什么。

常见追问

Q:如果 JS 被混淆怎么办?

1
我会先格式化代码,再通过关键参数、接口 URL、断点和调用栈定位核心函数。如果混淆较重,可以结合 AST 工具做基础还原,但我目前这块还在学习阶段。