首页
社区
课程
招聘
[原创]【JS逆向】某书x-s 4.3.1 mns0301 分析
发表于: 3小时前 76

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

3小时前
76

 


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

本来想水一期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位数组


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

收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回