返回

第二个 JS 逆向项目:解密加密的 JavaScript 数据

后端

摘要:

在这个引人入胜的 JavaScript 逆向系列的第二篇文章中,我们将深入探讨如何解密目标网站加密的 JavaScript 数据。我们将遵循一个分步流程,从需求分析到代码解密,掌握 JavaScript 逆向的技巧。

第一步:分析需求

第二步:查找异步加载的接口

通过分析网站代码,我们发现数据通过异步加载的接口动态获取。接口地址为:

https://www.qimingpian.cn/finosda/finos_search/Pinvestment/getProjectList

第三步:识别加密算法

使用 JavaScript 调试器(如 Chrome DevTools),我们在加密算法中定位了以下代码段:

function encrypt(data) {
  let encryptedData = CryptoJS.AES.encrypt(data, 'SECRET_KEY');
  return encryptedData.toString();
}

这表明数据使用 CryptoJS 库中的 AES 加密算法加密,密钥为 "SECRET_KEY"。

第四步:解密数据

了解加密算法后,我们可以编写一个解密函数:

function decrypt(encryptedData) {
  let decryptedData = CryptoJS.AES.decrypt(encryptedData, 'SECRET_KEY');
  return decryptedData.toString(CryptoJS.enc.Utf8);
}

第五步:实施解密

我们使用 Axios 库从目标网站获取加密数据,然后使用解密函数对其进行解密:

axios.get(接口地址)
  .then(response => {
    let encryptedData = response.data;
    let decryptedData = decrypt(encryptedData);
    console.log(decryptedData);
  });

通过遵循这些步骤,我们成功解密了目标网站的 JavaScript 加密数据,揭示了有价值的信息和见解。通过掌握这些技术,您将成为一名能力出众的 JavaScript 逆向工程师,能够揭开隐藏数据的秘密。