元旦期间舍友迷恋上了QQ空间的一个游戏应用-猜歌王,玩得不亦乐乎。突然有一次,上铺告诉遇到一个人,猜歌都特别快,特别准,很明显用了外挂。
上面是背景。
对于这个游戏我的第一思路是模拟,对声音进行采样,提取特征,然后与歌曲库中歌曲对比,理论上是可行的,比如有一款APP叫做SoundHound……但是游戏辅助必然不是通过这种手段。
换个思路,根据经验,歌曲片段应该需要先缓存到本地,于是考虑拦截HTTP封包,对比歌曲库的地址来获取每首歌的歌名,于是乎,打开了火狐的Web控制台,希望能获得有用的东西。
[15:30:45.941] GET http://app100645222.imgcache.qzoneapp.com/app100645222/mp3/355/7355_4.mp3 [HTTP/1.1 200 OK 440ms]
[15:30:45.943] GET http://app100645222.imgcache.qzoneapp.com/app100645222/mp3/902/1079902_1.mp3 [HTTP/1.1 200 OK 466ms]
[15:30:45.945] GET http://app100645222.imgcache.qzoneapp.com/app100645222/mp3/478/718478_3.mp3 [HTTP/1.1 200 OK 524ms]
[15:30:45.947] GET http://app100645222.imgcache.qzoneapp.com/app100645222/mp3/179/101179_1.mp3 [HTTP/1.1 200 OK 389ms]
[15:30:45.949] GET http://app100645222.imgcache.qzoneapp.com/app100645222/mp3/783/727783_1.mp3 [HTTP/1.1 200 OK 463ms]
看到这样子的记录以后,大概有了眉目,但是仍然存在一个问题,需要采集大量的地址与歌曲名或者歌手的对应信息。无意间一个POST数据引起了我的注意。
请求网址:
http://app100645222.qzone.qzoneapp.com/contest/create.ngi
请求方法:
POST