首页
社区
课程
招聘
[原创]U酷视频地址探测器
发表于: 2012-2-26 19:52 19436

[原创]U酷视频地址探测器

2012-2-26 19:52
19436
今天想U酷下几个视频,居然网上的什么视频地址探测软件太恶心了,一堆广告还要什么注册VIP用户什么的,就自己山寨了一个,直接放代码+BIN,测试U酷网可行
void parse_http_hdr(char* http_buf, int size)
{
        char* tmp = http_buf;
        char* url_eof;
        char* url = NULL;
        char* host = NULL;
        char* http_ref = NULL;
        char* target = NULL;
        int len = 0, host_len = 0;

        while (tmp - http_buf <= size - 4 
                && *(_u32*)tmp != 0x0a0d0a0d) {
                /* HTTP GET / HTTP/1.1*/
                if (*(_u32*)tmp == 0x20544547) {
                        url_eof = tmp + 4;
                        url_eof = strstr(url_eof, "\r\n");
                        if (url_eof == NULL)
                                goto free_exit;

                        len = (_u8*)url_eof - (_u8*)tmp - 4 - 9 + 1;
                        url = (char*)malloc(len);
                        memcpy(url, tmp + 4, len);
                        url[len - 1] = 0;
                }

                /* HOST */
                if (url && *(_u32*)tmp == 0x74736f48) {
                        int url_len = len - 1;
                        
                        url_eof = tmp + 4;
                        url_eof = strstr(url_eof, "\r\n");
                        if (url_eof == NULL)
                                goto free_exit;

                        len = (_u8*)url_eof - (_u8*)tmp - 6 + 1;
                        
                        host_len = len + url_len;
                        host = (char*)malloc(host_len);
                        memcpy(host, tmp + 6, len);
                        host[len - 1] = 0;

                        if (url_len > 2)
                                strcat(host, (const char *)url);
                        else
                                host_len = len;
                }

                tmp++;
        }

        http_buf[size - 1] = 0;

        target = host;

        /* 简单处理-过滤后缀名 */
        if (target) {
                len = strlen(target);
                if (target[len - 1] == '/') {
                        target[len - 1] = 0;
                        len--;
                }

                if (strnicmp(target, "http://", 7) == 0) {
                        target += 7;
                        len -= 7;
                }

                if (stricmp(target + len - 4, ".mp4") == 0
                        || stricmp(target + len - 4, ".flv") == 0) {
                        if (!last_url || stricmp(last_url, target)) {
                                if (last_url)
                                        free(last_url);
                                last_url = (char*)malloc(len + 1);
                                
                                strcpy(last_url, target);
                                printf("%s\n", last_url);
                        }
                }
        }

free_exit:
        if (host)
                free(host);
        if (url)
                free(url);
        if (http_ref)
                free(http_ref);
}


原理如下:wireshark抓包的
1、
GET /player/getFlvPath/sid/133025452760916091073_00/st/mp4/fileid/03000801004C9C1EBDFC9701BB9D9DEF57C408-3C7F-06E6-23B5-E0C0AE5F2481?K=e63f5a4af239b0e7282777ee&hd=1&myp=0&ts=146&ypremium=1 HTTP/1.1

Host: f.youku.com

Connection: keep-alive

User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11

Accept: */*

Referer: http://static.youku.com/v1.0.0216/v/swf/player.swf

Accept-Encoding: gzip,deflate,sdch

Accept-Language: en-US,en;q=0.8

Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3

Cookie: YOUKUSESSID=es5ied7akhlord5ih4bd2m0j36; logCookieKey=invalid; PlayListTag=[{"videoid":"52231332","sec":11},{"videoid":"79906459"}]; P_F=1; P_T=1330261727; __ysuid=1329711514134yJ4

HTTP/1.1 302 Found

Expires: -1

Cache-Control: private, max-age=0

Pragma: no-cache

Location: http://119.147.100.20/youku/6972A3E0F273C82344BA4D2B9E/03000801004C9C1EBDFC9701BB9D9DEF57C408-3C7F-06E6-23B5-E0C0AE5F2481.mp4

Content-type: text/html

Content-Length: 0

Connection: close

Date: Sun, 26 Feb 2012 11:08:47 GMT

Server: F_LIGHTY_TJ4

2、
GET /youku/6972A3E0F273C82344BA4D2B9E/03000801004C9C1EBDFC9701BB9D9DEF57C408-3C7F-06E6-23B5-E0C0AE5F2481.mp4 HTTP/1.1

Host: 119.147.100.20

Connection: keep-alive

User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11

Accept: */*

Referer: http://static.youku.com/v1.0.0216/v/swf/player.swf

Accept-Encoding: gzip,deflate,sdch

Accept-Language: en-US,en;q=0.8

Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3

HTTP/1.1 200 OK

Content-Type: video/mp4

Accept-Ranges: bytes

ETag: "3474050810"

Last-Modified: Fri, 24 Sep 2010 03:45:07 GMT

Content-Length: 9209699

Connection: close

Date: Sun, 26 Feb 2012 11:08:48 GMT

Server: YOUKU.DG

....ftypisom....isomavc1
Application.rar

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 6
支持
分享
最新回复 (26)
雪    币: 1644
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享。。
2012-2-27 01:41
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢楼主,支持你
2012-2-27 12:38
0
雪    币: 91
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
不错,学习
2012-2-27 17:16
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
5
其实有一个网站叫做FLVCD...
2012-2-27 18:23
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
6
楼主是不是打算写个浏览器插件把这段代码注入进去呢。。。
看看能不能想办法分析出6972A3E0F273C82344BA4D2B9E的计算方法
2012-2-27 20:49
0
雪    币: 15
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
楼上想法不错,支持下
2012-2-28 09:16
0
雪    币: 107
活跃值: (326)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
哈哈哈..谢谢爆料..我还不知道有这网站呢...
2012-2-28 10:02
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
U酷的可以根据视频的网址的id构造特定的网址,访问它可以拿到JSON数据,再根据JSON数据解析下载地址以及视频的其他信息!
2012-2-28 10:57
0
雪    币: 14983
活跃值: (5285)
能力值: ( LV15,RANK:880 )
在线值:
发帖
回帖
粉丝
10
程序对于分段的视频能全部获取到么?
2012-2-28 12:56
0
雪    币: 6763
活跃值: (2590)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哈哈,看来有人和我是同道中人啊。
2012-2-28 14:08
0
雪    币: 14983
活跃值: (5285)
能力值: ( LV15,RANK:880 )
在线值:
发帖
回帖
粉丝
12
其实有一个工具叫做vidown...
2012-2-28 14:08
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
13
貌似是有专门的工具,但是谢谢楼主的分享。
2012-2-28 14:12
0
雪    币: 7905
活跃值: (3081)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
其实视频我一般都是在临时文件夹找的
2012-2-28 17:58
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
谢谢分享
2012-2-29 13:28
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢分享哈!!
2012-2-29 18:56
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我来了,支持楼主
虽然还是什么都看不懂,但是我在努力学
为了不再疏远大家,我来了
2012-2-29 22:04
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
加了密的视频可以获取地址吗?
2012-3-1 18:16
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
留名 mark ,谢谢楼主分享
2012-3-1 18:51
0
雪    币: 279
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
对于收费的视频可不可以?
2012-3-4 19:56
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
感谢分享!!
2012-3-8 18:57
0
雪    币: 326
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
22
一直使用火狐的 DownloadHelper.可下载各种东东。呼呼。
2012-3-9 17:07
0
雪    币: 826
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
win7 32位,我的电脑上有问题。。
2012-3-9 19:51
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
24
因为要加载一个截获网络数据的驱动,这个驱动又写得比较挫,所以请在xp 32位下测试,不好意思
2012-3-11 10:11
0
雪    币: 267
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
youku会把大的视频文件分成好几个小的视频文件不是吗

现在好多视频网站都这么做
2012-3-12 17:34
0
游客
登录 | 注册 方可回帖
返回
//