问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

info hash 码如何下载

发布网友 发布时间:2022-04-29 15:01

我来回答

3个回答

热心网友 时间:2023-10-13 18:12

最近一直在看TCP数据流的重组,看了两三天,写了个程序试了一下,结果让我大失所望。一运行程序我的硬盘空间就开始变小,很明显,不一会儿的功夫,好几G的空间就没了,但是什么也没重组出来。弄得我头昏脑胀,都快失去信心了。
既然这样了,那就暂时放放吧,等有心情了重头再来。接下来无事可做,无意间看见了曾经捕获的一个TCP包中的BT下载时的信息,在一个HTTP请求的数据里面有个经过URL编码的info_hash字段,感觉以后可能会用到这个东西,但是是原始的值。正好,那就研究一下,写个解码程序吧!
经过一番研究,发现这个URL编码跟普通的URL编码还是有区别的。
例如:一个经过URL编码的info_hash如下:
m%88uC%15W%C8%2D%3Bf%DB%BCi%BB%FF%C9%B2J%DD%F4
其原始值为:6D8875431557C82D3B66DBBC69BBFFC9B24ADDF4
经过分析不难发现,凡是%号后面的两位都跟原始值一样,除此之外,其余的值均为其ASCII码的16进制表示,而且只有数字跟字母。这样一来,好像比普通的URL编码要简单的多,呵呵~~
知道了其中的规则,那就开始写代码吧。
在代码中,为了满足在线捕包、在线解码的要求,我就牺牲了一些存储空间,为字母和数字跟它们对应的16进制值都做了一个影射,这样的话就不必再把ASCII码转换为16进制了,效率虽然提高了,但需要更大的存储空间。
在linux下写了C程序,源代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char char0_9[10][2] = {
{'3','0'},{'3','1'},{'3','2'},{'3','3'},{'3','4'},
{'3','5'},{'3','6'},{'3','7'},{'3','8'},{'3','9'}
};
const char charA_Z[26][2] = {
{'4','1'},{'4','2'},{'4','3'},{'4','4'},{'4','5'},
{'4','6'},{'4','7'},{'4','8'},{'4','9'},{'4','A'},
{'4','B'},{'4','C'},{'4','D'},{'4','E'},{'4','F'},
{'5','0'},{'5','1'},{'5','2'},{'5','3'},{'5','4'},
{'5','5'},{'5','6'},{'5','7'},{'5','8'},{'5','9'},{'5','A'}
};
const char chara_z[26][2] = {
{'6','1'},{'6','2'},{'6','3'},{'6','4'},{'6','5'},
{'6','6'},{'6','7'},{'6','8'},{'6','9'},{'6','A'},
{'6','B'},{'6','C'},{'6','D'},{'6','E'},{'6','F'},
{'7','0'},{'7','1'},{'7','2'},{'7','3'},{'7','4'},
{'7','5'},{'7','6'},{'7','7'},{'7','8'},{'7','9'},{'7','A'}
};
void
de_url(char *url)
{
char *UnURL;
char ch;
int i = 0, j = 0;
int index;
int len = strlen(url);
UnURL = (char *)malloc(40*sizeof(char));
if(!UnURL){
printf("UnURL malloc wrong!");
exit(1);
}
memset(UnURL, 0, 40*sizeof(char));
while(i < len){
ch = *(url+i);
if(ch == '%'){
i++;
for(; j < 2; j++){
strncat(UnURL, &(url[i]), 1);
i++;
}
j = 0;
}else if(ch >= 'a' && ch <= 'z'){
index = ch - 'a';
strncat(UnURL, chara_z[index], 2);
i++;
}else if(ch >= 'A' && ch <= 'Z'){
index = ch - 'A';
strncat(UnURL, charA_Z[index] ,2);
i++;
}else if(ch >= '0' && ch <= '9'){
index = ch - '0';
strncat(UnURL, char0_9[index], 2);
i++;
}else
printf("something else!\n");
}
printf("\n%s\n", UnURL);
}
int
main(int argc, char *argv[])
{
char *URL = "%A8%2F%FCYE%7E%F2Trx%0B%D8ZYF%DC%B9%D3v%F5";
de_url(URL);
return 0;
}
在线分析时,只需要把main函数给替换掉,就可以了。
虽然TCP流的重组还没弄出来,但会再接再厉,继续加油!

热心网友 时间:2023-10-13 18:12

http://hi.baidu.com/umu618/item/329e4bf13bde9dc4a835a20e去看看吧,我觉得挺详细的了
如果真的觉得麻烦,又是新手,那就用迅雷新建,在输入下载URL的时候 把hash值接在 magnet:?xt=urn:btih: 后,生成磁力链接 就可以了
望采纳啊~

热心网友 时间:2023-10-13 18:13

复制后,在迅雷新建任务里粘贴上,就可以了。
苹果墙纸你也要,我吐了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么时候功率最大 最小 家电多少功率算高功率 大功率用电器在开启瞬间,需要比正常使用功率大很多的启动电流,这是为什 ... 大功率电器设备为什么不能一下开到最大 有一个节能灯突然坏了,是哪个件坏了? 我不知道是节能灯坏了,还是开关面板坏了,按下开关面板时,节能灯有时... 为什么节能灯老是烧坏 湖州南太湖新区包括龙之梦吗 南太湖新区有哪些地方 南太湖是哪里 只有torrent hash怎么下载bt种子文件呢? 我想下载电影 特证码上面写了一个哈希校验,不知道如何下载 兄弟们 帮帮忙吧 请问莴笋和莴苣有什么区别?谢谢了,大神帮忙啊 知道了HASH码然后怎么下载? 知道hash值如何下载视频文件? 知道哈希值能下载电影吗 青笋是什么?莴苣和莴笋是青笋? 和田玉4d足金价值 足金、千足金、万足金的纯度分别是多少? 14K黄金含金量是多少? 最新的国际篮球比赛规则是什么? 篮球赛制和规则 足金含金量多少 足金,千足金,万足金。含金量个是多少 u6小篮球篮筐高度 4N纯金含金量多少? u6篮筐高度 csgo荣耀实名认证是什么意思 u6篮筐高度是多少 篮球u6比赛年龄是多大 哈希码和磁力衔接有什么区别?哈希码怎么用?? 家里WIFI总是搜得到信号却连不上,经常需要重启才恢复 珠海安佳电子公司专业提供楼宇对讲可视对讲可视门铃门禁系统 hash码 拿什么下载 1997年香港TVB版《天龙八部》原版是56集,内地删减到45集,谁知道删减了哪些部分? 为什么笔记本连家里的wifi每次都要重启路由器? torrent hash怎么用? 天龙八部有几集 电视剧《天龙八部》56集TVB原播版谁有? 现在有那几家做门禁比较好的公司吗?公司想装个好一点的门禁系统。 电驴下载电影时 97版电视剧《天龙八部》56集TVB原播版谁有?注意不是45集内地删减版!!! 珠海力邦智能系统工程有限公司怎么样? 家里的WIFI经常连不上,需要重启路由器才能连接网络。 1997年TVB版天龙八部有多少集 电驴下影视文件,.part.met.bak和.part.met丢失后只有.part,也忘记电影名了,怎么找回视频名字? 我家里的无线网有时自己老断掉,然后就连不上了,必须重启一下路由器 天龙八部电视剧一共几个版本 珠海澜盾信息科技有限公司怎么样? 天龙八部电视剧一共有多少版本?