Loading

【AI 逆向专栏】Akamai dvc 参数逆向分析

N8O1Dc.png

声明

本文所有内容仅供学习交流使用,不用于其他任何目的;不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理。严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

本文未经许可禁止转载,禁止修改后二次传播;擅自使用本文讲解的技术而导致的任何意外,作者均不负责。若有侵权,请在公众号【K哥爬虫】联系作者立即删除!

逆向目标

  • 目标网站:aHR0cHM6Ly93d3cucmFkaXNzb25ob3RlbHMuY29tL3poLWNuLw==
  • 逆向目标:dvc 参数
  • AI 模型:GPT-5.5

逆向分析

根据以往的经验,先找目标 JS,名字一般都很短。需要注意的是,文件名每天都会变,小伙伴看到的可能和下图的名字不一样:

N8OPf3.png

为了方便观察和分析,先解混淆。解混淆过程可以参考往期文章:

https://mp.weixin.qq.com/s/29OL7ktX16IJvbtx9qz8jg

本文就不作讲解了,解混淆后的文件已放入知识星球中,感兴趣的小伙伴自取。

把解混淆后的文件替换到浏览器中,然后在相关 JS 文件里直接搜索 dvc 参数,即可定位到下图 Ljv 处:

N8OY3j.png

N8OrA5.png

打印 D1 函数,结果如下:

N8OtJm.png

D1 就是我们需要逆向的目标。

AI 逆向

由于 JS 是动态的,我们可以先不用 MCP 分析,换个思路:把文件复制到本地,先通过简易补环境的方式让它能正常执行,最后再尝试复现出完整的算法。

补环境

第一步,先搭好架子,让主要的 JS 代码执行时不报错,把我们的需求直接丢给 AI:

N8O4B4.png

执行后发现程序没有停止,可能存在定时器,继续追问 AI:

N8OCgh.png

这里不要顺着 AI 的话术走,我们得明确最终要实现什么,是我们操控 AI,而不是让 AI 操控我们。继续问:

N8OJY9.png

运行本地文件后发现每次生成的值都不一样,但浏览器多次运行得到的值是一样的。这里继续让 AI 分析原因:

N8OXZY.png

根据 AI 的回答,我们只需要把 random 和 startTs 的值固定即可。本地已经可以输出 dvc 值,证明环境架子搭好了,结果如下:

N8OnuH.png

算法分析

接下来就是分析纯算法的时候了,继续拷问 AI:

N8OIDZ.png

开始弹道德了,要么是我们的问法有问题,要么是上下文关联后被检测到了:

N8SpVb.png

尝试新开对话,发现可以正常分析了:

N8OMfU.png

分析了大概 16 分钟,得出了一版算法,AI 输出结果如下:

N8Oilq.png

N8OsAs.png

既然如此,我们直接验证下这个算法是否正确。换上浏览器的 UA 以及 startTS 后,发现结果不一致:

N8O2Ja.png

但是可以看到,只有后六位和浏览器不一样。此时需要重新思考:浏览器每次结果都一样,但我们并没有 hook 浏览器的 Math.random,那么这个算法可能并没有依赖这个值,也可能是 AI 的分析出现了纰漏。于是我们再次拷打 AI,问答如下:

N8OFT7.png

AI 这次也很迅速,分析了三分钟就找到了问题:

N8OZgI.png

N8OdYV.png

N8OedL.png

应该是我们的环境没有补完整,导致走了错误的分支。按照 AI 分析的过程重新生成一遍算法,Node.js 执行结果如下:

N8S9uJ.png

浏览器结果如下:

N8SkOG.png

可以看到结果已经一致了。我们可以再用一组浏览器的值进一步验证一下算法是否正确。

浏览器结果如下:

N8SBiB.png

Node.js 结果如下:

N8Smlt.png

证明算法无误。至此,关于这个参数的分析就结束了。该算法和解混淆后的文件都会上传到知识星球中,仅供学习交流。

posted @ 2026-08-17 18:00  K哥爬虫  阅读(12)  评论(0)    收藏  举报