akamai 某环境参数VMP逆向
前言
懂得都懂 直接开干。本文出口入口值会有些许区别 网站值没有固定。
仅分析部分算法。
流程分析
如下图 断点打在 第一个wPz 生成的地方。看 jsz
目标: 获取jsz中的mst的dvc。如下图所示
往上找,找到jsz生成的地方 如下图所示
然后右边看作用域。找到与之匹配的 “dvc”
然后继续往上找 找到jzz的生成处
经过分析下面这段代码即使生成dvc的位置
1 | pL(x4, [ |
然后我们分析下
1 | VQ()[AJ(xg)](FCz, lE, SL) = 'dvc' |
这样大概的逻辑就很清楚了
如下图是入口地方
日志
这里其实都不用看这个 随便看看 应该就知道哪个地方是重点
先监控下这个PT里的值
然后再监控下入口的这个传参值
还需要看看入口的这个值 是什么
然后就是重点
这个值会出来
先把入参找出来 本文是[2, ‘16|24’, 0, 0]
第一个值
刷新完 看看日志。
挨个分析
确定是UA 可以暂时不用分析了。
第二个值
如下图
不讲了。 但是这个值得记录下来 2482411364
这里分享个第一个算法吧。 其他的自己努力努力
1 | let UA = |
第三个值
如下图
不讲了
把这个值也记录下来 10010011111101101001011101100100
第四个值
第四个稍微就有点多了 坑点也增多
如下 入参的某个值 charCodeAt了记录下来
1 | [..."214|160"].map(char=>char.charCodeAt()) |
这个 214 和 160是哪来的呢?
看入参的第二个值
拼接逻辑如下
1 | [2, '16|24', 0, 0][0].toString() + [2, '16|24', 0, 0][1].toString() + [2, '16|24', 0, 0][2].toString() |
继续网上看
可以发现 有个固定值 split 并且固定值 每次都经过了一些判断 并且 变成了新的一个值。
这里的逻辑和第四个值没啥关系 但是也还是需要搞出来。
如下图 得到最终值 以及一些算法 可以反推出来
这里细节不多说了 最终值 1588180537
第五个值
如下图
生成如下
1 | (4070591901).toString(2) |
重点就是 4070591901 怎么来的
不讲了 网上看看 有些坑 自己注意下就好了。
第六个
这个 是最难的 也是最麻烦的
简单说下
这里分两个 长的字符串+短的字符串
长
基于 两个传参的互相相加 然后charAt互相相加
短
太麻烦,有空了再说 单开贴 这个要搞的话日志要打全。
最好挨个跟栈去看控制流。
结果
最后验证下结果
传入传参与入参
这是代码生成的值
这是网站生成的值
教程帮助 感谢我7
- 标题: akamai 某环境参数VMP逆向
- 作者: hybpjx
- 创建于 : 2025-03-10 23:29:23
- 更新于 : 2025-03-10 23:30:35
- 链接: http://hybpjx.github.io/2025/03/10/akamai-某环境参数VMP逆向/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。