<!doctype html>

<a href="https://www.api-racing.com/tag/js%e5%8a%a0%e5%af%86%e6%b7%b7%e6%b7%86%e7%a0%b4%e8%a7%a3" title="【查看含有[js加密+混淆破解]标签的文章】" target="_blank">js加密+混淆破解</a>

js加密+混淆破解

修改查询条件(城市的名称+时间范围), 点击查询按钮后发起请求对应的数据包。点击查询按钮后,发起ajax请求。改请求就会将制定查询条件对应的数据加载到当前页面中。(我们要爬取的数据就是该ajax请求请求到的数据)

分析捕获到的数据报

请求方法

请求参数d:动态变化一组数据(且加密的)

相应数据:是加密的密文数据

首先先处理动态变化的请求参数,动态获取该参数的话,就可以携带该参数进行请求发送,将请求到的密文数据捕获到
将铺货到的密文数据找到对应的解密函数进行解密即可
【重点】需要找到点击查询按钮后对应的ajax请求代码,从这组代码中就可以播出动态变化的请求参数和加密相应数据对应的相关操作

找到ajax请求对应的代码,分析代码获取参数d的生成,和加密的相应数据的解密操作

从getData函数实现中寻找ajax代码,但是发现另外两个函数调用

分析getData找到ajax代码

发现了另一个函数调用:getServerData

分析getServerData,找寻ajax代码:

发现找到的函数实现被加密

对getServer加密就是js混淆

js反混淆:对js加密代码进行解密

暴力破除的方式:https://www.bm8.com.cn/jsConfusion/
分析结论

js逆向:使用固定模块PyExecJS实现自动逆向