MENU

我又被坑了之百度云网盘再次坑爹

August 31, 2013 • 程序

昨天被某货呼叫说VA China下载中心中下载内容点击后出现下载百度云管家客户端的情况。毫无疑问——又坑了。VA China下载中心调用了我VPS上的直连接口进行分流,既然那边坑了,那么肯定使用了相同代码的ANN也坑了。事不宜迟,各种常用开发工具伺候,拿到代码,开工调试。

第一步:访问一个下载页面,分析js变化。结论:dlink中混入了大量百度云管家客户端的下载链接,原匹配无效;但云管家客户端的expire time是10000小时,而真实文件为8小时。

第二步:打印正则表达式匹配变量$matches进行分析。结论:正则截的内容一塌糊涂。

第三步:改代码。
修改正则规则,改为仅匹配URL。参考规则:

((?:http)(?::\\/{2}[\\w]+)(?:[\\/|\\.]?)(?:[^\\s"]*)) 

使用foreach遍历正则匹配结果,strstr搜索'=8h',若成立立刻返回该条匹配URL。

好,这是一个快速的解决方案,但是确实奏效了。试试——嗯,可以。ANN当然也要改,照搬代码commit后,试试——WTF!!!返回空白页?!打开一看,原来是写了个exit;。由于ANN中是以函数形式存在的,直接停止执行了,没执行到View层,当然没东西。好嘛,删掉exit;,再试!还是不行?!罢了罢了,明日再议。

今日和Hans说起此事,信誓旦旦地说代码没有问题,并且发了一份,Hans分析后也说没看出什么问题。这就邪乎了。抱着试试看的心理打开SVN项目代码,看到下载核心部分:WTF!!!return的变量和赋值的变量不是同一个……好嘛,又是粗心惹的祸。改正,commit,测试,正常。

另:需要修改直连代码的朋友,参考上述思路自己修改吧,很简单的。自己动手,丰衣足食。

Tags: php, ann, api
Archives Tip
QR Code for this page
Tipping QR Code