第一次扒,本来想着补环境过,但是发现当前文件的版本号是V 1.0.1.17-fix.01,网上那些补环境教程里说的加密生成的ab值的入口找不到了,想着搞搞纯算。
这里抓评论的接口,从接口启动器跳到文件里面打上日志断点,不断的调整断点跟栈发现整个vmp加密流程依靠着一个大数组,不断的往里进行取值,一番操作后又往里存,包括最后生成的ab值。对这个数组存值的地方,还有那些进行位运算的地方插桩,根据日志也就能基本能还原整个加密流程了。

整个数组生成有几个重要的步骤:
-
第18位。里面实现了一个sm3加密的类,将请求链接的参数拼接上
dhzx后,调用sum方法加密两次,生成一个32位的数组 -
第19位。对请求体拼接
dhzx后加密,同样调用sum方法加密2次。如果没有请求体,只会加密dhzx字符串 -
第20,21位。对ua进行加密,生成字符串和数组,实际写死就好了
-
第26-36位,38-85位。这里主要是根据时间戳和一些数组前面的值经过位运算后生成,里面的76位是取的环境值拼接成的字符串,77位是第76位加密得到的数组,可以写死。
-
第37位。这个值跟了一下好像来自鼠标轨迹,实际中我是写死的。
-
第86位。由随机数和位运算生成,会参与到第87,91位的生成
-
第87位。由第86位和数组前面的一些固定顺序的值通过位运算生成,参与第88位的生成
-
第88位。由三个数组拼接成。第一个是一个50位的数组,取自大数组里面固定位置的值,这个位置可以插桩得到,剩下两个是第82位和第87位
-
第89位。由随机数生成的数组转字符串,参与第93位ab值的生成
-
第90位。由第88位和随机数通过位运算生成。可以根据日志手动还原。
-
第91位。由第86位和第90位拼接后转字符串,和另外一个固定数组循环生成一串乱码。注意那个固定数组中的值在循环中会变,插桩可以看到
-
第92位。由第89和91位拼接生成
-
第93位。也就是ab值,由第92位和另外一个字符串
Dkdpgh2ZmsQB80/MfvV36XI1R45-WUAlEixNLwoqYTOPuzKFjJnry79HbGcaStCe参与生成。控制本地时间戳和随机数的生成,就能得到和浏览器一样的结果了

3528

被折叠的 条评论
为什么被折叠?



