开始
声明
友情提示:本文章仅供学习交流,请勿用于非法用途!如果侵犯贵司请及时联系删除
今日主角:
aHR0cHM6Ly93d3cuaWNvdXJzZTE2My5vcmcv前一段有兄弟说
ED下载器突然闪退,一开始我以为是没操作好,cookie的问题,后来发现不是,当时测试一下,猜测可能是官方接口变了,所以昨天抽空看了一下,发现确实是接口的问题。寻寻觅觅
因为软件是使用go+wails写的,所以先
wails dev一下,然后下载点视频与资料试一下,发现资料没问题,视频有问题,那就看报错的堆栈信息,但是给的信息不多,只能定位一个范围,然后因为我使用的是https://github.com/imroc/req库,就是使用其EnableDumpAll函数进行调试打印,定位到出现问题的接口,接下来就是看看官方的接口变化了什么了。经过抓包,发现是官方接口升级了,变成
v2了。并且多了几个参数。(另外说一下这里抓包用狐火浏览器,可以方便的过debugger)接口:
aHR0cHM6Ly93d3cuaWNvdXJzZTE2My5vcmcvd2ViL2ovcmVzb3VyY2VScGNCZWFuLmdldFJlc291cmNlVG9rZW5WMi5ycGM=下面红框就是新加参数,分别是
bizType,sign,timestamp。熟悉逆向的,可以一眼看出sign应该是md5加密,timestamp就是时间戳,至于bizType是在上面接口可以看到,这里是视频,写死就可以了,就写成1就可以。
首先就是定位加密,这里我使用xhr断点,然后追栈。

下面是定位到加密的位置。

加密代码查看并打上断点:

可以看到最后返回的代码如下:
return CryptoJS[b('0x129', 'zaM8')](m) [b('0x7', 'NrU&')]()那
b('0x129', 'zaM8')与b('0x7', 'NrU&')都是什么呢,我们控制台打印一下。,可以发现就是一下md5加密,接下来要看m的构成。
经过分析
m=bizId+bizType+13位时间戳+88+contentType+xxxx关键字(固定)+通过cookie获取的id。为了防止这里的md5是被魔改的(一般不会),我就进行对比一下本地加密,发现一样。

END
好了,本期到此结束🔚,我们下期再见。
- 作者:esword
- 链接:https://blog.esword.cn//article/bad633f5-0dc2-4c2b-bb51-befefa0ca3f6
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。




