南强小屋 Design By 杰米

@TOC

样品网址:aHR0cHM6Ly93d3cuemhpaHUuY29tLw==

js分析

在搜索的时候,请求头中会存在一个x-zse-96的参数,这个参数是加密的,本篇文章主要分析这个参数是如何生成的

【JS逆向系列】某乎x96参数与jsvmp初体验
直接在全局中搜索

【JS逆向系列】某乎x96参数与jsvmp初体验
发现只有两处地方引用到,那么直接打上断点刷新

【JS逆向系列】某乎x96参数与jsvmp初体验
此时发现参数已经生成,前面的【2.0_】是固定值,后面的【y】是前面的【O.signature】

继续往前看【O】,这是由一个自执行函数生成的,在里面也下一个断点

【JS逆向系列】某乎x96参数与jsvmp初体验
这里有三个参数,第一个【e】是请求的地址,第二个【t】是请求体,第三个【n】是一个对象,里面又有三个值,其中【zse93】是另一个请求头的值,是一个定值,【dc0】是cookie中的【d_c0】的值,还有一个【xZst81】是空的,可以不用管

接着的参数【s】就是过滤掉布尔值为false的值然后进行拼接,所以实际【s】就是【{x_zse_93}+{path}+{d_c0}】

然后我们需要的参数【signature】就是【s】经过两个函数生成的,那么首先来看看【f】函数

【JS逆向系列】某乎x96参数与jsvmp初体验
看到返回值是一个长度32的字符串,猜测这个函数很有可能是一个md5的计算,从在线网站计算一下对比,发现这个就是一个标准的md5算法

接着就是【u】函数

【JS逆向系列】某乎x96参数与jsvmp初体验
这个就是我们需要的结果,跟进去看看

【JS逆向系列】某乎x96参数与jsvmp初体验
接着在单步调试的时候,发现会在各个函数之间反复横跳。看到这个前面有一个很长的字符串【AxjgB5MAnACoAJwBpAAAABAAIAKcAqgAM*****】,这种很有可能就是jsvmp。

jsvmp分析

jsvmp就是将js源代码首先编译为字节码,得到的这种字节码就变成只有操作码(opcode)和操作数(Operands),这是其中一个前端代码的保护技术。

整体架构流程是服务器端通过对JavaScript代码词法分析 -> 语法分析 -> 语法树->生成AST->生成私有指令->生成对应私有解释器,将私有指令加密与私有解释器发送给浏览器,就开始一边解释,一边执行。

【JS逆向系列】某乎x96参数与jsvmp初体验
在客户端中,通过特定的解释器,不断执行一条一条的指令

【JS逆向系列】某乎x96参数与jsvmp初体验

既然是jsvmp,那么肯定会有vmp的一些特征

【JS逆向系列】某乎x96参数与jsvmp初体验
这里的【G】就是vm初始化,这里有几个参数需要特别注意

参数映射意义this.r
标签:
【JS逆向系列】某乎x96参数与jsvmp初体验

南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米

评论“【JS逆向系列】某乎x96参数与jsvmp初体验”

暂无【JS逆向系列】某乎x96参数与jsvmp初体验的评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?