声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系公众号【逆不逆】删除。
前言
写的不好,大佬们多担待。
此次目标为在不使用AST的情况下对某书web请求头中的x-s参数进行分析,x-s这个参数的算法经过多轮较大的升级,MD5、DES、AES到现在的RC4。
流程分析
参数定位到方式有很多,XHR断点、Request initiator、Hook JSON、关键词搜索等方式都可以辅助定位到x-s是通过seccore_signv2方法生成的,很多大佬都分享了详细的定位方法,这里就不再叙述了。
我们看一下seccore_signv2方法的返回值 "XYS_" + (0,h.xE)((0,h.lz)(JSON.stringify(l))) ,将l转为json字符串再传给h.lz也就是encodeUtf8,再传给h.xE也就是b64Encode,从而得到x-s的值。
再来看l的组成,其中x3就是我们要重点分析的对象,是由window.mnsv2返回的,传入了三个参数c、d、s,c是通过拼接api+params或者payload得到,d和s是通过h.Pu方法生成,是个md5,感兴趣的小伙伴可以自行分析验证。
我们在调用window.mnsv2的位置打上断点
然后我们进到vmp里面,看return
再进到_0x499f96方法里,看return
再进到_0x285423方法,看到了本文需要重点分析的位置
JSVMP在我们所见到的代码形式中目前主要是两种。一种是这样的if/else if,另一种就是控制流,当然还有三目运算或者嵌套三目。
通常情况下我们会在指令执行完之后打印寄存器中的值,但是这里似乎不好断点,那么就退而求其次,在执行执行前输出寄存器中的值,也就是上一条指令执行之后的值。
在这个位置进行条件断点
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289710.htm
[原创]【JS逆向】某书x-s 4.2.9 mns0301 分析
399 浏览
0 回复
暂无回复,快来抢沙发吧!