破解fs2you连接失败

今晚志伟突然说,他知道了为什么他的Windows 7有时右键会弹出了一个错误框了,是因为一个叫fs2you的专用下载工具惹的祸,可能这个东西并不支持Windows 7,然后我说,为什么一定要用这个东西下载!破解它就是了嘛,我信誓旦旦地说,连接地址一定是用base64编码的,因为根据我的经验,无论快车,迅雷,旋风的专用链都是用base64编码的,他说,那你就试试看啊!

哼,打开熟悉的eclipse之后就立即开始破解,简单的几行代码之后

 import sun.misc.BASE64Decoder;
  
 public class Fs2you {
  // 将 s 进行 BASE64 编码
  public static String getBASE64(String s) {
   if (s == null)
    return null;
   return (new sun.misc.BASE64Encoder()).encode(s.getBytes());
  }
 
  // 将 BASE64 编码的字符串 s 进行解码
  public static String getFromBASE64(String s) {
   if (s == null)
    return null;
   BASE64Decoder decoder = new BASE64Decoder();
   try {
    byte[] b = decoder.decodeBuffer(s);
    return new String(b);
   } catch (Exception e) {
    return null;
   }
  }
 }

之后做了一个测试:

原地址:

fs2you://Y2FjaGVmaWxlMTEucmF5ZmlsZS5jb20vemgtY24vZG93bmxvYWQvYmY4NGRhZjY5MzQ2ZGE2NDdmOWE1YzE0MzU1N2Q4OWYvMiUyMC0lRTYlOUMlQUElRTYlOUQlQTUlRTMlODElQjglRTMlODElQUUlRTYlODklODklMjAlRUYlQkQlOUUlRTMlODElODIlRTMlODElQUUlRTUlQTQlOEYlRTMlODElQUUlRTYlOTclQTUlRTMlODElOEIlRTMlODIlODklRUYlQkQlOUUlN0UlMjhPcmlnaW5hbCUyMEthcmFva2UlMjkubXAzfDQyNjgxNjU=

真实地址:

首先将原地址头”fs2you://”去掉,然后用程序解码,得到不带”http://”的后半段真实地址,显然,感觉十分良好,初步成功了,然后我打开旋风2尝试下载。结果十分沮丧,很快就”叮”的一声,下完了,得到长度为134B的文件,显然不是要下载的文件,阶段性失败。

不过在这个时候,脑里突然闪出了一件事,前天某咪说在博济里面下载东西要设置迅雷的,好采当时做了一下实训,设置过程还有印象,于是我尝试在旋风里面做同样的设置,我很兴奋,以为网管们就这么几招,我再次尝试,但是!!没用的旋风还是很快的叮了一声,再次得到134B的无用文件,又失败了。

我以为这个134B的文件可能有用,不过它的后缀依然是.mp3,我将它改成了.html结尾,再次打开,浏览器立即跳转到fs2you的首页,我再将它改成.txt结尾,一看,原来是很简单的<meta>关于refresh的代码,

<HTML><HEAD><meta http-equiv=”Refresh” content=”1;url=http://www.rayfile.com/files/e4ad4a525e1e5e43f430b10764d00635/1/”></HEAD></HTML>

没任何作用,至此,我很肯定是服务器检测到我的下载软件有问题,或者说不是用它专用的下载器下载,然后就扔了这个垃圾文件给我。

接着,我开了自己编的数据包截取器,得到如下数据:

1253545391:305316 /192.168.1.103->/218.75.151.4 protocol(6) priority(0) hop(128) offset(0) ident(29838) TCP 53124 > 80 seq(2487998415) win(8192) S

1253545391:306676 /192.168.1.103->/124.115.0.182 protocol(6) priority(0) hop(128) offset(0) ident(29839) TCP 53123 > 443 seq(3957074316) win(8192) S

1253545391:400766 /218.75.151.4->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(0) TCP 80 > 53124 seq(265189548) win(5840) ack 2487998416 S

1253545391:400930 /192.168.1.103->/218.75.151.4 protocol(6) priority(0) hop(128) offset(0) ident(29842) TCP 53124 > 80 seq(2487998416) win(16560) ack 265189549

1253545391:411322 /192.168.1.103->/218.75.151.4 protocol(6) priority(0) hop(128) offset(0) ident(29843) TCP 53124 > 80 seq(2487998416) win(16560) ack 265189549 P

1253545391:416760 /124.115.0.182->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(0) TCP 443 > 53123 seq(1757360990) win(5840) ack 3957074317 S

1253545391:416907 /192.168.1.103->/124.115.0.182 protocol(6) priority(0) hop(128) offset(0) ident(29844) TCP 53123 > 443 seq(3957074317) win(16560) ack 1757360991

1253545391:423941 /192.168.1.103->/124.115.0.182 protocol(6) priority(0) hop(128) offset(0) ident(29845) TCP 53123 > 443 seq(3957074317) win(16560) ack 1757360991 P

1253545391:482756 /218.75.151.4->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(27748) TCP 80 > 53124 seq(265189549) win(27) ack 2487998949

1253545391:502806 /124.115.0.182->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(28817) TCP 443 > 53123 seq(1757360991) win(1728) ack 3957074693

1253545391:508741 /124.115.0.182->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(28818) TCP 443 > 53123 seq(1757360991) win(1728) ack 3957074693 P

1253545391:524465 /192.168.1.103->/124.115.0.182 protocol(6) priority(0) hop(128) offset(0) ident(29848) TCP 53123 > 443 seq(3957074693) win(16526) ack 1757361125 F

1253545391:644862 /218.75.151.4->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(27749) TCP 80 > 53124 seq(265189549) win(27) ack 2487998949 P

1253545391:646798 /218.75.151.4->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(27750) TCP 80 > 53124 seq(265189702) win(27) ack 2487998949 F

1253545391:646893 /192.168.1.103->/218.75.151.4 protocol(6) priority(0) hop(128) offset(0) ident(29850) TCP 53124 > 80 seq(2487998949) win(16521) ack 265189703

1253545391:656606 /192.168.1.103->/218.75.151.4 protocol(6) priority(0) hop(128) offset(0) ident(29851) TCP 53124 > 80 seq(2487998949) win(16521) ack 265189703 F

1253545391:664758 /124.115.0.182->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(28819) TCP 443 > 53123 seq(1757361125) win(1728) ack 3957074694 F

1253545391:664864 /192.168.1.103->/124.115.0.182 protocol(6) priority(0) hop(128) offset(0) ident(29852) TCP 53123 > 443 seq(3957074694) win(16526) ack 1757361126

1253545391:716762 /218.75.151.4->/192.168.1.103 protocol(6) priority(0) hop(57) offset(0) ident(0) TCP 80 > 53124 seq(265189703) win(27) ack 2487998950

1253545392:188729 /192.168.1.103->/58.61.164.228 protocol(6) priority(0) hop(128) offset(0) ident(29857) TCP 53126 > 443 seq(2066269166) win(8192) S

1253545392:216758 /58.61.164.228->/192.168.1.103 protocol(6) priority(0) hop(56) offset(0) ident(0) TCP 443 > 53126 seq(2310667683) win(5840) ack 2066269167 S

1253545392:216918 /192.168.1.103->/58.61.164.228 protocol(6) priority(0) hop(128) offset(0) ident(29858) TCP 53126 > 443 seq(2066269167) win(16560) ack 2310667684

1253545392:222867 /192.168.1.103->/58.61.164.228 protocol(6) priority(0) hop(128) offset(0) ident(29859) TCP 53126 > 443 seq(2066269167) win(16560) ack 2310667684 P

1253545392:264769 /58.61.164.228->/192.168.1.103 protocol(6) priority(0) hop(56) offset(0) ident(10874) TCP 443 > 53126 seq(2310667684) win(7672) ack 2066270263

1253545392:264869 /58.61.164.228->/192.168.1.103 protocol(6) priority(0) hop(56) offset(0) ident(10875) TCP 443 > 53126 seq(2310667684) win(7672) ack 2066270263 P

1253545392:280160 /192.168.1.103->/58.61.164.228 protocol(6) priority(0) hop(128) offset(0) ident(29861) TCP 53126 > 443 seq(2066270263) win(16544) ack 2310667746 F

1253545392:306739 /58.61.164.228->/192.168.1.103 protocol(6) priority(0) hop(56) offset(0) ident(10876) TCP 443 > 53126 seq(2310667746) win(7672) ack 2066270264 F

1253545392:306846 /192.168.1.103->/58.61.164.228 protocol(6) priority(0) hop(128) offset(0) ident(29862) TCP 53126 > 443 seq(2066270264) win(16544) ack 2310667747

期间与三个服务器发生通信:

218.75.151.4、124.115.0.182、58.61.164.228

最后与58.61.164.228通信完毕以后就下载完毕了,我猜测大概这134B的文件就是从这个地方扔来的,前面两个应该是fs2you的服务器,过程应该是,经过这两个服务器检测发现非法下载方式以后就转到58.61.164.228让它来给我们扔垃圾。

没计,所有的东西几乎都研究了一遍,什么东西都没有发现,突然想起,志伟开始的时候用fs2you下载,没次下载之前都会比一般下载软件要慢一些才有速度的,我想,大概问题就在这里了,fs2you一定是先发一些验证数据包给服务器,然后服务器验证通过以后才打开闸门放数据,如果直接请求文件数据的话,服务器就拦截,然后通知58.61.164.228放垃圾,这样,要解决这个问题,就只有一个办法,把fs2you发送的验证数据包截取下来,写成文件,然后每次下载文件前,先发送这些数据包,然后再立即下载文件,应该就没问题了,不过,如果这样做就像自己写一个仿fs2you的软件,这样就浪费脑力,所以,最终就这样放弃了…