首页
社区
课程
招聘
[原创]【JS逆向】某书x-s 4.3.1 mns0301 分析
发表于: 2026-2-4 09:54 3435

[原创]【JS逆向】某书x-s 4.3.1 mns0301 分析

2026-2-4 09:54
3435

 


本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系公众号【逆不逆】删除。

本来想水一期ks的__NS_hxfalcon,然后看到某书的xs更新到了4.3.1,那就先水一期xs吧。

根据惯例,依旧是在window.mnsv2对应的vmp的for循环的第一个else进行断点
依旧是从后往前看日志,可以看到现在的数组变成了144位,之前4.2.6是124位,4.2.9是135位
144位数组由124位 + 20位组成,而20位的数组由4位 + 16位组成,这个4位数组其实就是 len('a3') + 'a3' + 后面那段数组的长度16。
跟之前一样,这个16位数组是由另一个数组异或124位数组中用到的随机数的第一个字节得到的
然后就是继续往山找这个215开头的16位数组生成的位置。
可以看到一个24位数组,然后是一个_0xfca8c3方法,然后就出现了16位数组,那么大概率这个16位数组就是有_0xfca8c3方法生成的,入参很可能就是这个24位数组
24位数组的来源,跟之前4.2.9一样,时间戳 + md5(api)
那么我们进入_0xfca8c3方法,没错,又是一个vmp,继续根据惯例在这个巨大的for循环里打上断点(ps: 当你的断点没生效时,可能是此时的vmp已经变了,根据日志重新进入新的vmp中)。
我们继续看日志,跟过之前md5的方案的同学应该不陌生,将一个无符号整数变成4个字节,同理可以找到另外3个无符号整数。
继续往上看日志我们可以发现,跟之前的md5方案有很大区别,没看到之前的SV那些64位的数组,而且运算步骤也不是很明确,不过"IV"还是能看到的。

另外build_block也能看到,我们将24字节的输入传入md5的build_block,得到一个6位或者8位数组


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 17
支持
分享
最新回复 (11)
雪    币: 3
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
6666
2026-2-9 22:39
0
雪    币: 14
活跃值: (710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
up
2026-2-13 11:32
0
雪    币: 20
活跃值: (155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
大佬威武!
2026-2-25 19:52
0
雪    币: 27
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
膜拜大佬
2026-3-1 13:16
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
666
2026-3-2 15:47
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
666
2026-3-9 15:22
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
666
2026-3-9 16:24
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
大佬威武!
2026-3-11 14:19
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
666
2天前
0
雪    币: 27
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11

大佬好,其实没有必要ast,xhs的ob混淆有相同的形式,找到stack和栈顶指针,然后拼接并搜索对这个变量进行赋值的位置,观察是否包含运算符,如果包含就进行插桩,不包含就跳过。这样就可以跳过ast还原,直接开始分析日志了,而且有了日志之后也不用和vmp进行纠缠。
不过这个方法的难点在于如何识别apply,我在这一步只能依靠AI,2333
不过如果非得想个办法的话,其实也能解
因为我们观察apply存在于开头的一个很长的字符串数组
然后下面存在一个自执行函数
我们可以剥离出这两个单独执行获取apply所在的真实index
然后转16进制之后到vmp里面进行搜索,搜索格式为解密函数(index),这样就能找到apply的位置了
再往下深究,一般vmp apply处会进行判定,究竟是js自带的函数还是vmp的虚拟函数,这也是一个识别的点位(但是我感觉很难,我识别不出来)


PS:感谢大佬,我一开始分析的时候AST还原了外层ob,然后跟到这儿发现又有一个ob,瞬间不想分析了,得亏看了您的文章,发现不用解混淆也能直接分析,才又有了信心哈哈哈哈,不过归根结底还是我对vmp和ob不熟练

最后于 1天前 被利叶增辉编辑 ,原因:
1天前
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
666
1天前
0
游客
登录 | 注册 方可回帖
返回