abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    dnes 00:33 | Nová verze

    Byla vydána OpenIndiana 2026.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | IT novinky

    Americký výrobce polovodičů onsemi (ON Semiconductor) zrušil plány na rozšíření výroby v rožnovském závodě v Česku za dvě miliardy dolarů (podle aktuálního kurzu zhruba 43,5 mld. Kč). Důvodem je vývoj na trhu.

    Ladislav Hagara | Komentářů: 6
    včera 13:00 | Bezpečnostní upozornění
    Nové vydání zlib opravuje několik problémů při kompresi a dekompresi dat, přetečení bufferů, čtení mimo vyhrazenou paměť, únik neinicializovaných dat. Zvlášť významné jsou chyby v inflateGetDictionary(), inflateSync() a gzwrite(), které mohou způsobit poškození paměti. Vysoká relevance - zlib používá řada systémových i aplikačních komponent.
    vencour | Komentářů: 0
    včera 12:25 | Bezpečnostní upozornění
    Digicert hlásí neoprávněné čtení archivních zákaznických údajů. Došlo k němu po migraci z února 2025, po níž se interní systém, dříve dostupný jen přes VPN, stal přístupným z internetu. Chyba v oprávněních umožnila nově vytvořeným účtům číst archivní záznamy. K přístupu k datům mělo dojít mezi 27. červnem a 2. červencem 2026. DigiCert neoprávněné čtení potvrdil až 19. října 2026. Problém zpočátku vyhodnotil jako tvorbu účtů, ne jako … více »
    vencour | Komentářů: 0
    včera 04:44 | Pozvánky

    O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | IT novinky

    Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.

    vencour | Komentářů: 0
    včera 02:00 | IT novinky

    Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.

    vencour | Komentářů: 0
    6.11. 12:22 | IT novinky

    V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 0
    6.11. 04:55 | Nová verze

    Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.

    Ladislav Hagara | Komentářů: 3
    6.11. 03:22 | Nová verze

    Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 3007 hlasů
     Komentářů: 35, poslední 6.11. 23:27
    Rozcestník

    down-megaupload

    16.12.2008 20:40 | Přečteno: 2597× | Stahovaci skripty

    Mám sice doma rozepsaný blog post pro down-rapid, ale nejsem teď momentálně doma, ale mám teď zrovna čas, tak sem dám stahovací skript na www.megaupload.com. Zrovna jsem s ním tahal a jelo to docela rychle, takže by měl být 100% funkční.

    Pár slov ke skriptíku. Je podobný jako down-rapid, využívá stejný kód pro zobrazení captcha obrázku a čtení kódu z klávesnice, takže to popíšu spíš letmo, nějaké další detaily budou u skriptu down-rapid.

    Skript čte seznam proxy serverů z externího souboru, který sdílí s dalšími skripty. Zkusí stáhnout zadaný odkaz. Pokud stránka obsahuje nějaký text ve smyslu, že má uživatel čekat, protože již vyplýtval časový nebo bytový limit, zkusí to přes jinou proxy. Skript umožnuje ignorovat některé proxy, použít jen zvolené proxy ze seznamu, nebo zadat přímo jednu proxy mimo seznam, umožňuje zadat rychlost stahování.

    Pro psaní captcha kódu z obrázku se používá buď Xdialog (dependence!) v X módu, nebo pomocí "read" v console módu nebo když je vynucené zadávání kódu z konzole. Konzolový mód je vhodný při spouštění skriptu na vzdáleném serveru bez X a Xforwardingu. Captcha kód je case insensitive, takže je možné zadávat kód velkými nebo malými písmeny.

    Captcha obrázek se stáhne do /tmp/ do náhodného adresáře (mktemp -d) a zobrazuje se v X módu pomocí gqview (můžete si opravit na cokoliv jiného) - gqview je spuštěn na pozadí, je zaznamenán PID a po načtení kódu je zabit. Pokud neběží Xka, je obrázek stažen, ale není zobrazen. Jsou tři možnosti, jak zobrazit obrázek:

    Stahování s down-megaupload umí navazovat, takže dejte akorát pozor, když budete stahovat dva různé, ale stejně pojmenované soubory.

    Skript obsahuje jednoduchý javascript parser a interpret. Nejsem si jistý, jestli je ještě potřeba, ale funguje to s ním, tak ho tam nechávám. Byl/je tam potřeba kvůli výpočtu doby čekání před stahováním.

    Snad je to vše. Upozornění na nefungující skript (chyba, změna na www.megaupload.com) zapisujte buď do diskuze nebo pošlete emailem, ale vždy nezapomeňte přidat URL, ať to můžu otestovat. Odkazy, které byly zrušeny na megaupload.com sem nepište - to řešit nebudu (ani nemůžu). Námitky ke skriptu psát můžete, ale měnit to budu jenom z opravdu dobrého důvodu. Skript si můžete stáhnout a měnit jak chcete. Už někdo psal, že takovýhle skripty dává pod BSD nebo public domain. Já mám rád GPL, takže to dávám pod GPL. Pokud se vám to nelíbí, nápad můžete načerpat ze skriptu a pak si napsat vlastní program a vydat pod licencí, jakou budete chtít. Dotazy k funkci kódu psát můžete, pokud to nebudou dotazy odpovězené v nějakém manuálu (alá RTFM), tak rád odpovím a vysvětlím.

    Tak, titulky na Heroes s03e13 jsou hotový, tak jdu čumět. Hezký Vánoce.

    #!/bin/bash
    
    proxiesfile="$HOME/.download-proxies"
    
    if ! [ -e "$proxiesfile" ];then
      echo "Please, create file $proxiesfile"
      exit
    fi
    
    allproxylist="$( awk -F '|' '{print $2;}' "$proxiesfile" | tr '\n' ' ' )"
    sshtunnels="$( awk -F '|' '$1~/^.+$/{print "  " $1,$2;}' "$proxiesfile" )"
    sshtunservers="$( awk -F '|' '$1~/^.+$/{print $1;}' "$proxiesfile" | tr '\n' ' ' )"
    
    agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7"
    
    console=0
    
    if [ $# -gt 0 ];then
    
      i=$#
      while [ $i -gt 0 ];do
        case "$1" in
          -a)
            if [ $# -gt 1 ];then
              id="$[$2+1]"
              proxylist="$proxylist $( echo "$allproxylist" | tr -s '[[:space:]]' '\n' | sed -n "${id}p" )"
              i=$[$i-1]
              shift 2
            else
              echo "value please"
              exit
            fi
          ;;
          -d)
            if [ $# -gt 1 ];then
              id="$[$2+1]"
              if [ -z "$proxylist" ] ;then proxylist="$allproxylist";fi
              proxylist="$( echo "$proxylist" | tr -s '[[:space:]]' '\n' | sed "${id}d" )"
              i=$[$i-1]
              shift 2
            else
              echo "value please"
              exit
            fi
          ;;
          -r)
            if [ $# -gt 1 ];then
              rate="--limit-rate=$2"
              i=$[$i-1]
              shift 2
            else
              echo "value please"
              exit
            fi
          ;;
          -p) 
            if [ $# -gt 1 ];then
              proxylist="$2"
              shift 2
              i=$[$i-1]
            else
              echo "value please"
              exit
            fi
          ;;
          -c)
            console=1
            shift
          ;;
          -x)
            console=0
            shift
          ;;
          *)
            v="$1"
            shift 1
            set "$@" "$v"
          ;;
        esac
        i=$[$i-1]
      done
    
      if [ -z "$proxylist" ] ;then proxylist="$allproxylist";fi
    
      tmpdir="$( mktemp -d )"
      echo "TMPDIR: $tmpdir"
    
      while [ $# -gt 0 ];do
    
        echo "Downloading URL $1"
    
          for proxy in $proxylist ;do
            if [ "$proxy" = "NONE" ];then
              unset http_proxy
            else
              export http_proxy="$proxy"
            fi
    
            echo "HTTP PROXY: $http_proxy"
            wget $rate -U "$agent" -nv -O "$tmpdir"/p1.o --save-cookies="$tmpdir"/p1.c --keep-session-cookies "$1"
            eval "$( perl -e '
    undef $/;
    $a=<STDIN>;
    print sprintf("export captcha=\"http://www.megaupload.com%s\"\n",$captcha) if (($captcha)=($a=~m#<img[^>]*src=["\x27](/capgen\.php[^"\x27]+)["\x27]#i));
    print sprintf("export url=\"%s\"\n",$url)
        if (($t1)=($a=~m/(<form[^>]*id=["\x27]captchafrm["\x27][^>]*>)/i)) and ($t1=~/method=["\x27]post["\x27]/i) and (($url)=($t1=~m/action=["\x27]([^"\x27]+)["\x27]/i));
    while (($t1)=($a=~m/(<input[^>]*type=["\x27]hidden["\x27][^>]*>)/i)) {
      if ((($field)=($a=~m/name=["\x27](d|imagecode|megavar)["\x27]/i)) and (($val)=($a=~m/value=["\x27]([^"\x27]*)["\x27]/i))) { $val=~s/(.)/"%".unpack("H2",$1)/ge; print sprintf("export post_%s=\"%s\"\n",$field,$val) }
      $a=~s/<input[^>]*type=["\x27]hidden["\x27][^>]*>//i
    }' < "$tmpdir"/p1.o )"
    
    echo "captcha: $captcha"
    echo "url: $url"
    echo "post_d: $post_d"
    echo "post_imagecode: $post_imagecode"
    echo "post_megavar: $post_megavar"
    
            if [ -n "$captcha" ] && [ -n "$url" ];then
    
              wget $rate -U "$agent" -nv -O "$tmpdir"/cap.gif --load-cookies="$tmpdir"/p1.c --save-cookies="$tmpdir"/p2.c --keep-session-cookies "$captcha"
              if [ -n "$DISPLAY" ];then gqview "$tmpdir"/cap.gif >/dev/null 2>&1 & pid="$!" ; fi
              code=""
              if [ -n "$DISPLAY" ] && [ $console -eq 0 ];then
                while [ -z "$code" ];do code="$( Xdialog --no-cancel --title 'Megaupload downloader' --screen-center --stdout --inputbox 'Enter the CAPTCHA code' 10 40 )" ; if [ $? -eq 1 ];then code="-";fi;done
              else
                while [ -z "$code" ];do read -p 'Code ["-" for stop]: ' code;done
              fi
              if [ -n "$DISPLAY" ];then kill "$pid" ; fi
              if [ "$code" != "-" ];then
                code="$( echo "$code" | tr 'a-z' 'A-Z' )"
                wget $rate -O "$tmpdir"/p3.o -U "$agent" -nv --load-cookies="$tmpdir"/p2.c --save-cookies="$tmpdir"/p3.c --keep-session-cookies --post-data="d=${post_d}&imagecode=${post_imagecode}&megavar=${post_megavar}&imagestring=$code" "$url"
                eval "$( 
                perl -e '
    use Data::Dumper;
    $Data::Dumper::Indent=1;
    undef $/;
    $a=<STDIN>;
    (($v1)=($a=~/\b([0-9a-z_]+)--\s*;/i)) and (($v2)=($a=~/Please\s+wait[^+]+\+([a-z0-9_]+)\+[^+]+seconds/i)) and ($v1 eq $v2) and (($cek)=($a=~/\b$v1\s*=\s*(\d+)\s*;/i));
    if (($url)=($a=~m,document\.getElementById\("dlbutton"\)\.innerHTML\s*=\s*((?:"[^"]*"|\x27[^\x27]*\x27|[^"\x27;]*)*);,i)) { 
      @str=(["e",$url]);
      do {
        @nstr=();
        $eval=0;
        for ($i=0;$i<scalar(@str);$i++) {
          if ($str[$i][0] eq "e") {
            $eval=1;
            $exp=$str[$i][1];
            while ($exp=~m,(String|Math)\.(fromCharCode|sqrt|abs)\([^()]+\),i) {
              $exp=~s/(String|Math)\.(fromCharCode|sqrt|abs)\(([^()]+)\)/eval_js($1,$2,$3)/ei;
            }
            while (length($exp)>0) {
              if ((($q,$v)=($exp=~m,^\s*(\x27)([^\x27]*)\x27\s*,)) or (($q,$v)=($exp=~m,^\s*(")([^"]*)"\s*,))) {
                push @nstr,["s",$v];
                if ($q eq "\x27") { $exp=~s,^\s*\x27[^\x27]*\x27\s*,,; } elsif ($q eq "\"") {  $exp=~s,^\s*"[^"]*"\s*,,; }
              } elsif ($exp=~m,^\s*\+\s*,) {
                $exp=~s/^\s*\+\s*//;
              } elsif (($v)=($exp=~m/^\s*([a-z0-9_]+)\s*/i)) {
                push @nstr,["v",$v];
                $exp=~s/^\s*(\w+)\s*//i;
              } else {
                print sprintf("Unknown expression: <<%s>>\n",$exp);
                die;
              }
            }
          } elsif ($str[$i][0] eq "s") {
            push @nstr,[$str[$i][0],$str[$i][1]];
          } elsif ($str[$i][0] eq "v") {
            $eval=1;
            if (($val)=($a=~m/var\s+\b$str[$i][1]\b\s*=\s*((?:"[^"]*"|\x27[^\x27]*\x27|[^"\x27;]*)*);/i)) {
              push @nstr,["e",$val];
            }
          }
        }
        @str=@nstr;
      } while ($eval);
      $str="";
      for ($i=0;$i<scalar(@str);$i++) {
        $str.=$str[$i][1] if ($str[$i][0] eq "s");
      }
      if (($url)=($str=~m,<a.*?href=["\x27]([^"\x27]+)["\x27],i) and (($file)=($url=~m,^.*/([^/]+)\s*$,))) {
        print sprintf("export link=\"%s\"\n",$url);
        $file=~s/&#(\d+);/chr($1)/eg;
        print sprintf("export file=\"%s\"\n",$file);
      }
      print sprintf("export delay=\"%s\"\n",$cek) if (length($cek)>0);
    }
    sub eval_js {
      my ($o,$m,$v)=@_;
      my ($r);
      $r=sprintf("\"<nothing done with (%s,%s,%s)>\"",$o,$m,$v);
      if (lc($o) eq "string") {
        if (lc($m) eq "fromcharcode") {
          $r=sprintf("\"%s\"",chr(eval($v)));
        } else {
          $r="\"<unknown method $m for object $o>\"";
        }
      } elsif (lc($o) eq "math") {
        if (lc($m) eq "abs") {
          $r=sprintf("\"%s\"",abs($v));
        } elsif (lc($m) eq "sqrt") {
          $r=sprintf("\"%s\"",sqrt($v));
        } else {
          $r="\"<unknown method $m for object $o>\"";
        }
      } else {
        $r="\"<unknown object $o>\"";
      }
      return($r);
    }
                ' < "$tmpdir"/p3.o )"
                echo "Link: $link"
                echo "File: $file"
                echo "Delay: $delay"
                if [ -n "$delay" ];then for i in `seq $delay -1 1`;do echo -en "waiting $delay seconds [ $i ]     \r";sleep 1;done;echo;fi
                if [ -z "$link" ];then
                  echo "Link '$link' is empty"
                  echo "TMPDIR: $tmpdir"
                  exit 1
                elif  [ -z "$file" ];then
                  echo "Output file '$file' is empty"
                  echo "TMPDIR: $tmpdir"
                  exit 1
                else
                  echo "wget $rate -U '$agent' --load-cookies="$tmpdir"/p3.c -c -O '$file' '$link'"
                  if wget $rate -U "$agent" --load-cookies="$tmpdir"/p3.c -c -O "$file" "$link"; then break;fi
                fi
              else
                echo "TMPDIR: $tmpdir"
                exit 1
              fi
            elif grep -Ei 'All[[:space:]]+download[[:space:]]+slots[[:space:]]+assigned[[:space:]]+to[[:space:]]+your[[:space:]]+country[[:space:]]+\([^)]+\)[[:space:]]+are[[:space:]]+currently[[:space:]]+in[[:space:]]+use[[:space:]]*\.[[:space:]]*Please[[:space:]]+try[[:space:]]+again[[:space:]]+in[[:space:]]+a[[:space:]]+few[[:space:]]+hours' "$tmpdir"/p1.o;then
              echo "Trying next proxy"
            else
              echo "Unknown error"
              echo "TMPDIR: $tmpdir"
              exit 1
            fi
    
          done
    
        shift
      done
    
      rm -rf "$tmpdir"
    
    
    else
      cat <<EndOfInfo
    
    ssh tunnels:
    $sshtunnels
    
    proxy list:
    $( echo "$allproxylist" | tr -s '[[:space:]]' '\n' | nl -v0 -w4 -s' -- ' )
    
    $sshtunservers
    
    Usage: $0 [ -a proxynum ] [ -d proxynum ] [ -r rate-limit ] [ -p proxyurl ] [ { -c | -x } ] URL ...
    -a proxynum
        add proxy at line proxynum
    -d proxynum
        delete proxy at line proxynum in ACTUAL proxy list
    -r rate-limit
        limit wget download rate
    -p proxyurl
        insert proxy specified by proxyurl
    -c
        use console to enter captcha code
    -x
        use X dialog to enter captcha code (this is default)
    URL
        URL to download
    EndOfInfo
    fi
    
           

    Hodnocení: 100 %

            špatné • dobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    16.12.2008 21:34 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: down-megaupload
    Moj skript pre rapidshare pouzival (ked este bolo CAPTCHA) cacaview. Pri mensom fonte na terminali alebo po zvacsani obrazku (cacaview vie zoomovat) sa to dalo slusne precitat a potom cez read zadat.
    If you hold a Unix shell up to your ear, you can you hear the C.
    16.12.2008 21:44 RoboShim | skóre: 13 | blog: RoboShim
    Rozbalit Rozbalit vše Re: down-megaupload

    Hehe, když mi Pev psal o přidání captcha na uloz.to, tak jsem mu aalib navrhoval jako šílenou myšlenku na zobrazování captcha:-) A vida, nebyl jsem jedinej a dokonce je vidět, že to tak šílenej nápad není:-) Akorát jsem mu psal o aalib a bblib, ale samozřejmě místo bblib jsem měl na mysli libcaca. No, takže zobrazování captcha v ASCII-art by šlo:-)

    17.12.2008 18:53 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: down-megaupload
    Ak je nainštalované NetPBM dá sa použiť aj giftopnm captcha.gif | ppmtoterm

    Inak celkom zaujímavý (a funkčný) je aj tento javascript: Megaupload auto-fill captcha
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.