Changeset 36055


Ignore:
Timestamp:
Nov 3, 2015, 6:09:48 PM (5 years ago)
Author:
obi
Message:

[tithek] update filenuke

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/plugins/tithek/filenuke.h

    r34094 r36055  
    66        debug(99, "link: %s", link);
    77        int debuglevel = getconfigint("debuglevel", NULL);
    8         char* tmphost = NULL, *error = NULL, *tmppath = NULL, *tmpstr = NULL, *send = NULL, *id = NULL, *fname = NULL, *op = NULL, *hash = NULL, *hashlen = NULL, *ip = NULL;
    9         char* b36code = NULL, *base = NULL, *search = NULL, *post = NULL, *streamlink = NULL, *tmpstr2 = NULL, *tmpstr3 = NULL, *charlist = NULL;
    10 //      char* cmd = NULL;
     8        char* tmplink = NULL, *tmppath = NULL, *tmpstr = NULL, *streamlink = NULL;
    119
    1210        if(link == NULL) return NULL;
    1311
    1412        unlink("/tmp/filenuke1_get");
    15         unlink("/tmp/filenuke2_post");
    16         unlink("/tmp/filenuke3_tmpstr1");
    17         unlink("/tmp/filenuke4_post2");
    18         unlink("/tmp/filenuke5_tmpstr2");
    19         unlink("/tmp/filenuke6_b36code2");
    20         unlink("/tmp/filenuke7_tmpstr_last");
    21         unlink("/tmp/filenuke8_streamlink");
     13        unlink("/tmp/filenuke2_get_jsunpack");
     14        unlink("/tmp/filenuke3_streamlink");
     15
     16/*
     17'GET /f/64Lmmb6 HTTP/1.1\r\nHost: filenuke.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko\r\nConnection: close\r\nAccept-Encoding: gzip\r\n\r\n'
     18'GET /f/64Lmmb6/?code=79b0b13602bba3b0ef7611ea17c149c3 HTTP/1.1\r\nHost: filenuke.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko\r\nCookie: __cfduid=d51466bc1a055427260984443f3433e541446559673\r\nConnection: close\r\nAccept-Encoding: gzip\r\n\r\n'
     19'GET /d3/788e480510b692c80b6cc4bcbc2f541f/v.flv?md5=24XhN1toJK_mou1FNFU8WQ&expires=1446577673&mode=1&frm=flv&dsk=6&id=1709647 HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: 37.252.3.244\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko\r\n\r\n'
     20http://37.252.3.244/d3/788e480510b692c80b6cc4bcbc2f541f/v.flv?md5=24XhN1toJK_mou1FNFU8WQ&expires=1446577673&mode=1&frm=flv&dsk=6&id=1709647|User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko -> video/x-flv
     21http://37.252.3.244/d3/788e480510b692c80b6cc4bcbc2f541f/v.flv?md5=24XhN1toJK_mou1FNFU8WQ&expires=1446577673&mode=1&frm=flv&dsk=6&id=1709647|User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko
     22http://37.252.3.244/d3/788e480510b692c80b6cc4bcbc2f541f/v.flv|User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko
     23*/
    2224
    2325/////////////
    24         char* tmplink = NULL, *pos = NULL, *path = NULL;
    2526
    2627        tmplink = ostrcat(link, NULL, 0, 0);
    2728
    28         debug(99, "tmplink: %s", tmplink);
    29 
    30         char* referer = NULL;
    31 //      htmldecode(referer, tmplink);
    32         referer = htmlencode(tmplink);
    33         referer = string_replace_all("/", "%2F", referer, 1);
    34         debug(99, "referer: %s", referer);
    35        
    36        
    3729        if(ostrstr(link, "/Out/?s=") != NULL)
    3830        {
     
    4032                debug(99, "remove out string: %s", tmplink);
    4133        }
    42        
    4334
    4435        if(tmplink == NULL || ostrncmp("http://", tmplink, 7))
     
    4839        }
    4940
    50         tmphost = string_replace("http://", "", tmplink, 0);
    51         free(tmplink) , tmplink = NULL;
     41        debug(99, "url: %s", tmplink);
     42        tmpstr = gethttps(tmplink, NULL, NULL, NULL, NULL, 1);
     43        titheklog(debuglevel, "/tmp/filenuke1_get", NULL, NULL, NULL, tmpstr); 
    5244
    53         if(tmphost != NULL)
    54                 pos = strchr(tmphost, '/');
    55         if(pos != NULL)
     45        tmppath = string_resub("id=\"go-next\" href=\"", "\"", tmpstr, 0);             
     46        tmplink = ostrcat("http://filenuke.com", tmppath, 0, 0);
     47
     48        if(ostrstr(tmplink, "http://filenuke.com?code=") != NULL)
    5649        {
    57                 pos[0] = '\0';
    58                 path = pos + 1;
     50                tmplink = ostrcat(link, "/", 0, 0);
     51                tmplink = ostrcat(tmplink, tmppath, 0, 0);
     52
    5953        }
    6054
    61         tmppath = ostrcat("/", path, 0, 0);
    62 //      free(path), path = NULL;
     55        debug(99, "tmplink: %s", tmplink);
    6356
    64 /////////////
     57        debug(99, "url: %s", tmplink);
     58        tmpstr = gethttps(tmplink, NULL, NULL, NULL, NULL, 1);
     59        titheklog(debuglevel, "/tmp/filenuke2_get", NULL, NULL, NULL, tmpstr); 
    6560
    66 /*
    67         tmphost = ostrcat("www.", host, 0, 0);
    68         tmppath = ostrcat("/", file, 0, 0);
    69         debug(99, "tmphost: %s", tmphost);
    70         ip = get_ip(tmphost);
    71         debug(99, "ip: %s", ip);
    72         debug(99, "test host only: %s", get_ip(host));
    73         debug(99, "tmppath: %s", tmppath);
    74 */
    75 
    76         send = ostrcat(send, "GET ", 1, 0);
    77         send = ostrcat(send, tmppath, 1, 0);
    78         send = ostrcat(send, " HTTP/1.0", 1, 0);
    79         send = ostrcat(send, "\r\nHost: ", 1, 0);
    80         send = ostrcat(send, tmphost, 1, 0);
    81         send = ostrcat(send, "\r\nUser-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.99 Safari/535.1", 1, 0);
    82         send = ostrcat(send, "\r\nConnection: close", 1, 0);
    83         send = ostrcat(send, "\r\nAccept-Encoding: gzip", 1, 0);       
    84         send = ostrcat(send, "\r\n\r\n", 1, 0);
    85         debug(99, "send: %s", send);
    86 
    87         tmpstr = gethttpreal(tmphost, tmppath, 80, NULL, NULL, NULL, 0, send, NULL, 5000, 1);
    88         free(send), send = NULL;
    89         debug(99, "tmpstr: %s", tmpstr);
    90         titheklog(debuglevel, "/tmp/filenuke1_get", NULL, NULL, NULL, tmpstr);
     61// not needed
     62        tmpstr = jsunpack(tmpstr);
     63        titheklog(debuglevel, "/tmp/filenuke2_get_jsunpack", NULL, NULL, NULL, tmpstr);
    9164
    9265        if(tmpstr == NULL)
     
    9669        }
    9770
    98         if(tmpstr == NULL || ostrstr(tmpstr, "<title>The page is temporarily unavailable</title>") != NULL)
     71        if(ostrstr(tmpstr, "404 Not Found") != NULL)
    9972        {
    100                 error = string_resub("<td align=\"center\" valign=\"middle\">", "</td>", tmpstr, 0);
    101                 string_deltags(error);
    102                 stringreplacechar(error, '|', '\0');
    103                 error = strstrip(error);
    104                 if(error == NULL || strlen(error) == 0)
    105                         error = ostrcat(_("The page is temporarily unavailable"), error, 0, 1);
    106                 textbox(_("Message"), error, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 400, 0, 0);
     73                textbox(_("Message"), _("The video no longer exists") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
    10774                goto end;
    10875        }
    10976
    110         if(ostrstr(tmpstr, "<title>Direct IP access not allowed") != NULL)
     77        if(ostrstr(tmpstr, "Video is processing now.") != NULL)
    11178        {
    112                 error = string_resub("<title>", "</title>", tmpstr, 0);
    113                 string_deltags(error);
    114                 stringreplacechar(error, '|', '\0');
    115                 error = strstrip(error);
    116                 if(error == NULL || strlen(error) == 0)
    117                         error = ostrcat(_("The page is temporarily unavailable"), error, 0, 1);
    118                 textbox(_("Message"), error, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 400, 0, 0);
     79                textbox(_("Message"), _("Video is processing now. Conversion stage...") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
    11980                goto end;
    12081        }
    12182
    122         //get hash from tmpstr
    123         char* pos1 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"fname\" value=");
    124         fname = getxmlentry(pos1, "value=");
    125         debug(99, "fname: %s", fname);
    126 //      if(fname == NULL) goto end;
     83        streamlink = string_resub("var lnk234 = '", "';", tmpstr, 0);           
     84//      streamlink = oregex(".*(http://.*v.flv).*", tmpstr);
    12785
    128         char* pos2 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"id\" value=");
    129         id = getxmlentry(pos2, "value=");
    130         debug(99, "id: %s", id);
    131 //      if(id == NULL) goto end;
     86        if(streamlink != NULL)
     87                streamlink = ostrcat(streamlink, "|User-Agent=libcurl-agent/1.0", 1, 0);
     88//              streamlink = ostrcat(streamlink, "|User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko", 1, 0);
    13289
    133         char* cokkie = string_resub("Set-Cookie: ", ";", tmpstr, 0);
    134 
    135         char* pos3 = ostrstr(tmpstr, "<input type=\"hidden\" name=\"op\" value=");
    136         op = getxmlentry(pos3, "value=");
    137         free(tmpstr); tmpstr = NULL;
    138         debug(99, "op: %s", op);
    139 //      if(op == NULL) goto end;
    140 
    141 
    142 
    143 /*
    144         hash = ostrcat(hash, "id=", 1, 0);     
    145         hash = ostrcat(hash, id, 1, 0);
    146         hash = ostrcat(hash, "&referer=&fname=", 1, 0);
    147         hash = ostrcat(hash, fname, 1, 0);
    148         hash = ostrcat(hash, "&method_free=Free&usr_login=&op=", 1, 0);
    149         hash = ostrcat(hash, op, 1, 0);
    150         debug(99, "hash: %s", hash);
    151 */
    152         hash = ostrcat(hash, "method_free=Free&referer=", 1, 0);
    153         hash = ostrcat(hash, referer, 1, 0);
    154         hash = ostrcat(hash, "&usr_login=&op=download1", 1, 0);
    155         debug(99, "hash: %s", hash);
    156 
    157         hashlen = oitoa(strlen(hash));
    158        
    159         //create send string
    160 //      send = ostrcat(send, "POST /", 1, 0);
    161 //      send = ostrcat(send, id, 1, 0);
    162         send = ostrcat(send, "POST ", 1, 0);
    163         send = ostrcat(send, tmppath, 1, 0);
    164 
    165         send = ostrcat(send, " HTTP/1.0\r\nContent-Length: ", 1, 0);
    166         send = ostrcat(send, hashlen, 1, 0);
    167         send = ostrcat(send, "\r\nAccept-Encoding: gzip", 1, 0);       
    168         send = ostrcat(send, "\r\nHost: ", 1, 0);
    169         send = ostrcat(send, tmphost, 1, 0);
    170         send = ostrcat(send, "\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:30.0) Gecko/20100101 Firefox/30.0", 1, 0);
    171         send = ostrcat(send, "\r\nConnection: close", 1, 0);
    172         send = ostrcat(send, "\r\nReferer: ", 1, 0);
    173         send = ostrcat(send, link, 1, 0);
    174         send = ostrcat(send, "\r\nCookie: ", 1, 0);
    175         send = ostrcat(send, cokkie, 1, 0);
    176         send = ostrcat(send, "\r\nContent-Type: application/x-www-form-urlencoded", 1, 0);
    177         send = ostrcat(send, "\r\n\r\n", 1, 0);
    178         send = ostrcat(send, hash, 1, 0);
    179         debug(99, "send: %s", send);
    180 
    181         free(cokkie), cokkie = NULL;
    182        
    183         post = gethttpreal(tmphost, tmppath, 80, NULL, NULL, NULL, 0, send, NULL, 5000, 0);
    184         free(send), send = NULL;
    185         debug(99, "post: %s", post);
    186         titheklog(debuglevel, "/tmp/filenuke2_post", NULL, NULL, NULL, tmpstr);
    187 
    188         if(post == NULL)
    189         {
    190                 textbox(_("Message"), _("The page is temporarily unavailable") , _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1200, 200, 0, 0);
    191                 goto end;
    192         }
    193 
    194         free(tmpstr),tmpstr = NULL;
    195         tmpstr = string_resub(";return p}('", ");'", post, 0);
    196         debug(99, "tmpstr: %s", tmpstr);
    197         titheklog(debuglevel, "/tmp/filenuke3_tmpstr1", NULL, NULL, NULL, tmpstr);
    198        
    199         post = string_replace_all(tmpstr, "", post, 1);
    200         post = string_replace_all(";return p}(');'", "", post, 1);
    201         debug(99, "post: %s", post);
    202         titheklog(debuglevel, "/tmp/filenuke4_post2", NULL, NULL, NULL, post);
    203 
    204         streamlink = string_resub("var lnk234 = '", "';", post, 0);
    205         if(streamlink != NULL)
    206         {
    207                 streamlink = ostrcat(streamlink, "|User-Agent=Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:30.0) Gecko/20100101 Firefox/30.0", 1, 0);
    208                 free(post), post = NULL;
    209         }
    210         else
    211         {
    212                 free(tmpstr),tmpstr = NULL;
    213                 free(b36code),b36code = NULL;
    214                 tmpstr = string_resub(";return p}('", ");'", post, 0);
    215                 debug(99, "tmpstr: %s", tmpstr);
    216                 titheklog(debuglevel, "/tmp/filenuke5_tmpstr2", NULL, NULL, NULL, tmpstr);
    217        
    218                 b36code = oregex(".*;',[0-9]{2,2},[0-9]{2,2},'(.*)'.split.*", post);
    219                
    220                 b36code = string_replace_all("||", "| |", b36code, 1);
    221                 debug(99, "b36code: %s", b36code);
    222                 titheklog(debuglevel, "/tmp/filenuke6_b36code2", NULL, NULL, NULL, b36code);
    223                
    224                 struct splitstr* ret1 = NULL;
    225                 int count = 0;
    226                 int i = 0;
    227                 ret1 = strsplit(b36code, "|", &count);
    228        
    229                 charlist = ostrcat(charlist, "\"", 1, 0);
    230                 charlist = ostrcat(charlist, "|", 1, 0);
    231                 charlist = ostrcat(charlist, "'", 1, 0);
    232                 charlist = ostrcat(charlist, "|", 1, 0);
    233                 charlist = ostrcat(charlist, ".", 1, 0);
    234                 charlist = ostrcat(charlist, "|", 1, 0);
    235                 charlist = ostrcat(charlist, ";", 1, 0);
    236                 charlist = ostrcat(charlist, "|", 1, 0);
    237                 charlist = ostrcat(charlist, ":", 1, 0);
    238                 charlist = ostrcat(charlist, "|", 1, 0);
    239                 charlist = ostrcat(charlist, "=", 1, 0);
    240                 charlist = ostrcat(charlist, "|", 1, 0);
    241                 charlist = ostrcat(charlist, ",", 1, 0);
    242                 charlist = ostrcat(charlist, "|", 1, 0);
    243                 charlist = ostrcat(charlist, " ", 1, 0);
    244                 charlist = ostrcat(charlist, "|", 1, 0);
    245                 charlist = ostrcat(charlist, "\\", 1, 0);
    246                 charlist = ostrcat(charlist, "|", 1, 0);
    247                 charlist = ostrcat(charlist, "/", 1, 0);
    248                 charlist = ostrcat(charlist, "|", 1, 0);
    249                 charlist = ostrcat(charlist, "(", 1, 0);
    250                 charlist = ostrcat(charlist, "|", 1, 0);
    251                 charlist = ostrcat(charlist, ")", 1, 0);
    252        
    253                 for(i = 0; i < count; i++)
    254                 {
    255                         if(ostrstr((&ret1[i])->part, " ") != NULL)
    256                         {
    257                                 printf("continue\n");
    258                                 continue;
    259                         }
    260                         char* x = oltostr(i, 36);
    261        
    262                         struct splitstr* ret2 = NULL;
    263                         int count2 = 0;
    264                         int i2 = 0;
    265                         tmpstr2 = ostrcat(charlist, NULL, 0, 0);
    266                         ret2 = strsplit(tmpstr2, "|", &count2);
    267                         for(i2 = 0; i2 < count2; i2++)
    268                         {
    269                                 struct splitstr* ret3 = NULL;
    270                                 int count3 = 0;
    271                                 int i3 = 0;
    272                                 tmpstr3 = ostrcat(charlist, NULL, 0, 0);
    273                                 ret3 = strsplit(tmpstr3, "|", &count3);
    274                                 for(i3 = 0; i3 < count3; i3++)
    275                                 {
    276                                         debug(99, "-----------------------------------------------");
    277                                         debug(99, "replace %s%s%s <> %s%s%s",(&ret2[i2])->part, x, (&ret3[i3])->part, (&ret2[i2])->part, (&ret1[i])->part, (&ret3[i3])->part);
    278        
    279                                         base = ostrcat(base, (&ret2[i2])->part, 1, 0);
    280                                         base = ostrcat(base, x, 1, 0);
    281                                         base = ostrcat(base, (&ret3[i3])->part, 1, 0);         
    282                                         search = ostrcat(search, (&ret2[i2])->part, 1, 0);
    283                                         search = ostrcat(search, (&ret1[i])->part, 1, 0);
    284                                         search = ostrcat(search, (&ret3[i3])->part, 1, 0);
    285                                         tmpstr = string_replace_all(base, search, tmpstr, 1);
    286                                         free(base), base = NULL;
    287                                         free(search), search = NULL;
    288                                 }
    289                                 free(ret3), ret3 = NULL;
    290                                 free(tmpstr3), tmpstr3 = NULL;
    291                         }
    292                         free(ret2), ret2 = NULL;
    293                         free(tmpstr2), tmpstr2 = NULL;
    294                         free(x);
    295                 }
    296                 free(ret1), ret1 = NULL;
    297                 free(b36code), b36code = NULL;
    298                 free(post), post = NULL;
    299                 free(charlist), charlist = NULL;
    300        
    301                 titheklog(debuglevel, "/tmp/filenuke7_tmpstr_last", NULL, NULL, NULL, tmpstr);
    302        
    303                 if(streamlink == NULL)
    304                         streamlink = oregex(".*file.*(http:.*video.flv).*image.*", tmpstr);
    305        
    306                 if(streamlink == NULL)
    307                         streamlink = oregex(".*file.*(http:.*video.mp4).*image.*", tmpstr);                             
    308        
    309                 if(streamlink == NULL)
    310                         streamlink = oregex(".*file.*(http:.*video.mkv).*image.*", tmpstr);
    311        
    312                 if(streamlink == NULL)
    313                         streamlink = oregex(".*file.*(http:.*video.avi).*image.*", tmpstr);
    314        
    315                 if(streamlink == NULL)
    316                         streamlink = oregex(".*src=.*(http:.*video.mp4).*\".*", tmpstr);
    317        
    318                 if(streamlink == NULL)
    319                         streamlink = oregex(".*src=.*(http:.*video.mkv).*\".*", tmpstr);
    320        
    321                 if(streamlink == NULL)
    322                         streamlink = oregex(".*src=.*(http:.*video.avi).*\".*", tmpstr);
    323                        
    324                 if(streamlink == NULL)
    325                         streamlink = oregex(".*value=.*(http:.*video.mp4).*\".*", tmpstr);                             
    326        
    327                 if(streamlink == NULL)
    328                         streamlink = oregex(".*value=.*(http:.*video.mkv).*\".*", tmpstr);
    329        
    330                 if(streamlink == NULL)
    331                         streamlink = oregex(".*value=.*(http:.*video.avi).*\".*", tmpstr);                     
    332        
    333                 if(streamlink == NULL)
    334                         streamlink = string_resub("var lnk1 = '", "';", tmpstr, 0);
    335         }
    336 
    337         titheklog(debuglevel, "/tmp/filenuke8_streamlink", NULL, NULL, NULL, streamlink);
     90        titheklog(debuglevel, "/tmp/filenuke3_streamlink", NULL, NULL, NULL, streamlink);
    33891
    33992        free(tmpstr); tmpstr = NULL;
     
    34194end:
    34295
    343         free(error); error = NULL;
    344         free(tmphost); tmphost = NULL;
     96        free(tmpstr); tmpstr = NULL;
    34597        free(tmppath); tmppath = NULL;
    346         free(tmpstr); tmpstr = NULL;
    347         free(send); send = NULL;
    348         free(hash), hash = NULL;
    349         free(hashlen), hashlen = NULL;
    350         free(op), op = NULL;
    351         free(id), id = NULL;
    352         free(fname), fname = NULL;
    353         free(ip); ip = NULL;
     98        free(tmplink); tmplink = NULL;
    35499
    355100        return streamlink;
Note: See TracChangeset for help on using the changeset viewer.