详解七麦数据的analysis参数逆向解密过程

免责声明:本博主只用于技术交流,不做任何商业用途,如有侵权,请告知删除!

首先,定位到加密函数的位置

详解七麦数据的analysis参数逆向解密过程_第1张图片

函数的实参n是一个请求的 参数对象,包括url,parmas ... ,这个实参n会根据不同的api传不同的参数进来,这里测试的是一个获取appList的api

接下来看 try 里面开头的三行代码 : 

通过变量替换还原可解出以下等效果的代码 : 

 

这几行代码的功能就是判断g 以及 g["difftime"] 是否存在,假如不存在的话则执行函数体,函数体还有一个关联函数h['f'],其中h 是一个对象,h['f']是返回h对象属性名为 f  的 值 , 这个值是一个函数引用,以下是h["f"] 函数的定义处 : 

接下来看看主加密函数 接下来的三行代码 :

详解七麦数据的analysis参数逆向解密过程_第2张图片

用同样的方式解出可读性好和可移植的代码: 功能一目了然,其中 S 值为 空字符串

接下来几行 : 

解析出来是 : 

详解七麦数据的analysis参数逆向解密过程_第3张图片

这个的作用是 遍历 n 对象的属性名, 当属性名不等于 "analysis"时把它们的值 添加到 变量 i 中 ,此时 的 i 是 array 类型   

接下来的代码 : 

解析出来是 : 

详解七麦数据的analysis参数逆向解密过程_第4张图片

这里先把数组 i 做下排序再转化为 string ,h["d"] 是一个编码的函数 ,如下 

详解七麦数据的analysis参数逆向解密过程_第5张图片

h["d"] 函数又关联到另外两个函数 , A() 和  i () ,分别如下 : 

以上三个函数在执行的时候都是必须扣出来的, 上面几行代码执行之后 i 的 值为 

最后三行代码 : 

详解七麦数据的analysis参数逆向解密过程_第6张图片

解析得 : 

这里的 h["d"] 上面已经拿出来了 , 还有一个关联函数 h["j"] ,也要抠出来,  如下 : 

详解七麦数据的analysis参数逆向解密过程_第7张图片

最后加密后的url :

 

数据 : 

详解七麦数据的analysis参数逆向解密过程_第8张图片

你可能感兴趣的:(js逆向,js,逆向,javascript)