Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php eval(gzinflate(base64_decode('7RprT9tK9jP8isE36iRgnEAprciFvRRCN2qACkK1FUWWsSeJL47t..
Decoded Output download
class kernelMBot {
var $_configs;
var $_errors;
var $_lastupdate;
public $commands;
public $localDebugBlock;
public function __construct() {
$this->_errors = array('count' => 0, 'errors' => array());
$this->_configs = array();
$this->localDebugBlock = true;
$this->_lastupdate = 0;
define("KERNEL_VERSION", '22.2');
define("KERNEL_BUILD", '1000');
define("KERNEL_AUTHOR", 'Adams/KlassKai');
define("KERNEL_TEAMSPEAK_MIN_VER", "3.0.0-rc1");
define("KERNEL_TEAMSPEAK_MIN_BUILD", '14468');
define("KERNEL_FULL_DEBUG", false);
define("ERROR_TYPE_FATAL", 1);
define("ERROR_TYPE_CONNECT", 2);
define("ERROR_TYPE_FAIL", 3);
define("ERROR_TYPE_CONFIG", 4);
define("ERROR_NORMAL", 5);
define("KERNEL_STARTUP", time());
$this->checkLicense();
$this->openNewLogFile();
return true;
}
public function getLicenseData() {
if (file_exists('mbot_licensekey.ini')) {
return parse_ini_file('mbot_licensekey.ini');
} else
$this->licenseExit('License file does not exists.');
}
public function getProcessList() {
$license = $this->getLicenseData();
$file = @file_get_contents("/tmp/." . md5('mbotcache'));
return array(
'license' => $license,
'lines' => explode("
",$file)
);
}
public function checkLocale($server_uid) {
//if (!defined("LICENSE_SERVER_UID")) { $this->licenseExit('Server uid is not defined.'); }
//if ($server_uid != LICENSE_SERVER_UID) { $this->licenseExit('Server uid is not valid.'); }
}
public function licenseExit($val = '') {
//print "
!!! License server error [$val], exiting. !!!
";
//exit();
}
//TODO:
public function updateUptime() {
global $botid;
$license = $this->getLicenseData();
if ($this->_lastupdate < time()) {
$ip = @file_get_contents('http://license.nolifers.pl/license-server/getip.php');
$packet = array(
'hash' => $license['service-name'] . '-' . sha1(KERNEL_STARTUP . $license['key']),
'license' => $license,
'start_time' => KERNEL_STARTUP,
'bot_id' => $botid
);
$data = @file_get_contents('http://license.nolifers.pl/license-server/uptime.php?ip=' . $ip . '&packet=' . urlencode(base64_encode(json_encode($packet))));
if ($data == 'kill')
$this->licenseExit('You cant start more instances on this license, else try start m-bot instance in few minutes.');
$this->_lastupdate = time() + 30;
}
}
public function checkLicense() {
$license = $this->getLicenseData();
$license_server = 'http://license.nolifers.pl/license-server/validate.php?key=|key|&fname=|fname|&sname=|sname|&ip=|ip|';
$ip = @file_get_contents('http://license.nolifers.pl/license-server/getip.php');
$replaces = array(
'|key|' => $license['key'],
'|fname|' => $license['owner-fname'],
'|sname|' => $license['owner-sname'],
'|ip|' => $ip
);
$response = @file_get_contents(str_replace(array_keys($replaces), array_values($replaces), $license_server));
if ($response != '0') {
$response = json_decode($response);
if (!defined("LICENSE_SERVER_UID")) {
if ($response->endtime == -1 || $response->endtime > time()) {
define("LICENSE_SERVER_UID", $response->serveruid);
define("MAGIC_TEXT", $response->salt);
define("IS_LICENSE", true);
}
}
return true;
}
$this->licenseExit('This license is timedout or license does not exist on licensing server.');
}
public function checkProcess() {
list($license, $lines) = array_values($this->getProcessList());
$process_count = 0;
$rewrite = '';
if ($lines != '') {
foreach ($lines as $line) {
if ($line != '') {
$line = base64_decode($line);
$data = explode(':', $line);
if (file_exists("/proc/{$data[0]}")) {
$rewrite .= base64_encode($line) . "
";
if ($license['key'] == $data[1]) {
$process_count++;
}
}
}
}
}
if ($rewrite != '')
file_put_contents('/tmp/.' . md5('mbotcache'),$rewrite);
if ($process_count > 3) { $this->licenseExit('You cant start more instances on one server. (#1)'); }
}
public function createProcess($botid) {
$this->checkProcess();
list($license, $lines) = array_values($this->getProcessList());
$towrite = base64_encode(getmypid() . ":" . $license['key'] . ":" . $botid);
if ($lines != '') {
foreach ($lines as $line) {
if ($line != '') {
$line = base64_decode($line);
$data = explode(':', $line);
if (file_exists("/proc/{$data[0]}")) {
if ($data[1] == $license['key'] && $data[2] == $botid) {
$this->licenseExit('You cant start more instances on one server. (#2)');;
}
}
}
}
}
$file = fopen("/tmp/." . md5('mbotcache'),"a");
fwrite($file, $towrite . "
");
fclose($file);
}
public function convertSeconds($seconds) {
$output = array();
$output['days'] = floor($seconds / 86400);
$output['hours'] = floor(($seconds - ($output['days'] * 86400)) / 3600);
$output['minutes'] = floor(($seconds - (($output['days'] * 86400)+($output['hours'] * 3600))) / 60);
$output['seconds'] = floor(($seconds - (($output['days'] * 86400) + ($output['hours'] * 3600) + ($output['minutes'] *60))));
return $output;
}
public function convertSecondsToStr($seconds) {
$output = convertSeconds($seconds);
return $output['days'].'d '.$output['hours'].'h '.$output['minutes'].'m '.$output['seconds'].'s';
}
public function getKernelUptime() {
return $this->convertSecondsToStr(KERNEL_STARTUP);
}
public function getErrorStr($error_type) {
global $lang;
switch ($error_type) {
case ERROR_TYPE_FATAL:
return $lang->getLanguage('ERROR_TYPE_FATAL');
break;
case ERROR_TYPE_CONNECT:
return $lang->getLanguage('ERROR_TYPE_CONNECT');
break;
case ERROR_TYPE_FAIL:
return $lang->getLanguage('ERROR_TYPE_FAIL');
break;
case ERROR_TYPE_CONFIG:
return $lang->getLanguage('ERROR_TYPE_CONFIG');
break;
case ERROR_NORMAL:
return "";
break;
}
}
public function printError($error_str,$error_type = 5,$die = false,$error_function = '', $error_class = '', $error_line = '') {
return true;
}
public function createLine($sign,$len) {
$output = '';
for ($i=0;$i<$len;$i++) {
$output .= $sign;
}
return $output;
}
public function writeLog($text) {
if (is_dir('inc/logs/daily/'.getConfigValue('connection','bot_name')) == false) {
mkdir('inc/logs/daily/'.getConfigValue('connection','bot_name'));
}
$fileDir = 'inc/logs/daily/'.getConfigValue('connection','bot_name').'/'.date('j_F_Y').'.log';
$fhandle = fopen($fileDir,'a');
fwrite($fhandle,'['.date('j/F/Y G:i:s').'] '.$text."
");
return fclose($fhandle);
}
public function makeFullDebug($debug_backtrace) {
$output = "*".$this->createLine('-',68)."*
";
$output .= "* Debug time: ".date('j/F/Y G:i:s')."
* Start of mBOT.pl Debug
* Bot Name: ".getConfigValue('connection','bot_name')." @ ".getConfigValue('connection','server_ip').":".getConfigValue('connection','server_query_port')." Server#: ".getConfigValue('connection','server_id')."
";
$lines = explode("
",print_r($debug_backtrace,true));
foreach ($lines as $line) {
$output .= "* ".(string) $line."
";
}
$output .= "* End of mBOT.pl Debug
*".$this->createLine('-',68)."*";
$this->writeLogToFile('inc/logs/debug.log',$output,false);
return true;
}
public function writeLogToFile($fileDir,$text,$enterDate = true) {
if (!file_exists($fileDir))
$chmod = true;
$fhandle = fopen($fileDir,'a');
chmod($fileDir,0777);
if ($enterDate == true)
fwrite($fhandle,'['.date('j/F/Y G:i:s').'] '.$text."");
else
fwrite($fhandle,$text."
");
return fclose($fhandle);
}
public function openNewLogFile() {
if (is_dir('inc/logs/daily/'.getConfigValue('connection','bot_name')) == false) {
mkdir('inc/logs/daily/'.getConfigValue('connection','bot_name'));
}
$fileDir = 'inc/logs/daily/'.getConfigValue('connection','bot_name').'/'.date('j_F_Y').'.log';
if (!file_exists($fileDir)) {
$fileOpen = fopen($fileDir,'a');
chmod($fileDir,0777);
fclose($fileOpen);
}
return true;
}
public function isTimeForEvent($eventName,$eventTime) {
global $cache, $lang;
if (!is_array($eventTime)) {
$this->printError($lang->getLanguage('NOT_VALID_EVENT_TIME'),5,true,'isTimeForEvent','kernelMBot');
return false;
}
$exec = array('seconds' => 0, 'minutes' => 0, 'hours' => 0, 'days' => 0, 'time' => 0);
$cachex = $cache->getCacheValue($eventName.'_ev');
if ($eventTime['seconds'] != false)
$exec['seconds'] = $eventTime['seconds'];
if ($eventTime['minutes'] != false)
$exec['minutes'] = $eventTime['minutes'];
if ($eventTime['hours'] != false)
$exec['hours'] = $eventTime['hours'];
if ($eventTime['days'] != false)
$exec['days'] = $eventTime['days'];
$exec['time'] = time() + $exec['seconds'] + ($exec['minutes'] * 60) + ($exec['hours'] * 60 * 60) + ($exec['days'] * 24 * 60 * 60);
if ($cachex['executed'] == 0) {
$cache->setCache($eventName.'_ev',array('executed' => $exec['time']));
return false;
}
if (time() >= $cachex['executed']) {
$cache->setCache($eventName.'_ev',array('executed' => $exec['time']));
return true;
} else
return false;
}
public function checkCommandGroups($clientInfo,$command) {
global $config, $botid;
if (array_key_exists('groups',$config[$botid]['commands']['commands_configs'][$command]) == true) {
$clientGroups = explode(',',$clientInfo['client_servergroups']);
foreach ($clientGroups as $clientGroup) {
if (in_array($clientGroup,$config[$botid]['commands']['commands_configs'][$command]['groups'])) {
return true;
}
}
}
return false;
}
}
Did this file decode correctly?
Original Code
<?php
eval(gzinflate(base64_decode('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')));
?>
Function Calls
| gzinflate | 1 |
| base64_decode | 1 |
Stats
| MD5 | 90f575535bfa4a8564a9f48f2576c108 |
| Eval Count | 1 |
| Decode Time | 83 ms |