!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/home/jerryg/public_html/gallery2/modules/exif/lib/exifer/makers/   drwxr-xr-x
Free 318.32 GB of 458.09 GB (69.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     gps.inc (8.48 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
//================================================================================================
//================================================================================================
//================================================================================================
/*
    Exifer
    Extracts EXIF information from digital photos.
    
    Copyright © 2003 Jake Olefsky
    http://www.offsky.com/software/exif/index.php
    jake@olefsky.com
    
    Please see exif.php for the complete information about this software.
    
    ------------
    
    This program is free software; you can redistribute it and/or modify it under the terms of 
    the GNU General Public License as published by the Free Software Foundation; either version 2 
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
    without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
    See the GNU General Public License for more details. http://www.gnu.org/copyleft/gpl.html
*/
//================================================================================================
//================================================================================================
//================================================================================================



//=================
// Looks up the name of the tag
//====================================================================
function lookup_GPS_tag($tag) {

    switch(
$tag) {
        case 
"0000"$tag "Version";break;
        case 
"0001"$tag "Latitude Reference";break;            //north or south
        
case "0002"$tag "Latitude";break;                    //dd mm.mm or dd mm ss
        
case "0003"$tag "Longitude Reference";break;        //east or west
        
case "0004"$tag "Longitude";break;                    //dd mm.mm or dd mm ss
        
case "0005"$tag "Altitude Reference";break;            //sea level or below sea level
        
case "0006"$tag "Altitude";break;                    //positive rational number
        
case "0007"$tag "Time";break;                        //three positive rational numbers
        
case "0008"$tag "Satellite";break;                    //text string up to 999 bytes long
        
case "0009"$tag "ReceiveStatus";break;                //in progress or interop
        
case "000a"$tag "MeasurementMode";break;            //2D or 3D
        
case "000b"$tag "MeasurementPrecision";break;        //positive rational number
        
case "000c"$tag "SpeedUnit";break;                    //KPH, MPH, knots
        
case "000d"$tag "ReceiverSpeed";break;                //positive rational number    
        
case "000e"$tag "MovementDirectionRef";break;        //true or magnetic north
        
case "000f"$tag "MovementDirection";break;            //positive rational number
        
case "0010"$tag "ImageDirectionRef";break;            //true or magnetic north
        
case "0011"$tag "ImageDirection";break;                //positive rational number
        
case "0012"$tag "GeodeticSurveyData";break;            //text string up to 999 bytes long
        
case "0013"$tag "DestLatitudeRef";break;            //north or south
        
case "0014"$tag "DestinationLatitude";break;        //three positive rational numbers
        
case "0015"$tag "DestLongitudeRef";break;            //east or west
        
case "0016"$tag "DestinationLongitude";break;        //three positive rational numbers
        
case "0017"$tag "DestBearingRef";break;                //true or magnetic north
        
case "0018"$tag "DestinationBearing";break;            //positive rational number
        
case "0019"$tag "DestDistanceRef";break;            //km, miles, knots
        
case "001a"$tag "DestinationDistance";break;        //positive rational number
        
case "001b"$tag "ProcessingMethod";break;            
        case 
"001c"$tag "AreaInformation";break;
        case 
"001d"$tag "Datestamp";break;                    //text string 10 bytes long
        
case "001e"$tag "DifferentialCorrection";break;        //integer in range 0-65535
        
        
        
default: $tag "unknown:".$tag;break;
    }
    
    return 
$tag;
}

//=================
// Formats a rational number
//====================================================================
function GPSRational($data$intel) {

    if(
$intel==1$top hexdec(substr($data,8,8));     //intel stores them bottom-top
    
else  $top hexdec(substr($data,0,8));                //motorola stores them top-bottom
    
    
if($intel==1$bottom hexdec(substr($data,0,8));    //intel stores them bottom-top
    
else  $bottom hexdec(substr($data,8,8));            //motorola stores them top-bottom
    
    
if($bottom!=0$data=$top/$bottom;
    else if(
$top==0$data 0;
    else 
$data=$top."/".$bottom;
    
    return 
$data;
}
//=================
// Formats Data for the data type
//====================================================================
function formatGPSData($type,$tag,$intel,$data) {

    if(
$type=="ASCII") {
        
        
    } else if(
$type=="URATIONAL" || $type=="SRATIONAL") {
        
$data bin2hex($data);
        if(
$intel==1$data intel2Moto($data);
        
        if(
$intel==1$top hexdec(substr($data,8,8));     //intel stores them bottom-top
        
else  $top hexdec(substr($data,0,8));                //motorola stores them top-bottom
        
        
if($intel==1$bottom hexdec(substr($data,0,8));    //intel stores them bottom-top
        
else  $bottom hexdec(substr($data,8,8));            //motorola stores them top-bottom
        
        
if($type=="SRATIONAL" && $top>2147483647$top $top 4294967296;        //this makes the number signed instead of unsigned
        
        
if($tag=="0002" || $tag=="0004") { //Latitude
        
            
$hour GPSRational(substr($data,0,16),$intel);
            
$minutes GPSRational(substr($data,16,16),$intel);
            
$seconds GPSRational(substr($data,32,16),$intel);
            
            
$data $hour+$minutes/60+$seconds/3600;
        } else if(
$tag=="0007") { //Time
            
$seconds GPSRational(substr($data,0,16),$intel);
            
$minutes GPSRational(substr($data,16,16),$intel);
            
$hour GPSRational(substr($data,32,16),$intel);
            
            
$data $hour.":".$minutes.":".$seconds;
        } else {
            if(
$bottom!=0$data=$top/$bottom;
            else if(
$top==0$data 0;
            else 
$data=$top."/".$bottom;
        }
    } else if(
$type=="USHORT" || $type=="SSHORT" || $type=="ULONG" || $type=="SLONG" || $type=="FLOAT" || $type=="DOUBLE") {
        
$data bin2hex($data);
        if(
$intel==1$data intel2Moto($data);
        
$data=hexdec($data);
        
        
    } else if(
$type=="UNDEFINED") {
        
        
        
    } else if(
$type=="UBYTE") {
        
$data bin2hex($data);
        if(
$intel==1$num intel2Moto($data);
            
        if(
$tag=="0000") { //Latitude
            
$data =  hexdec(substr($data,0,2))."."hexdec(substr($data,2,2))."."hexdec(substr($data,4,2))."."hexdec(substr($data,6,2));
        } 
        
    } else {
        
$data bin2hex($data);
        if(
$intel==1$data intel2Moto($data);
    }
    
    return 
$data;
}


//=================
// GPS Special data section
// Useful websites
// http://drewnoakes.com/code/exif/sampleOutput.html
// http://www.geosnapper.com
//====================================================================
function parseGPS($block,&$result,$offset,$seek$globalOffset) {    
    
    if(
$result['Endien']=="Intel"$intel=1;
    else 
$intel=0;
        
    
$v fseek($seek,$globalOffset+$offset);  //offsets are from TIFF header which is 12 bytes from the start of the file
    
if($v==-1) {
        
$result['Errors'] = $result['Errors']++;
    }

    
$num bin2hex(fread$seek));
    if(
$intel==1$num intel2Moto($num);
    
$num=hexdec($num);
    
$result['GPS']['NumTags'] = $num;

    if (
$num 0$block fread$seek$num*12 );
    
$place 0;
    
    
//loop thru all tags  Each field is 12 bytes
    
for($i=0;$i<$num;$i++) {
            
//2 byte tag
        
$tag bin2hex(substr($block,$place,2));$place+=2;
        if(
$intel==1$tag intel2Moto($tag);
        
$tag_name lookup_GPS_tag($tag);
        
        
//2 byte datatype
        
$type bin2hex(substr($block,$place,2));$place+=2;
        if(
$intel==1$type intel2Moto($type);
        
lookup_type($type,$size);
        
        
//4 byte number of elements
        
$count bin2hex(substr($block,$place,4));$place+=4;
        if(
$intel==1$count intel2Moto($count);
        
$bytesofdata $size*hexdec($count);
        
        
//4 byte value or pointer to value if larger than 4 bytes
        
$value substr($block,$place,4);$place+=4;
        
        if(
$bytesofdata<=4) {
            
$data $value;
        } else {
            
$value bin2hex($value);
            if(
$intel==1$value intel2Moto($value);
            
            
$v fseek($seek,$globalOffset+hexdec($value));  //offsets are from TIFF header which is 12 bytes from the start of the file
            
if($v==&& $bytesofdata $GLOBALS['exiferFileSize']) {
                
$data fread($seek$bytesofdata);
            } else {
                
$result['Errors'] = $result['Errors']++;
            }
        }
            
        if(
$result['VerboseOutput']==1) {
            
$result['GPS'][$tag_name] = formatGPSData($type,$tag,$intel,$data);
            
$result['GPS'][$tag_name."_Verbose"]['RawData'] = bin2hex($data);
            
$result['GPS'][$tag_name."_Verbose"]['Type'] = $type;
            
$result['GPS'][$tag_name."_Verbose"]['Bytes'] = $bytesofdata;
        } else {
            
$result['GPS'][$tag_name] = formatGPSData($type,$tag,$intel,$data);
        }
    }
}


?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0246 ]--