【JS逆向系列】某乎x96参数3.0版本与jsvmp进阶

查看 111|回复 9
作者:漁滒   
@TOC
前言
距离上一次的某乎jsvmp也过了好一段时间,现在也从2.0的版本升级到了3.0的版本


自然的,算法也就发生了一些改变。最明显最直接可见的变化就是长度边长了,并且相同的入参,输出结果并不相同。那么这篇文章就在原来2.0的基础上【JS逆向系列】某乎x96参数与jsvmp初体验,来分析一下3.0版本变难了多少,算法又要怎么还原出来。
初看js代码
至于参数如何查找这篇文章就跳过了,相关内容可以查看前一篇,这篇从【__g._encrypt】开始。两个版本的入口是相同的,都是从【__g._encrypt】进入到jsvmp内部代码,入参也都是一个md5结果的16进制字符串。
某乎的jsvmp与其他的略有不同,一般的jsvmp是堆栈式的,而某乎的这个是寄存器式的。也是也之前一样,是有vm的初始化,这次3.0的对象是【l】对象

结构上和之前还是很想的,不过多了不少参数,有几个关键的参数需要注意
[table]
[tr]
[td]参数[/td]
[td]映射含义[/td]
[/tr]
[tr]
[td]this.c

参数, 版本

漁滒
OP
  


hlrlqy 发表于 2022-9-11 16:00
看到了,您使用ast生成代码的方式很高明,比起直接在case中插桩输出伪代码实现类似trace的效果提供了更大 ...

是的,插桩也是一个很好的方法。两种方法可以互补来更加有效的分析
白云点缀的蓝   

话说这编程是不是只有英文,没任何意义???
漁滒
OP
  


白云点缀的蓝 发表于 2022-9-11 15:29
话说这编程是不是只有英文,没任何意义???

只有英文是什么意思?没太理解
hlrlqy   

请问反汇编是如何操作的呢?
漁滒
OP
  


hlrlqy 发表于 2022-9-11 15:40
请问反汇编是如何操作的呢?

可以先看看前面一篇的分析
coderyzh   

get  感谢楼主分享
hlrlqy   


漁滒 发表于 2022-9-11 15:42
可以先看看前面一篇的分析

看到了,您使用ast生成代码的方式很高明,比起直接在case中插桩输出伪代码实现类似trace的效果提供了更大的想象空间
Barbara   

分析的好详细,默默学习一个,谢谢楼主,某乎整的好复杂啊
bdcpc   

好复杂,真的看不懂(#-.-)
您需要登录后才可以回帖 登录 | 立即注册

返回顶部