BTTool种子文件修复工具这个工具可以很好的解除百度屏蔽敏感词。有需要的伙伴欢迎下载使用。
自动化的种子文件修改工具。第一点是因为有的种子文件包含的文件实在太多了,每一个文件的文件名都改过去很麻烦,第二点是因为能用电脑解决的重复性劳动我就懒得用手解决。
为了对BT文件有一个直观的印象,我们还是以速度与激情7这个BT文件为例,从图中为各位看官做一下介绍。仔细观察下图,我们发现在图中的节点无非是三种类型,第一种是根节点,第二种是键值对节点(字典也是一个特殊的键值对节点,其键为名字,而值为其所有子节点),第三种列表节点。
简单的BT文件解析器
可以看到bencoding编码中的四种类型都有一个标识头,比如整数类型以'i'开始,string类型以数字开始。利用这一特性,对于每一个类型,我们先尝试读一个字符,并根据读入的字符判断读入的是什么类型,如‘i’为整形,'d'为字典,'l'为列表而剩下的数字则为字符串。
那么接下来的思路就非常清晰了,我们需要四个方法来分别解析数字,字符串,字典和列表。其中数字和字符串类型只用于表示值,而不能作为容器;列表和字典类型都可以作为容器,故还有一个parent参数,用于向父节点添加子节点。
由于到BT文件是树状结构的,这里我们使用递归来实现对BT文件的解析。可以确定的,BT文件一定是以一个字典类型开始的,所以我们先调用AnalysisDictionary方法,并把参数根节点传给它。之后在该方法中通过读入下一个字符来判断是什么类型,并调用相应的方法来解析该类型,而相应的方法又通过相同的方法继续调用另外的方法,如此循环,直到解析完毕,这也正是递归的思想。下边就是我实现的一个简单的BT文件解析器,返回的是一个IBNode类型的根节点。
好不容易解析完了,当然要先把它显示出来看是否正确。这里我们仿照“BEncode Editor”这款工具的界面来显示。简单分析一下,其实就是使用了一个TreeView的控件来显示。由于我们解析出来的节点和TreeView控件的节点正好是一一对应的,所以这里也用一个递归就能实现了。
显示效果就像下面这个样子。已经和上面BT文件修改工具很像了。
至今为止我们都在做重复的工作,模仿已有的工具,那么接下来就是新的内容了。经过我的仔细观察后发现,百度云离线下载检测的关键词主要为
{ "name", "name.utf-8", "path", "path.utf-8", "comment", "comment.utf-8", "publisher", "publisher-url", "publisher-url.utf-8", "publisher.utf-8"}
这些键后面的值。只要我们把这些后面对应的值改为一些不敏感的词,那么就能躲过百度的审查。
为了把刚学的设计模式用上去,我在之前定义IBNode接口的时候预留了一个方法。
140.5M / 09-05
76.4M / 03-25
55M / 06-05
237.9M / 04-13
900.9M / 03-02
96.2M / 07-06
311.2M / 07-06
335M / 07-06
200M / 07-06
413.8M / 07-06
484.7M / 09-27
165.4M / 09-05
353.9M / 06-05
131.8M / 04-13
195.6M / 03-03
45.6M / 09-08
665.2M / 07-06
2.84G / 07-06
93M / 07-06
338.3M / 07-06
1.38G / 07-26
488.3M / 07-16
109.8M / 06-03
142M / 01-08
1.2M / 11-23
548.8M / 04-13
1.6M / 04-13
1.48G / 03-18
646.6M / 03-03
133.7M / 03-03
110.5M / 09-05
33.4M / 09-05
325.8M / 08-12
60M / 04-29
254M / 04-25
659M / 04-23
1M / 12-26
253.4M / 12-08
253M / 12-08
1.19G / 11-16
369M / 09-22
181.5M / 09-22
201.2M / 09-05
488.3M / 07-16
248.9M / 12-08
248.9M / 12-08
100.6M / 03-06
148.9M / 03-06
1.12G / 07-06
1.25G / 07-06
126.7M / 02-04
1.76G / 09-22
1.92G / 04-17
201.5M / 04-13
7.31G / 07-01
94.3M / 07-06
2.48G / 07-06
7.63G / 07-06
1M / 07-06
778.1M / 07-06
561.8M / 07-11
72M / 07-06
548.7M / 07-06
1.00G / 07-06
9.13G / 07-06
126.2M / 07-06
72M / 07-06
105.1M / 07-06
132M / 07-06
132M / 07-06