关注它,不迷路。
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
1. 需求分析
研究过Akamai 2.0 的朋友都应该知道,它的混淆代码基本每周至少变一次,调试起来非常的痛苦,每次都要去找加密位置,也是非常的令人不爽。所以干脆写个 简单的 脚本直接定位。
2. 混淆代码分析
阿卡迈 2.0的初始加密是一个 包含 56个元素的数组,如下图:
这里很明显是一个赋值语句,因此,直接遍历即可。源代码:
const getGenCode =
{
AssignmentExpression(path)
{
let {node,parentPath} = path;
let {left,right,operator} = node;
if (!types.isIdentifier(left) || !types.isArrayExpression(right) || operator != "=")
{
return;
}
if (right.elements.length != 56) return;
console.log("senser_data : \n",path.toString());
}
}
traverse(ast, getGenCode);
3. 具体操作
打开某个使用 阿卡迈 2.0 的网站,将其混淆的js保存下来,然后运行上面的脚本,输出结果:
直接全局搜索 这个 RY.Lf.call,直接定位到这里:
再打上断点,就可以愉快的调试了,非常的方便。
如果全局搜索这个特征不能快速定位,可以试试其他的特征。
今天的文章就分享到这里,后续分享更多的技巧,敬请期待。
欢迎加入知识星球,学习更多AST和爬虫技巧。