UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 1935|回复: 0
收起左侧

[Web逆向] 如何使用AST还原某音的jsvmp

[复制链接]
Honeys

主题

0

回帖

UD

新手上路

UID
42
积分
34
注册时间
2022-5-15
最后登录
1970-1-1
2023-3-12 05:12:29 | 显示全部楼层 |阅读模式

什么是JSVMP

vmp简单来说就是将一些高级语言的代码通过自己实现的编译器进行编译得到字节码,这样就可以更有效的保护原有代码,而jsvmp自然就是对JS代码的编译保护,具体的可以看看H5应用加固防破解-JS虚拟机保护方案

如何区分是不是jsvmp?看代码里面有没有很长的一串字符串或者是数组,并且代码里面没有具体的逻辑,还有就是有一个循环不断地在跑,里面的就是一些指令,比如x乎,x音,x讯滑块等等都是jsvmp,也都是基于堆栈的栈式虚拟机实现的。

这是某乎的:
如何使用AST还原某音的jsvmp - Honeys_UltraDebug

这是某音的,还原了一些算术混淆、三目运算和if else控制流混淆的:
如何使用AST还原某音的jsvmp - Honeys_UltraDebug

如何使用AST还原某音的jsvmp - Honeys_UltraDebug

这是某讯滑块的:
如何使用AST还原某音的jsvmp - Honeys_UltraDebug

如何去还原JSVMP

  1. 调试vmp代码,分析循环代码里面每个操作数对应的代码的意义
  2. 修改源代码中的vmp解释器,添加AST的对应代码
  3. 运行代码,生成最终代码。

分析具体网站

样品网站:aHR0cHM6Ly90cmVuZGluc2lnaHQub2NlYW5lbmdpbmUuY29tL2FyaXRobWV0aWMtaW5kZXgvYW5hbHlzaXM/a2V5d29yZD0lRTklODAlODYlRTUlOTAlOTEmc291cmNlPW9jZWFuZW5naW5lJmFwcE5hbWU9YXdlbWU=

这个网站要找的是X-Bogus_signature这两个参数的生成,怎么定位的这里不说了,

很容易就可以看到这个函数就是在通过操作码去运行逻辑
如何使用AST还原某音的jsvmp - Honeys_UltraDebug

所以我们要分析下这个函数,看到有算术混淆和一些逗号混淆,不方便调试,可以使用AST写个逻辑去掉 这个很简单,还原效果如下:
如何使用AST还原某音的jsvmp - Honeys_UltraDebug

可以看到,逻辑清晰了很多,但是因为是if else混淆,里面还有一些中间变量,如果调试的话会需要点击多几次才能到目标语句,所以我们可以考虑将这个if else转换为switch语句,这样调试的时候直接一步到位。
如何使用AST还原某音的jsvmp - Honeys_UltraDebug

上图可以看到每次都从操作码中读取两个字符,并且是十六进制的,所以_0x1383c7这个变量的范围就是0-255,这样switch的条件就有了,可以编写代码从0迭代到255,就可以得到每个指令对应的代码了。最后还原结果如下:
如何使用AST还原某音的jsvmp - Honeys_UltraDebug

可以看到逻辑很清晰了,但是有个问题是0-255的case里面有些是重复的,需要删除,可以继续使用AST,在每个case的第一行插入​june.push(case_num)​,如这样:
如何使用AST还原某音的jsvmp - Honeys_UltraDebug

然后映射文件到网站上,运行一次,获取june数组里面的值,保存到代码里,继续编写AST代码,读取case条件值,将不在数组中存在的case值全部删除掉,最后就可以愉快地分析了!

通过调试分析出,该函数的每个参数意义如下:

参数 意义
_0x307ee4 字节码
_0x5b7220 函数起始位置
_0x237dce 函数长度
_0x3f8a47 不知道干啥,不影响分析
_0x43
还有更多的精彩内容,作者设置为付费后可见
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.

相关帖子

回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-20 14:48 , Processed in 0.043761 second(s), 11 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表