cqsx
aHR0cHM6Ly9tYi5jY3F0Z2IuY29tL25tYmFuay8jL2ZpbmFuY2U/YWN0aXZlTmFtZT13LXRhYi1sZWZ0
本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
抓包分析
数据包为queryPrdList
getKeyPair大概率是后面加解密要用到的Key,而且大概是个aes算法

加密

加密相关的参数就是body和signData了,reqsn是由第一个getKeyPair返回的
看发包分析出来大概率是个和aes加解密有关的算法,由于响应中写的是aesKey,故直接搜索aesKey,能看到三个地方用到了。

分别打上断点,从前两个的就能看出,第一个doDecryptDynamicTGB是解密,第二个doEncryptDynamicTGB是加密


刷新断在doEncryptDynamicTGB即可

c、u、l分别就是getKeyPair中返回的三个值
body参数
i就是请求参数了主要是由e.data和t.aesKey作为参数来加密
进入doEncryptDynamicTGB可以看到就是一个aes加密再转大写

signData参数
signData是sm2的签名但是调用原生的sm2签名一直没过去,就把这个方法扣下来了
主要就是这个v函数了

折叠一下,就直接把这个function扣下来,缺啥在往上找就行了,传入就进去的p可以看成一个{}空对象,就是webpack的导出那个串起来供下级调用的对象

解密
就是一个原生的AES解密,n参数就是那个aesKey
doDec


发包
发包必须是先发getKeyPair的包再发请求数据包,一个数据包对应一个getKeyPair
数据包的请求头headers的N-D-Encryptno和N-D-Messagenum要对应getKeyPair中的reqsn

浙公网安备 33010602011771号