【python爬虫逆向】jsvmp入门|某短视频xb分析步骤

本文介绍了如何使用V神浏览器插件配合AST解混淆技术,对xb的代码进行日志插桩和设置条件断点,以解析jsvmp加密的逻辑。作者详细步骤指导了如何观察字符生成过程和参与计算的因素。
摘要由CSDN通过智能技术生成

网站说明

jsvmp以某音的xb为例

准备工作

浏览器插件

V神的浏览器插件
点击上面的文字即可访问,下载zip后解压缩,然后把解压后的文件拖到chrome的chrome://extensions/,这个连接里就可以了,记得打开右上角的开发者模式;

ast解混淆后的代码替换浏览器中原始的代码;

首先找到webmssdk这个js文件,把内容复制出来,粘贴到V神的插件的ast解混淆里,点击如下按钮,然后把解混淆后的代码复制出来备用。

点击这几个按钮,然后选择完文件路径,上方会弹出的条幅,点击允许即可。

右键点击js,然后点击替换内容。

把上面ast解混淆后的代码粘贴到这里,然后保存即可。

日志插桩和条件断点

以xb为例子,在这个大循环开始的地方,插入日志,右键点击行号,然后点击插入日志,输入下面这段代码,这里就演示这几个变量,实际可以多打印几个你觉得可疑的变量,当然初始定义的这个数组是必须打印的。

'日志1   e',e,'p',p,'O',JSON.stringify(O, function (key, value) {
    if (value == window){
      return undefined
    }
    return value
})

完成后,刷新网页,查看浏览器的控制台,会打印出很多日志,耐心等待打印完毕,当然打印的参数太多了,也会很慢。完毕后,我们去看输出的日志,首先搜索DFS,并找到第一次出现的位置,至于为什么搜索DFS,因为这三个值是固定的。

我们可以看到xb就是从这里开始根据后面这个字符串的下标,一个字符一个字符生成的。

具体怎么个的代码逻辑,我们需要在循环处下一个条件断点,类似这样的,具体的变量值,是根据你插桩日志里的可疑变量和值来下的。

最后刷新网页,单步执行,看循环和代码逻辑即可。如果断的不对,就多F8几次,直到能看到Dkdpgh4ZKsQB80/Mfvw36XI1R25-WUAlEi7NLboqYTOPuzmFjJnryx9HVGcaStCe=这个值。就可以开始分析了。

代码的大致逻辑:
1.xb的长度是固定的;
2.DFS这三个字符是固定的;
3.字符是一个一个生成的,且后续每四个字符的生成逻辑是一样的;
4.都是根据上面这个长字符串的下标去生成的;
5.浏览器的UA和url参数,参与计算;
6.下标基本都是根据乱码charCodeAt后生成的

最后生成的结果如下。

结语

xb其实逻辑上来讲不是很难,就是jsvmp分析起来很耗费时间,此篇文章大概略去了至少2个小时以上的一个分析过程。虽说只要屁股坐不烂,总归是能分析出来了,但也还是需要多站起来走走的。结束,撒花,下期见。
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AJackpot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值