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 17:22 | Nová verze

    Byl vydán Linux Mint 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | IT novinky

    Čínská společnost Tencent uvolnila svůj AI model HunyuanWorld-Voyager pro generování videí 3D světů z jednoho obrázku a určené trajektorie kamery. Licence ale nedovoluje jeho používání na území Evropské unie, Spojeného království a Jižní Koreje.

    Ladislav Hagara | Komentářů: 1
    dnes 12:11 | Komunita

    Blender Studio se spojilo s kapelou OK Go a výsledkem je videoklip k písni Impulse Purchase. Stejně jako samotný 3D software Blender je i ve videoklipu použitý animovaný chlápek open source. Kdokoli si jej může stáhnout a upravovat.

    Ladislav Hagara | Komentářů: 0
    dnes 01:33 | Komunita

    Zig Software Foundation stojící za programovacím jazykem Zig publikovala finanční zprávu za rok 2024. Současně s prosbou o finanční příspěvek.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Nová verze

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za srpen (YouTube). Vypíchnuta je podpora Tabulek Google, implementace Gamepad API a Cookie Store API nebo také podpora WebGL na Linuxu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Komunita

    openSUSE Leap 16, včetně Leap Micra 6.2+, nově nabízí 24 měsíců podpory pro každé vydání. To je dva roky aktualizací a stability, což z něj činí nejdéle podporovanou komunitní distribuci vůbec. Leap se tak stává ideální platformou pro všechny, kdo hledají moderní, stabilní a dlouhodobě podporovanou komunitní Linux distribuci.

    lkocman | Komentářů: 0
    včera 16:33 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal dne 3. 9. 2025 VAROVÁNÍ před hrozbou v oblasti kybernetické bezpečnosti spočívající v předávání systémových a uživatelských dat do Čínské lidové republiky a ve vzdálené správě technických aktiv vykonávané z území Čínské lidové republiky. Varováním se musí zabývat povinné osoby podle zákona o kybernetické bezpečnosti.

    Ladislav Hagara | Komentářů: 27
    včera 11:55 | IT novinky

    Americká internetová společnost Google nemusí prodat svůj prohlížeč Chrome ani operační systém Android. Rozhodl o tom soud ve Washingtonu, který tak zamítl požadavek amerického ministerstva spravedlnosti. Soud ale firmě nařídil sdílet data s jinými podniky v zájmu posílení konkurence v oblasti internetového vyhledávání. Zároveň Googlu zakázal uzavírat dohody s výrobci mobilních a dalších zařízení, které by znemožňovaly

    … více »
    Ladislav Hagara | Komentářů: 3
    včera 11:33 | Humor

    Prvního září ozbrojení policisté zatkli na na londýnském letišti Heathrow scénáristu a režiséra Grahama Linehana, známého především komediálními seriály Ajťáci, Otec Ted nebo Black Books. Během výslechu měl 57letý Graham nebezpečně zvýšený krevní tlak až na samou hranici mrtvice a proto byl z policejní stanice převezen do nemocnice. Důvodem zatčení bylo údajné podněcování násilí v jeho 'vtipných' příspěvcích na sociální síti

    … více »
    Gréta | Komentářů: 104
    včera 10:22 | Pozvánky

    Studentská dílna Macgyver zve na další Virtuální Bastlírnu - pravidelné online setkání všech, kdo mají blízko k bastlení, elektronice, IT, vědě a technice. Letní prázdniny jsou za námi a je čas probrat novinky, které se přes srpen nahromadily. Tentokrát jich je více než 50! Těšit se můžete mimo jiné na:

    Hardware – Bus Pirate na ESP32, reverse engineering Raspberry Pi, pseudo-ZX-80 na RISC-V, PicoCalc, organizéry na nářadí z pěny nebo … více »
    bkralik | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (82%)
     (8%)
     (2%)
     (3%)
     (4%)
     (1%)
    Celkem 141 hlasů
     Komentářů: 11, poslední dnes 16:12
    Rozcestník

    down-megaupload

    16.12.2008 20:40 | Přečteno: 2362× | 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.