Abema.tv dash license key final

 <?php

// https://abema.tv/video/episode/90-1222_s1_p2

$license = '{

    "keys": [

        {

            "kty": "oct",

            "k": "DcQj6t1NsGzp5cvCTVePQkDAiM7JG2PP3im8iQmGpf24.MsJLphYekRoUBxL2vVmLaa5.4cd9f88c1b929d0a7d5c3c9c3731eb9d",

            "kid": "cBGTQj_kRk2Ulhin7ubgAQ"

        }

    ],

    "type": "temporary"

}';


$license = json_Decode($license);


$kenc  = explode(".",$license->keys[0]->k);

$kenc1 = $kenc[0];

$kenc2 = substr($kenc[1],0,-1);

$kiv   = pack("H*",$kenc[2]);


$kid = $license->keys[0]->kid;


$deviceid = "AF6qx1eHXU3RZZ";

function bcdechex($dec) {

$hex = "";

do {    

$last = bcmod($dec, 16);

$hex = dechex($last).$hex;

$dec = bcdiv(bcsub($dec, $last), 16);

} while($dec>0);

return $hex;

}


function b58decode($k) 

{

$alphabet= "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";

for ($i=0;$i<strlen($k);$i++)

$res = @bcadd($res,bcmul(strpos($alphabet,$k[$i]),bcpow(58, (strlen($k) - 1 - $i))));


return pack("H*",bcdechex($res));

}


function rc4($r,$n)

{

for ($i = 0; $i < 256; $i++)

$t[$i] = $i;

$o = $u = 0;

for ($i = 0; $i < 256; ++$i)

{

$o = ($o + $t[$i]    +     $r[($i % sizeof($r))]) % 256;

$u = $t[$i];

$t[$i] = $t[$o];

$t[$o] = $u;

}

$i = $o = 0;

for ($s = [], $a = 0; $a < sizeof($n); $a++)

{

$o = ($o + $t[($i = ($i + 1) % 256)]) % 256;

$u = $t[$i];

$t[$i] = $t[$o];

$t[$o] = $u;

$s[$a] = $n[$a] ^ $t[($t[$i] + $t[$o]) % 256];

}

return $s;

}

$r = [44, 128, 188, 10, 35, 20];


$kr = [

[200, 196, 157, 49, 219, 232, 69, 76, 83, 241, 90, 229, 150, 242, 92, 15, 84, 148, 229, 112, 54, 1, 119, 2, 169, 57, 211, 105, 136, 202, 103, 168], 

[234, 169, 154, 104, 251, 227, 123, 14, 69, 153, 122, 248, 216, 214, 90, 81, 11, 135, 195, 113, 29, 23, 116, 2, 161, 38, 253, 115, 142, 200, 42, 189], 

[200, 165, 201, 110, 242, 224, 40, 65, 59, 242, 81, 195, 162, 188, 101, 3, 79, 254, 234, 10, 16, 95, 72, 35, 164, 67, 164, 71, 240, 227, 121, 199], 

[245, 130, 172, 48, 216, 131, 115, 127, 66, 236, 28, 185, 136, 252, 90, 79, 119, 243, 179, 12, 72, 39, 98, 61, 137, 71, 249, 115, 214, 177, 21, 172], 

[89, 223, 151, 248, 170, 122, 131, 80, 144, 118, 56, 163, 241, 252, 134, 140, 142, 29, 185, 213, 230, 84, 127, 54, 179, 36, 10, 155, 207, 175, 138, 50], 

[14, 100, 3, 93, 159, 22, 163, 57, 95, 210, 206, 203, 142, 255, 17, 137, 104]];


$a = pack("C*",...rc4($r,$kr[4]));


$c = hash_hmac("sha256", $kid.$deviceid, $a, true);

$f = hash_hmac("sha256", $deviceid, $c, true);

$d = hash_hmac("sha256", $kid, $c, true);


$w = rc4(rc4($r,$kr[5]),array_values(unpack("C*",$d))); 


$l = pack("C*",...rc4(rc4($r,$kr[5]),array_values(unpack("C*",$f))));

$v = pack("C*",...rc4($w,array_values(unpack("C*",b58decode($kenc2)))));


$keyblow  = openssl_decrypt($v,"bf-ecb",$l,OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING);


$keyfinal = openssl_decrypt(b58decode($kenc1),"aes-128-cbc",$keyblow,OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING,$kiv);


$keyfinal = bin2hex((base64_decode(str_replace("-","+",$keyfinal)))); 

Comentarios

Entradas populares de este blog