url: http://bz.5sing.com/941638.html
step:
1. 查看网页源码,发现mp3链接,无法下载,估计已经配置的防盗链。
2. 使用chrome打开,输入 about:cache,查找到mp3-url的缓存,另存为。
3. 打开播放器,不能播放,用vim打开,发现是http报文明文 (╯#-皿-)╯~~╧═╧
4. 查找到ID3标签(MP3文件的标志头),截取出真正的mp3,还不够,目前是十六进制字符串的表示,我们要把他们换算成二进制存起来。
5. 写了一个python,做字符串处理,提取出纯净的hex-string。
import os
fp = open('123.txt', 'r')
wp = open('secret_base.txt', 'w')
for line in fp:
l = line.split()
#print l
for l_hex in l[1:17]:
wp.write(l_hex)
#print l_hex,
#print ''
#os.system('pause')
6. 然后把文件中的hex-string流转换成纯二进制保存,用python处理二进制不太舒服,换成C++。
#include
#include
#define READ_MAX 1024
unsigned char chartohex(unsigned char * data)
{
unsigned char ret = 0x00;
if (*data < 'a')
ret = ret+(*data - '0');
else
ret = ret+10+(*data - 'a');
ret = ret << 4;
data++;
if (*data < 'a')
ret = ret+(*data - '0');
else
ret = ret+10+(*data - 'a');
return ret;
}
int main()
{
FILE * fpr, * fpw;
fpr = fopen("secret_base.txt", "r");
fpw = fopen("secret_base.mp3", "wb");
unsigned char readbuffer[READ_MAX];
unsigned char writebuffer[READ_MAX/2];
int len, i;
while ( len=fread(readbuffer, sizeof(unsigned char), READ_MAX, fpr) )
{
for (i=0; i
7. ok, 提取出来的音乐在文章开头。