<?php
function gen_random_string( $len , $dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" )
{
$res = "" ;
while ( $len -- ) $res .= $dict [ mt_rand ( 0 , $dict_len - 1 ) ] ; return $res ;
}
function enc_and_obfuscate( $data , $enc_key )
{
$enc_data = mcrypt_encrypt ( MCRYPT_RIJNDAEL_256
, $enc_key , $data , MCRYPT_MODE_ECB
, $iv ) ; $result = mask_enc_key( $result , $enc_key ) ;
}
function enc_and_hash( $data , $enc_key )
{
$enc_key = pack ( "H*" , $enc_key ) ; $encryped_hash = mcrypt_encrypt ( MCRYPT_RIJNDAEL_256
, $enc_key , $data . $sha_hash , MCRYPT_MODE_CBC
, $iv ) ; return $result ;
}
function dec_and_hash( $data , $enc_key )
{
return false ;
}
$enc_key = pack ( "H*" , $enc_key ) ; $result = trim ( mcrypt_decrypt ( MCRYPT_RIJNDAEL_256
, $enc_key , $enc_data , MCRYPT_MODE_CBC
, $iv ) ) ; $sha_hash_from_result = substr ( $result , - 64 ) ; $result = substr ( $result , 0 , - 64 ) ; if ( $sha_hash !== $sha_hash_from_result ) {
return false ;
}
return $result ;
}
function decrypt_reply_data( $data )
{
$count_vars = count ( $vars ) ; $enc_key = "" ;
for ( $i = 1 ; $i < $count_vars ; $i ++ ) {
$enc_key .= substr ( $vars [ $i ] , 0 , 1 ) ; }
$data_length = substr ( $data , 0 , 1 ) ; $data_length .= substr ( $data , - 1 ) ; preg_match_all ( "/[0-9a-zA-Z]{" . $data_length . "}\:./" , $data , $preg_result ) ; $base64_data_parity = strlen ( $base64_data ) % 4 ; if ( $base64_data_parity ) {
$base64_data .= substr ( "====" , $base64_data_parity ) ; }
$decrypted_result = mcrypt_decrypt ( MCRYPT_RIJNDAEL_256
, $enc_key , $enc_data , MCRYPT_MODE_ECB
, $iv ) ; return $decrypted_result ;
}
function validate_result( $data , $check_token , $md5_secret ) {
$data = decrypt_reply_data
( dec_and_hash
( $data , md5 ( "XTREAMCODES_FTW!" ) ) ) ; foreach ( $vars [ 1 ] as $name => $value ) {
$result [ $value ] = $vars [ 2 ] [ $name ] ;
}
exit ( "Invalid License Server Response" ) ; }
if ( empty ( $result [ "md5hash" ] ) ) { return array ( "status" => "Invalid" ) ; }
if ( $result [ "md5hash" ] != md5 ( $md5_secret . $check_token ) ) {
$result [ "status" ] = "Invalid" ;
$result [ "description" ] = "MD5 Checksum Verification Failed" ;
return $result ;
}
if ( $result [ "status" ] == "Active" ) {
$result [ "checkdate" ] = $cur_date ;
$localkey = md5 ( $cur_date . $md5_secret ) . $localkey ; $localkey = strrev ( $localkey ) ; $localkey = $localkey . md5 ( $localkey . $md5_secret ) ; $localkey = wordwrap ( $localkey , 80 , "\n " , true ) ; $result [ "localkey" ] = $localkey ;
return $result ;
}
}
function mask_enc_key( $enc_value , $enc_key )
{
$rand_len = rand ( 70 , 90 ) ;
for ( $i = 0 ; $i < count ( $splitted_value ) ; $i ++ ) { }
foreach ( $splitted_value as $enc_key => $letter ) {
$enc_value = preg_replace ( '/\+/' , gen_random_string
( $rand_len ) . ":" . $letter , $enc_value , 1 ) ; }
return $enc_value ;
}
$md5_secret = "96b90f3b34525c54ff21c0caa1f71d19" ;
if ( $data = decrypt_reply_data
( dec_and_hash
( $v , md5 ( "dAaCZzzzaAsdASDa!##@" ) ) ) ) { if ( isset ( $vars [ 'check_token' ] ) ) { $check_token = $vars [ 'check_token' ] ;
$md5Hash = md5 ( $md5_secret . $check_token ) ; $result = '<status>Active</status>'
. '<registeredname></registeredname>\n'
. '<companyname></companyname>\n'
. '<email></email>\n'
. '<serviceid>1</serviceid>\n'
. '<productid>1</productid>\n'
. '<productname></productname>\n'
. '<regdate>2015-02-15</regdate>\n'
. '<nextduedate>2050-12-15</nextduedate>\n'
. '<billingcycle></billingcycle>\n'
. '<validdomain></validdomain>\n'
. '<validip></validip>\n'
. '<validdirectory></validdirectory>\n'
. '<configoptions>Extra Load Balancer Servers=5' . '</configoptions>\n'
. '<customfields></customfields>\n'
. '<addons>name=CopyRights Removal;nextduedate=0000-00-00;status=Active|name=Detect Reshares with No permissions;nextduedate=2015-04-15;status=Active</addons>\n'
. '<md5hash>' . $md5Hash . '</md5hash>' ;
$result = enc_and_hash
( enc_and_obfuscate
( $result , gen_random_string
( 32 ) ) , md5 ( "XTREAMCODES_FTW!" ) ) ; print $result ;
}
} ;
PD9waHAKCmZ1bmN0aW9uIGdlbl9yYW5kb21fc3RyaW5nKCRsZW4sICRkaWN0ID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IikgCnsKICAgICRkaWN0X2xlbiA9IHN0cmxlbigkZGljdCk7CiAgICAkcmVzID0gIiI7CiAgICB3aGlsZSAoJGxlbi0tKSAgJHJlcyAuPSAkZGljdFttdF9yYW5kKDAsICRkaWN0X2xlbiAtIDEpXTsKICAgIHJldHVybiAkcmVzOwp9CgpmdW5jdGlvbiBlbmNfYW5kX29iZnVzY2F0ZSgkZGF0YSwgJGVuY19rZXkpIAp7CiAgICAkaXZfc2l6ZSA9IG1jcnlwdF9nZXRfaXZfc2l6ZShNQ1JZUFRfUklKTkRBRUxfMjU2LCBNQ1JZUFRfTU9ERV9FQ0IpOwogICAgJGl2ID0gbWNyeXB0X2NyZWF0ZV9pdigkaXZfc2l6ZSwgTUNSWVBUX1JBTkQpOwogICAgJGVuY19kYXRhID0gbWNyeXB0X2VuY3J5cHQoTUNSWVBUX1JJSk5EQUVMXzI1NiwgJGVuY19rZXksICRkYXRhLCBNQ1JZUFRfTU9ERV9FQ0IsICRpdik7CiAgICAkcmVzdWx0ID0gYmFzZTY0X2VuY29kZSgkZW5jX2RhdGEpOwogICAgJHJlc3VsdCA9IHN0cl9yZXBsYWNlKGFycmF5KCIrIiwgIi8iLCAiPSIpLCBhcnJheSgiLSIsICJfIiwgIiIpLCAkcmVzdWx0KTsKICAgICRyZXN1bHQgPSBtYXNrX2VuY19rZXkoJHJlc3VsdCwgJGVuY19rZXkpOwogICAgcmV0dXJuIHRyaW0oJHJlc3VsdCk7Cn0KCgpmdW5jdGlvbiBlbmNfYW5kX2hhc2goJGRhdGEsICRlbmNfa2V5KSAKewogICAgJGRhdGEgPSBzZXJpYWxpemUoJGRhdGEpOwogICAgJGl2ID0gbWNyeXB0X2NyZWF0ZV9pdihtY3J5cHRfZ2V0X2l2X3NpemUoTUNSWVBUX1JJSk5EQUVMXzI1NiwgTUNSWVBUX01PREVfQ0JDKSwgTUNSWVBUX0RFVl9VUkFORE9NKTsKICAgICRlbmNfa2V5ID0gcGFjaygiSCoiLCAkZW5jX2tleSk7CiAgICAkc2hhX2hhc2ggPSBoYXNoX2htYWMoInNoYTI1NiIsICRkYXRhLCBzdWJzdHIoYmluMmhleCgkZW5jX2tleSksIC0zMikpOwogICAgJGVuY3J5cGVkX2hhc2ggPSBtY3J5cHRfZW5jcnlwdChNQ1JZUFRfUklKTkRBRUxfMjU2LCAkZW5jX2tleSwgJGRhdGEgLiAkc2hhX2hhc2gsIE1DUllQVF9NT0RFX0NCQywgJGl2KTsKICAgICRyZXN1bHQgPSBiYXNlNjRfZW5jb2RlKCRlbmNyeXBlZF9oYXNoKSAuICJ8IiAuIGJhc2U2NF9lbmNvZGUoJGl2KTsKICAgIHJldHVybiAkcmVzdWx0Owp9CgpmdW5jdGlvbiBkZWNfYW5kX2hhc2goJGRhdGEsICRlbmNfa2V5KSAKewogICAgJGRhdGEgPSBleHBsb2RlKCJ8IiwgJGRhdGEgLiAifCIpOwogICAgJGVuY19kYXRhPSBiYXNlNjRfZGVjb2RlKCRkYXRhWzBdKTsKICAgICRpdiA9IGJhc2U2NF9kZWNvZGUoJGRhdGFbMV0pOwogICAgaWYgKHN0cmxlbigkaXYpICE9PSBtY3J5cHRfZ2V0X2l2X3NpemUoTUNSWVBUX1JJSk5EQUVMXzI1NiwgTUNSWVBUX01PREVfQ0JDKSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgICRlbmNfa2V5ID0gcGFjaygiSCoiLCAkZW5jX2tleSk7CiAgICAkcmVzdWx0ID0gdHJpbShtY3J5cHRfZGVjcnlwdChNQ1JZUFRfUklKTkRBRUxfMjU2LCAkZW5jX2tleSwgJGVuY19kYXRhLCBNQ1JZUFRfTU9ERV9DQkMsICRpdikpOwogICAgJHNoYV9oYXNoX2Zyb21fcmVzdWx0ID0gc3Vic3RyKCRyZXN1bHQsIC02NCk7CiAgICAkcmVzdWx0ID0gc3Vic3RyKCRyZXN1bHQsIDAsIC02NCk7CiAgICAkc2hhX2hhc2ggPSBoYXNoX2htYWMoInNoYTI1NiIsICRyZXN1bHQsIHN1YnN0cihiaW4yaGV4KCRlbmNfa2V5KSwgLTMyKSk7CiAgICBpZiAoJHNoYV9oYXNoICE9PSAkc2hhX2hhc2hfZnJvbV9yZXN1bHQpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICAkcmVzdWx0ID0gdW5zZXJpYWxpemUoJHJlc3VsdCk7CiAgICByZXR1cm4gJHJlc3VsdDsKfQoKZnVuY3Rpb24gZGVjcnlwdF9yZXBseV9kYXRhKCRkYXRhKSAKewogICAgJHZhcnMgPSBleHBsb2RlKCI6IiwgJGRhdGEpOwogICAgJGNvdW50X3ZhcnMgPSBjb3VudCgkdmFycyk7CiAgICAkZW5jX2tleSA9ICIiOwogICAgZm9yICgkaSA9IDE7ICRpIDwgJGNvdW50X3ZhcnM7JGkrKykgeyAKICAgICAgICAkZW5jX2tleSAuPSBzdWJzdHIoJHZhcnNbJGldLCAwLCAxKTsKICAgIH0KCiAgICAkZGF0YV9sZW5ndGggPSBzdWJzdHIoJGRhdGEsIDAsIDEpOwogICAgJGRhdGFfbGVuZ3RoIC49IHN1YnN0cigkZGF0YSwgLTEpOwogICAgJGRhdGEgPSBzdWJzdHIoJGRhdGEsIDEpOwogICAgJGRhdGEgPSBzdWJzdHIoJGRhdGEsIDAsIC0xKTsKICAgIHByZWdfbWF0Y2hfYWxsKCIvWzAtOWEtekEtWl17Ii4kZGF0YV9sZW5ndGguIn1cOi4vIiwgJGRhdGEsICRwcmVnX3Jlc3VsdCk7CiAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCRwcmVnX3Jlc3VsdFswXSwgYXJyYXkoKSwgJGRhdGEpOwogICAgJGJhc2U2NF9kYXRhID0gc3RyX3JlcGxhY2UoYXJyYXkoIi0iLCAiXyIpLCBhcnJheSgiKyIsICIvIiksICRkYXRhKTsKICAgICRiYXNlNjRfZGF0YV9wYXJpdHkgPSBzdHJsZW4oJGJhc2U2NF9kYXRhKSAlIDQ7CiAgICBpZiAoJGJhc2U2NF9kYXRhX3Bhcml0eSkgeyAKICAgICAgICAkYmFzZTY0X2RhdGEgLj0gc3Vic3RyKCI9PT09IiwgJGJhc2U2NF9kYXRhX3Bhcml0eSk7CiAgICB9CgogICAgJGVuY19kYXRhID0gYmFzZTY0X2RlY29kZSgkYmFzZTY0X2RhdGEpOwogICAgJGl2X3NpemUgPSBtY3J5cHRfZ2V0X2l2X3NpemUoTUNSWVBUX1JJSk5EQUVMXzI1NiwgTUNSWVBUX01PREVfRUNCKTsKICAgICRpdiA9IG1jcnlwdF9jcmVhdGVfaXYoJGl2X3NpemUsIE1DUllQVF9SQU5EKTsKICAgICRkZWNyeXB0ZWRfcmVzdWx0ID0gbWNyeXB0X2RlY3J5cHQoTUNSWVBUX1JJSk5EQUVMXzI1NiwgJGVuY19rZXksICRlbmNfZGF0YSwgTUNSWVBUX01PREVfRUNCLCAkaXYpOwogICAgcmV0dXJuICRkZWNyeXB0ZWRfcmVzdWx0OwoKfQoKCmZ1bmN0aW9uIHZhbGlkYXRlX3Jlc3VsdCgkZGF0YSwkY2hlY2tfdG9rZW4sJG1kNV9zZWNyZXQpIHsKICAgICRjdXJfZGF0ZSA9IGRhdGUoIlltZCIpOwogICAgJGRhdGEgPSBkZWNyeXB0X3JlcGx5X2RhdGEoZGVjX2FuZF9oYXNoKCRkYXRhLCBtZDUoIlhUUkVBTUNPREVTX0ZUVyEiKSkpOwogICAgcHJlZ19tYXRjaF9hbGwoJy88KC4qPyk+KFtePF0rKTxcL1wxPi9pJywgJGRhdGEsICR2YXJzKTsKICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgZm9yZWFjaCAoJHZhcnNbMV0gYXMgJG5hbWUgPT4gJHZhbHVlKSB7CiAgICAgICAgJHJlc3VsdFskdmFsdWVdID0gJHZhcnNbMl1bJG5hbWVdOwogICAgfQogICAgcHJpbnRfcigkZGF0YSk7CgogICAgaWYgKCFpc19hcnJheSgkcmVzdWx0KSkgeyAKICAgICAgICBleGl0KCJJbnZhbGlkIExpY2Vuc2UgU2VydmVyIFJlc3BvbnNlIik7CiAgICB9CgogICAgaWYgKGVtcHR5KCRyZXN1bHRbIm1kNWhhc2giXSkpIHsgCiAgICAgICAgcmV0dXJuIGFycmF5KCJzdGF0dXMiID0+ICJJbnZhbGlkIik7CiAgICB9CgogICAgaWYgKCRyZXN1bHRbIm1kNWhhc2giXSAhPSBtZDUoJG1kNV9zZWNyZXQgLiAkY2hlY2tfdG9rZW4pKSAKICAgIHsKICAgICAgICAkcmVzdWx0WyJzdGF0dXMiXSA9ICJJbnZhbGlkIjsKICAgICAgICAkcmVzdWx0WyJkZXNjcmlwdGlvbiJdID0gIk1ENSBDaGVja3N1bSBWZXJpZmljYXRpb24gRmFpbGVkIjsKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBpZiAoJHJlc3VsdFsic3RhdHVzIl0gPT0gIkFjdGl2ZSIpIHsgCiAgICAgICAgJHJlc3VsdFsiY2hlY2tkYXRlIl0gPSAkY3VyX2RhdGU7CiAgICAgICAgJGxvY2Fsa2V5ID0gc2VyaWFsaXplKCRyZXN1bHQpOwogICAgICAgICRsb2NhbGtleSA9IGJhc2U2NF9lbmNvZGUoJGxvY2Fsa2V5KTsKICAgICAgICAkbG9jYWxrZXkgPSBtZDUoJGN1cl9kYXRlIC4gJG1kNV9zZWNyZXQpIC4gJGxvY2Fsa2V5OwogICAgICAgICRsb2NhbGtleSA9IHN0cnJldigkbG9jYWxrZXkpOwogICAgICAgICRsb2NhbGtleSA9ICRsb2NhbGtleSAuIG1kNSgkbG9jYWxrZXkgLiAkbWQ1X3NlY3JldCk7CiAgICAgICAgJGxvY2Fsa2V5ID0gd29yZHdyYXAoJGxvY2Fsa2V5LCA4MCwgIlxuIiwgdHJ1ZSk7CiAgICAgICAgJHJlc3VsdFsibG9jYWxrZXkiXSA9ICRsb2NhbGtleTsKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KfQoKCmZ1bmN0aW9uIG1hc2tfZW5jX2tleSgkZW5jX3ZhbHVlLCAkZW5jX2tleSkgCnsKICAgICRzcGxpdHRlZF92YWx1ZSA9IHN0cl9zcGxpdCgkZW5jX2tleSk7CiAgICAkcmFuZF9sZW4gPSByYW5kKDcwLCA5MCk7CiAgICAkc3BsaXR0ZWRfcmFuZF9sZW4gPSBzdHJfc3BsaXQoJHJhbmRfbGVuKTsKCiAgICAkZW5jX3ZhbHVlID0gc3Vic3RyX3JlcGxhY2UoJGVuY192YWx1ZSwgJHNwbGl0dGVkX3JhbmRfbGVuWzBdLCAwLCAwKTsKICAgICRlbmNfdmFsdWUgPSBzdWJzdHJfcmVwbGFjZSgkZW5jX3ZhbHVlLCAkc3BsaXR0ZWRfcmFuZF9sZW5bMV0sIHN0cmxlbigkZW5jX3ZhbHVlKSwgMCk7CgogICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJHNwbGl0dGVkX3ZhbHVlKTsgJGkrKykgewogICAgICAgICRlbmNfdmFsdWUgPSBzdWJzdHJfcmVwbGFjZSgkZW5jX3ZhbHVlLCAiKyIsIHJhbmQoMiwgc3RybGVuKCRlbmNfdmFsdWUpIC0gMSksIDApOwogICAgfQogICAgZm9yZWFjaCAoJHNwbGl0dGVkX3ZhbHVlIGFzICRlbmNfa2V5ID0+ICRsZXR0ZXIgKSB7CiAgICAgICAgJGVuY192YWx1ZSA9IHByZWdfcmVwbGFjZSgnL1wrLycsIGdlbl9yYW5kb21fc3RyaW5nKCRyYW5kX2xlbikgLiAiOiIgLiAkbGV0dGVyLCAkZW5jX3ZhbHVlLCAxKTsKICAgIH0KICAgIHJldHVybiAkZW5jX3ZhbHVlOwoKfQoKJG1kNV9zZWNyZXQgPSAiOTZiOTBmM2IzNDUyNWM1NGZmMjFjMGNhYTFmNzFkMTkiOwoKaWYgKCFpc3NldCgkX1BPU1QpIHx8IGVtcHR5KCRfUE9TVCkpIHJldHVybjsKJHYgPSBhcnJheV9zaGlmdCgkX1BPU1QpOwppZiAoJGRhdGEgPSBkZWNyeXB0X3JlcGx5X2RhdGEoZGVjX2FuZF9oYXNoKCR2LG1kNSgiZEFhQ1p6enphQXNkQVNEYSEjI0AiKSkpKSB7CiAgICBwYXJzZV9zdHIoJGRhdGEsJHZhcnMpOwogICAgaWYgKGlzc2V0KCR2YXJzWydjaGVja190b2tlbiddKSkgewogICAgICAgICRjaGVja190b2tlbiA9ICR2YXJzWydjaGVja190b2tlbiddOwogICAgICAgICRtZDVIYXNoID0gbWQ1KCAkbWQ1X3NlY3JldC4gJGNoZWNrX3Rva2VuKTsKICAgICAgICAkcmVzdWx0ID0gJzxzdGF0dXM+QWN0aXZlPC9zdGF0dXM+JwogICAgICAgICAgICAuICc8cmVnaXN0ZXJlZG5hbWU+PC9yZWdpc3RlcmVkbmFtZT5cbicKICAgICAgICAgICAgLiAnPGNvbXBhbnluYW1lPjwvY29tcGFueW5hbWU+XG4nCiAgICAgICAgICAgIC4gJzxlbWFpbD48L2VtYWlsPlxuJwogICAgICAgICAgICAuICc8c2VydmljZWlkPjE8L3NlcnZpY2VpZD5cbicKICAgICAgICAgICAgLiAnPHByb2R1Y3RpZD4xPC9wcm9kdWN0aWQ+XG4nCiAgICAgICAgICAgIC4gJzxwcm9kdWN0bmFtZT48L3Byb2R1Y3RuYW1lPlxuJwogICAgICAgICAgICAuICc8cmVnZGF0ZT4yMDE1LTAyLTE1PC9yZWdkYXRlPlxuJwogICAgICAgICAgICAuICc8bmV4dGR1ZWRhdGU+MjA1MC0xMi0xNTwvbmV4dGR1ZWRhdGU+XG4nCiAgICAgICAgICAgIC4gJzxiaWxsaW5nY3ljbGU+PC9iaWxsaW5nY3ljbGU+XG4nCiAgICAgICAgICAgIC4gJzx2YWxpZGRvbWFpbj48L3ZhbGlkZG9tYWluPlxuJwogICAgICAgICAgICAuICc8dmFsaWRpcD48L3ZhbGlkaXA+XG4nCiAgICAgICAgICAgIC4gJzx2YWxpZGRpcmVjdG9yeT48L3ZhbGlkZGlyZWN0b3J5PlxuJwogICAgICAgICAgICAuICc8Y29uZmlnb3B0aW9ucz5FeHRyYSBMb2FkIEJhbGFuY2VyIFNlcnZlcnM9NScgLiAnPC9jb25maWdvcHRpb25zPlxuJwogICAgICAgICAgICAuICc8Y3VzdG9tZmllbGRzPjwvY3VzdG9tZmllbGRzPlxuJwogICAgICAgICAgICAuICc8YWRkb25zPm5hbWU9Q29weVJpZ2h0cyBSZW1vdmFsO25leHRkdWVkYXRlPTAwMDAtMDAtMDA7c3RhdHVzPUFjdGl2ZXxuYW1lPURldGVjdCBSZXNoYXJlcyB3aXRoIE5vIHBlcm1pc3Npb25zO25leHRkdWVkYXRlPTIwMTUtMDQtMTU7c3RhdHVzPUFjdGl2ZTwvYWRkb25zPlxuJwogICAgICAgICAgICAuICc8bWQ1aGFzaD4nLiRtZDVIYXNoLic8L21kNWhhc2g+JzsKCiAgICAgICAgJHJlc3VsdCA9IGVuY19hbmRfaGFzaChlbmNfYW5kX29iZnVzY2F0ZSgkcmVzdWx0LGdlbl9yYW5kb21fc3RyaW5nKDMyKSksbWQ1KCJYVFJFQU1DT0RFU19GVFchIikpOwogICAgICAgIHByaW50ICRyZXN1bHQ7CiAgICB9Cn07Cg==