分页: 1 / 1

解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-02 20:55
maonx
在Linux下痛苦的是没有好的下载软件,如果在win下用习惯了迅雷这些的话,有时候还是有点不习惯的,虽然迅雷这些是吸血厉害,但速度还是挺快的

今天在网上看了一篇文章,讲到了迅雷,快车,qq旋风这些专用下载地址的解码和加编码问题,感觉挺简单的就初步写了一个py脚本,用来下载这3种链接

只要运行这个脚本 在它的命令后面加上这三种链接中的其中一种链接地址就行,它就会自动解析和用wget下载. 用法: 脚本名 ‘url’ 代码在最下面

基本测试都能成功,在天空下载测试没有成功,解析出地址后用wget 下载竟然下的只是一个index.html

下面讲的是简单的原理:

迅雷地址和快车地址的加密方式很简单,其实都是用的Base64加密方式,只不过有一点点的小改动而已。

1、迅雷
迅雷链接地址转换原理是在地址的前方和后方加入两个字母AA、ZZ,然后再进行Base64加密,再加上Thunder://这个专用链接标识,从而转换成迅雷的专用地址。

例如:

原链接为:http://www.forece.net/win7.rar

在原地址前面加”AA”,后面加”ZZ” (注:不包括引号),地址变为
AAhttp://www.forece.net/win7.rarZZ

此地址base64编码为
QUFodHRwOi8vd3d3LmZvcmVjZS5uZXQvd2luNy5yYXJaWg==

加入迅雷专链标识,即在上地址前加thunder://,即
thunder://QUFodHRwOi8vd3d3LmZvcmVjZS5uZXQvd2luNy5yYXJaWg==

2、网际快车
网际快车的链接地址转换原理和迅雷的类似,只不过是在地址前后加上[FLASHGET],经过Base64加密,然后在地址前加 flashget://这个快车专用链接标识,最后还需要加一个标识符(&符号),符号任意,我一般就加我的名字(&forece),这样就可以将普通http地址转换成快车的地址了。

例如:

原链接为:http://www.forece.net /win7.rar

在原地址前后都加上”[FLASHGET]“(注:不包括引号),地址变为

[FLASHGET]http://www.forece.net/win7.rar[FLASHGET]

此地址base64编码为

W0ZMQVNIR0VUXWh0dHA6Ly93d3cuZm9yZWNlLm5ldC93aW43LnJhcltGTEFTSEdFVF0=

加上快车专链标识和结尾符号,即在上地址前加flashget://,结尾加&forece,即

flashget://W0ZMQVNIR0VUXWh0dHA6Ly93d3cuZm9yZWNlLm5ldC93aW43LnJhcltGTEFTSEdFVF0=&forece

“& 符号”,符号怎么得出我也不清楚,只是看网上别人这么写的,至今无人报错。

3、QQ旋风
QQ旋风的地址转换相对就简单多了,将原地址直接base64编码加密就可以了,然后加上标识符qqdl://即可。

例如:

原链接为:http://www.forece.net/win7.rar

此地址base64编码为

aHR0cDovL3d3dy5mb3JlY2UubmV0L3dpbjcucmFy

再加上旋风专链标识,在上地址前加qqdl://,即

qqdl://aHR0cDovL3d3dy5mb3JlY2UubmV0L3dpbjcucmFy

这样,普通的http地址就可以轻松的转换成快车,迅雷,旋风的地址了。相反,解密只要将过程反推即可。同样还是利用Base64加密,解密工具。

原理摘自:http://www.forece.net/post/570.htm

代码:

代码: 全选

#!/usr/bin/python
'''
mydown.py
This script is used to convert thunder,flashget and qqdl's
url to http's url .
Then run wget to get it!
'''
import sys,base64,os

def convert(argv):
    if len(argv)==2:
        url=argv[1]
    else :
        print "Input Error!\nUsage: %s 'url' " % (argv[0])
        sys.exit(1)
    # decode the url with base64 , and
    # get a simple url
    if url.startswith('thunder://'):
        url=url[10:]+'\n'
        url=base64.decodestring(url)
        url=url[2:-2]
    elif url.startswith('flashget://'):
        url=url[11:url.find('&')]+'\n'
        url=base64.decodestring(url)
        url=url[10:-10]
    elif url.startswith('qqdl://'):
        url=url[7:]+'\n'
        url=base64.decodestring(url)
    else :
        print '\nIt is not a available url!'
        sys.exit(1)
    return url

def main(argv):
    url=convert(argv)
    # Run wget to get it
    os.system('wget '+url)

if __name__=='__main__':
    main(sys.argv)


Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-02 20:59
tenzu
热烈鼓掌

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-02 21:01
非主流1987
:em04 我素来学习的~不错的文章,不错的脚本~

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-02 21:17
maonx
基本测试都可以用吧,要支持断点的话 要自己改命令 wget那 ,或换一个命令行下载,比如 aria2

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-02 21:19
eexpress
解析的,很早就有。
我不知道哪些网站是这些链接的。

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-02 21:48
maonx
eexpress 写了:解析的,很早就有。
我不知道哪些网站是这些链接的。
最近有时候老碰到要迅雷什么的才能下,没办法唉..

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-02 22:19
ルルティア
解析出来没用,有些基本是死链,你要抓到资源才行

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-02 23:37
maonx
ルルティア 写了:解析出来没用,有些基本是死链,你要抓到资源才行
嗯 ,试过一些,有一小部分是解析出来了,但下载不了,下次要学下怎么抓资源了..

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-25 17:40
百草谷居士
flashget://W0ZMQVNIR0VUXWh0dHA6Ly9iYnMuYnR3dWppLmNvbS9qb2IucGhwP2FjdGlvbj1kb3dubG9hZCZwaWQ9dHBjJnRpZD0yOTE1MTgmYWlkPTE5Njg5OFtGTEFTSEdFVF0=&18859&1277458731077
我获取了一个这样的地址,无法解析。

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-27 19:29
maonx
百草谷居士 写了:flashget://W0ZMQVNIR0VUXWh0dHA6Ly9iYnMuYnR3dWppLmNvbS9qb2IucGhwP2FjdGlvbj1kb3dubG9hZCZwaWQ9dHBjJnRpZD0yOTE1MTgmYWlkPTE5Njg5OFtGTEFTSEdFVF0=&18859&1277458731077
我获取了一个这样的地址,无法解析。
因为我没有很详细写的原因,我有说过一点点,Flashget的最好加上""号,不然的话他地址中的& 会在Bash或shell中当成后台运行符号.

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2010-06-27 20:41
oneleaf
flashget后来的版本加密了emule链接文件的校验码,导致就算破解后也无法正常下载。

Re: 解析迅雷-快车-旋风的PY脚本

发表于 : 2013-06-05 10:36
243750496
貌似很牛逼