这个月刚开始的时候,guilded drive突然没法用力,原来的guilded链接哪怕换域名也只会提示404(全恼🤔但更离谱的是它的上传api居然完全没换,还是原来那个,所以我月末高强度雷普guilded drive都没有任何异常🤔它可能上个月底某天就变得没法下载,但直到我照常下某个cosplay片子后才发现(悲🤔
对此我做出了114514种猜想,比如它上传之后的链接需要真的在消息里面embed并发出去,它才能作为外链使用🤔但当我终于登上了一个guilded账号,并想办法往它的频道里上传了一张图片并embed进消息发送了出去后,才发现原来guilded drive的链接也和discord drive一样,后面加了一大堆申必玩意🤔
但和discord drive不同的是,我将后面这些申必玩意加到别的guilded drive链接后,它也能正常下载,包括我上传的最早的一批guilded drive链接(确信🤔如果是discord drive的话这样缝是完全不行的🤔
wiebitte
尽管我的迫真实验取得了相当的成功,哼哼魔改了一顿guilded drive脚本后它又能用起来力,但现在它的cdn域名也被墙力,上梯子的体验也好不到哪儿去,所以很长一段时间我既没有下载什么guilded drive也没有上传什么东西🤔我对它的可靠性仍然没法放心🤔
但这段时间我恢复了fkq域名,也许可以用cloudflare workers给guilded drive链接文件或者guilded tube的m3u8里面的分片文件链接补上申必后缀,这样也许它就能接着用起来(确信🤔一个一个一个可行的方案是抓取guilded频道消息,也许它新加的申必后缀可以在消息api的响应里面找到(确信🤔
但当我整到响应后一看,好家伙,它返回的图片链接居然和上传api返回的图片链接格式完全一致,连域名都是amazonams那个,后面也没有加任何东西🤔这差不多意味着旧链接向新链接的转换过程是在本地进行的,所有链接共用一套申必后缀的可能性顿时变得高出了114514倍,而且哪怕不同链接使用不同申必后缀的可能性微存,它生成这种后缀的过程也不会复杂到像discord drive那样只能保存在服务器上🤔
现在问题是我可一点都不懂什么js分析,所以目前我能做的差不多只有打开guilded,从图片链接里发现申必后缀,写入某个鬼位置,然后扔给cloudflare worker每次处理guilded链接时加上🤔下次用时再打开guilded更新申必后缀🤔
话说这狗玩意刷新后里面的参数都不变,别的不说,甚至它的过期时间都不带变的🤔而且对比两个完全不同的文件对应的guilded链接,基本上除了文件名不同外别的东西都一毛一样🤔所以它来自于guilded服务器的某个申必常量的可能性微存?但我观察了它的所有网络交互也没有发现这种常量的存在,所以我只能猜测它十成甚至⑨成将构成这个后缀的各种要素藏到了某个js里,有点像khinsider生成歌曲链接的做法(确信🤔我现在已经能在js里找到cdn域名和最后的一个叫做keypair的get参数这两个常量,别的东西还没找到(悲🤔
当然khinsider我已经能找到关键js语句并管道进nodejs哼哼雷普,但guilded想这么整可就难力(全恼🤔疑似存放后缀生成逻辑的那个js可是足足有21MB那么大,能将np++直接橄榄的那种🤔
但如果我能找到这玩意,并通过在外面加几个引导函数的形式让它吐出我想要的东西,那么我就可以要么在bash里管道进nodejs里输出它,要么在cloudflare workers里,,,那玩意本来就是js,直接eval(确信🤔
thonkque
我接下来将guilded从打开网页到价值完成产生的所有http请求和响应保存成了har,在里面检索申必后缀相关的字段,发现它居然以完整的形式出现在多个叫做x-cdn-token
的请求头里🤔
现在至少它有一个名字力,免得我每次叫它申必后缀🤔但最离谱的地方是,我居然只在请求头里找到这玩意,而非响应头🤔换句话说我可能还是需要在bundle.js里挖掘这玩意🤔
搜出了四条语句,一条是将某个变量赋值为x-cdn-token,一条是从响应里提取该变量,一条是用另外一个函数来生成它,还有一个是给它赋值null🤔这下真给我整不会力🤔