AST对抗某网站的Js抽取型混淆

因为网站比较敏感, 所以具体网站就不说了, 直接说逻辑部分

为了降低数据提取的错误率, 所以使用了python的slimit库对js代码进行提取处理

对网站源码的JavaScript进行分析后, 发现在其中一个script标签内的js代码是利用抽取混淆的, 并用flashvars开头的变量存储

 

首先用python将该js代码进行提取

将该部分代码格式化后可以看到键名为mediaDefinitions的值是数组, 数组内存储着videoUrl

在这里可以看到, 链接是被抽取的进行拼接后即可还原真实地址

下面会使用到python的slimit库的ast进行还原

通过smlit的Parser类的parse方法, 对js代码转换为ast结构树

获取到结构树后, 需要自定义类, 并继承ASTVisitor, 自定义访问者遍历节点对节点进行抽取

下面代码我先对mediaDefinitions和qualityItems对象进行抽取还原

还原mediaDefinitions和qualityItems对象后, 继续创建访问者对抽取链接进行还原

进入的节点仍然是VarStatement, 因为视频的链接由多个变量并且不定数量进行拼接, 所以下面使用递归方式并使用了get_Identifier方法对抽取变量进行获取还原

下面是完整代码:

 

Posted in 随便说 百度已收录

发表评论

您的电子邮箱地址不会被公开。