吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2231|回复: 19
收起左侧

[Web逆向] 关于JSVMP纯算的一些取巧方式

  [复制链接]
shanjzhu 发表于 2025-11-17 21:04
本帖最后由 shanjzhu 于 2025-11-17 21:07 编辑

注:本文章仅学习交流,侵权请联系删除

JSVMP是个啥就不介绍了。今天我们讲的是比较笼统的JSVMP,即包含控制流

在JSVMP中有几个核心概念
        1:栈,或者寄存器?通常在代码中的表示形式为数组或者其他什么临时变量
        2:指令。在代码中表示形式为数字

控制流,也就是switch

JSVMP是个啥就不介绍了。今天我们讲的是比较笼统的JSVMP,即包含控制流

在JSVMP中有几个核心概念
        1:栈,或者寄存器?保存变量的地方,通常在代码中的表示形式为数组或者其他什么临时变量
        2:指令。代码怎么运行就是靠他,单个指令在代码中表示形式为数字

控制流,也就是switch/case。他是通过指定值跳转到不同分支

注意,重点来了!!!

JSVMP在我们所见到的代码形式中目前主要是两种。一种就是控制流、另一种就是if/else if,当然还有三目运算或者嵌套三目。而从这里就能得到switch和if的控制条件就是指令,所以一种方法就是直接打印所有指令,通过指令反查结果

而另一种就是他的栈或者寄存器了,前面已经说了栈是一个数组或者其他的临时变量
临时变量先不管,我们先来分析数组,在JS中直接打印数组是不可行的,所以我们需要使用JSON.stringify对他进行格式化输出,但是!!!对于一些环境值以及一些特殊对象使用格式化是会报错的,导致无法正常打印出数据,所以你可以找AI要一份JSON避免报错的代码

通常是两种方法搭配使用,以及加上hook

我们先来讲一下最简单的JSVMP怎么纯算
最简单的JSVMP

1

1

像这种只有call或者 apply的vmp是最简单的,我们只需要在他的call或者apply出打上日志断点就能知道他的加密在哪个地方

2

2

接下来就是第二种情况,再进入加密流程前打上输出指令代码
我们在开头打上输出判断条件的值

3

3

然后再在出口打上断点,这里的出口不一定是函数出口,也可以是其他地方

4

4

接下来等他打印就好了。。。。。

5

5

这里我直接找t等于30会在哪个分支,当然你要不想分析也可以直接丢给AI。这里AI给出的结果在这里,我直接打上一个断点刷新

6

6

忘记说了,因为我们不清楚这个t=30会出现多少次,所以我们先将日志保存到本地,或者也可以打其他的判断条件减少日志的输出

7

7

这里我们可以看到t=30出现了九千多次,就在他第9520次打下断点,这里建议再添加一个新的断点或者打阶段性的断点,以保证开发者工具不会崩溃

8

8

到最后我们就可以看到他的结果已经出来了,(其实还并没有完全出来)

9

9

通过以上流程我们就可以看到最终的值是存在与v中,所以这个v就是前面的栈。所以你也可以分阶段的打印这个v,然后分析。当有莫名奇妙出现的数组或者其他值时可以先多打印几次日志看是否固定,如果不是就需要打特定的条件断点去看。


好了,目前的JSVMP都可以通过以上的方式解出来。但是这并不是最难的,最难的反而是找到加密位置,作者本人对于异步并没有什么好的解决方法,所以只能单步跟栈。以及分析所需要的时间是很长的,不过逆向嘛,就是要有耐心
国内另一个嵌套多层switch就需要多打印几个指令

OK,今天的分享就到这里了,如果各位佬还有什么不明白的或者指导意见可以在评论区留言

免费评分

参与人数 7威望 +2 吾爱币 +108 热心值 +7 收起 理由
qqquwed + 1 + 1 用心讨论,共获提升!
allspark + 1 + 1 用心讨论,共获提升!
ioyr5995 + 1 + 1 谢谢@Thanks!
中二 + 3 + 1 我很赞同!
涛之雨 + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xlln + 1 + 1 我很赞同!
buluo533 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

you2012you 发表于 2025-11-18 21:09
值得学习借鉴
pingfan565889 发表于 2025-11-19 08:55
wangbaobao123 发表于 2025-11-19 22:34
Icexzm 发表于 2025-11-19 22:38
方法实用,学到了
yxwhwj 发表于 2025-11-20 14:05
学到了,谢谢楼主
zqqqq 发表于 2025-11-21 08:36
感谢分享 学习了
tcdgy1001 发表于 2025-11-21 09:54
感谢分享 学习了
xiaolinzzz 发表于 2025-11-21 16:59
不错不错
lcl101 发表于 2025-11-27 09:54
感谢,学习到了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-12-12 11:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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