Skip to content

Instantly share code, notes, and snippets.

@scemama
Created June 8, 2015 16:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save scemama/b9debaed0b76321229a5 to your computer and use it in GitHub Desktop.
Save scemama/b9debaed0b76321229a5 to your computer and use it in GitHub Desktop.
Download file from mega.com.nz
#!/bin/bash
#
# Code found originally here on a post from t0n1 :
# http://hacktracking.blogspot.fr/2013/07/download-mega-files-from-command-line.html
#
url=$1
enc_file=$2.enc
out_file=$2
id=`echo $url | awk -F '!' '{print $2}'`
key=`echo $url | awk -F '!' '{print $3}' | sed -e 's/-/+/g' -e 's/_/\//g' -e 's/,//g'`
b64_hex_key=`echo -n $key | base64 --decode --ignore-garbage 2> /dev/null | xxd -p | tr -d '\n'`
key[0]=$(( 0x${b64_hex_key:00:16} ^ 0x${b64_hex_key:32:16} ))
key[1]=$(( 0x${b64_hex_key:16:16} ^ 0x${b64_hex_key:48:16} ))
key=`printf "%x" ${key[*]}`
iv="${b64_hex_key:32:16}0000000000000000"
new_url=`curl --silent --request POST --data-binary '[{"a":"g","g":1,"p":"'$id'"}]' https://eu.api.mega.co.nz/cs | awk -F '"' '{print $10}'`
curl --output $enc_file $new_url
openssl enc -d -aes-128-ctr -K $key -iv $iv -in $enc_file -out $out_file
rm -f $enc_file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment