| 
<?php
/**
 * Run file.
 *
 * @package Turtle
 * @access public
 * @desc Run file.
 * @copyright Marcin Sznyra (c) 2005 <marcin@marcinsznyra.info>
 * @author Marcin Sznyra <marcin@marcinsznyra.info>
 * @version $Id: _file.class.php,v 1.0 2005/12/29 11:39:23 MarcinSznyra Exp $;
 * @since Version 1.0
 */
 class ObfRunMe
 {
 
 
 var $_i = 0;
 
 function ObfRunMe( )
 {
 error_reporting( E_ALL );
 
 include( realpath( dirname( __FILE__ ) ).'/_obfuscator.class.php' );
 include( realpath( dirname( __FILE__ ) ).'/_file.class.php' );
 
 $this -> _Obfuscator = Obfuscator::instance( );
 
 $_FILE = new File( );
 $_FILE -> open( realpath( dirname( __FILE__ ) ).'/config.dat' );
 $_CONFIG = unserialize( $_FILE -> read( ) );
 $_FILE -> close( );
 
 $this -> _Obfuscator -> _CONFIG = $_CONFIG;
 
 set_time_limit( 3600 * $_CONFIG['time'] );
 
 $this -> _source =& $_CONFIG['source'];
 $this -> _destin =& $_CONFIG['target'];
 
 
 if( isset( $_CONFIG['smarty'] ) && $_CONFIG['smarty'] == true )
 {
 $this -> _Obfuscator -> _NOCHANGE[] = 'smarty';
 $this -> _Obfuscator -> _NOCHANGE[] = 'append';
 $this -> _Obfuscator -> _NOCHANGE[] = 'append_by_ref';
 $this -> _Obfuscator -> _NOCHANGE[] = 'assign';
 $this -> _Obfuscator -> _NOCHANGE[] = 'assign_by_ref';
 $this -> _Obfuscator -> _NOCHANGE[] = 'lear_all_assign';
 $this -> _Obfuscator -> _NOCHANGE[] = 'clear_all_cache';
 $this -> _Obfuscator -> _NOCHANGE[] = 'clear_assign';
 $this -> _Obfuscator -> _NOCHANGE[] = 'clear_cache';
 $this -> _Obfuscator -> _NOCHANGE[] = 'clear_compiled_tpl';
 $this -> _Obfuscator -> _NOCHANGE[] = 'clear_config';
 $this -> _Obfuscator -> _NOCHANGE[] = 'config_load';
 $this -> _Obfuscator -> _NOCHANGE[] = 'display';
 $this -> _Obfuscator -> _NOCHANGE[] = 'fetch';
 $this -> _Obfuscator -> _NOCHANGE[] = 'get_config_vars';
 $this -> _Obfuscator -> _NOCHANGE[] = 'get_registered_object';
 $this -> _Obfuscator -> _NOCHANGE[] = 'get_template_vars';
 $this -> _Obfuscator -> _NOCHANGE[] = 'is_cached';
 $this -> _Obfuscator -> _NOCHANGE[] = 'load_filter';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_block';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_compiler_function';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_function';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_modifier';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_object';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_outputfilter';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_postfilter';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_prefilter';
 $this -> _Obfuscator -> _NOCHANGE[] = 'register_resource';
 $this -> _Obfuscator -> _NOCHANGE[] = 'trigger_error';
 $this -> _Obfuscator -> _NOCHANGE[] = 'template_exists';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_block';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_compiler_function';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_function';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_modifier';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_object';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_outputfilter';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_postfilter';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_prefilter';
 $this -> _Obfuscator -> _NOCHANGE[] = 'unregister_resource';
 $this -> _Obfuscator -> _NOCHANGE[] = 'capture';
 $this -> _Obfuscator -> _NOCHANGE[] = 'config_load';
 $this -> _Obfuscator -> _NOCHANGE[] = 'foreach';
 $this -> _Obfuscator -> _NOCHANGE[] = 'foreachelse';
 $this -> _Obfuscator -> _NOCHANGE[] = 'include';
 $this -> _Obfuscator -> _NOCHANGE[] = 'include_php';
 $this -> _Obfuscator -> _NOCHANGE[] = 'insert';
 $this -> _Obfuscator -> _NOCHANGE[] = 'if';
 $this -> _Obfuscator -> _NOCHANGE[] = 'elseif';
 $this -> _Obfuscator -> _NOCHANGE[] = 'else';
 $this -> _Obfuscator -> _NOCHANGE[] = 'ldelim';
 $this -> _Obfuscator -> _NOCHANGE[] = 'rdelim';
 $this -> _Obfuscator -> _NOCHANGE[] = 'literal';
 $this -> _Obfuscator -> _NOCHANGE[] = 'php';
 $this -> _Obfuscator -> _NOCHANGE[] = 'section';
 $this -> _Obfuscator -> _NOCHANGE[] = 'sectionelse';
 $this -> _Obfuscator -> _NOCHANGE[] = 'strip';
 $this -> _Obfuscator -> _NOCHANGE[] = 'assign';
 $this -> _Obfuscator -> _NOCHANGE[] = 'counter';
 $this -> _Obfuscator -> _NOCHANGE[] = 'cycle';
 $this -> _Obfuscator -> _NOCHANGE[] = 'debug';
 $this -> _Obfuscator -> _NOCHANGE[] = 'eval';
 $this -> _Obfuscator -> _NOCHANGE[] = 'fetch';
 $this -> _Obfuscator -> _NOCHANGE[] = 'html_checkboxes';
 $this -> _Obfuscator -> _NOCHANGE[] = 'html_image';
 $this -> _Obfuscator -> _NOCHANGE[] = 'html_options';
 $this -> _Obfuscator -> _NOCHANGE[] = 'html_radios';
 $this -> _Obfuscator -> _NOCHANGE[] = 'html_select_date';
 $this -> _Obfuscator -> _NOCHANGE[] = 'html_select_time';
 $this -> _Obfuscator -> _NOCHANGE[] = 'html_table';
 $this -> _Obfuscator -> _NOCHANGE[] = 'math';
 $this -> _Obfuscator -> _NOCHANGE[] = 'mailto';
 $this -> _Obfuscator -> _NOCHANGE[] = 'popup_init';
 $this -> _Obfuscator -> _NOCHANGE[] = 'popup';
 $this -> _Obfuscator -> _NOCHANGE[] = 'textformat';
 }
 
 if( isset( $_CONFIG['nochange'] ) && !empty( $_CONFIG['nochange'] ) )
 {
 
 $exp = explode( ',', $_CONFIG['nochange'] );
 
 if( sizeof( $exp ) >= 1 )
 {
 foreach( $exp as $key => $value )
 {
 $this -> _Obfuscator -> _NOCHANGE[] = preg_replace( '/\s/', '' , strtolower( $value ) );
 }
 }
 
 }
 
 }
 
 function run( )
 {
 $this -> readFiles( $this -> _source , $this -> _destin );
 
 $this -> _Obfuscator -> ObfSaveRandomsFile( );
 $this -> _Obfuscator -> ObfSaveFunctionsFile( );
 $this -> _Obfuscator -> ObfSaveClassesFile( );
 $this -> _Obfuscator -> ObfSaveVariablesFile( );
 
 $this -> procesFiles( $this -> _source , $this -> _destin );
 
 
 echo '<script>this.window.location.href(\'finish.php\')</script>';
 }
 
 function readFiles( $_dir , $_dest )
 {
 $_files = $this -> _getDirectory( $_dir );
 
 
 if( is_array( $_files ) )
 {
 foreach( $_files AS $value )
 {
 if( is_dir( $_dir.'/'.$value ) )
 {
 
 $this -> readFiles( $_dir.'/'.$value , $_dest.'/'.$value );
 
 } else if( eregi( '.php', $value ) && file_exists( $_dir.'/'.$value) ) {
 
 
 $this -> runObfuscatorSearch( $_dir.'/'.$value , $_dest.'/'.$value );
 
 }
 }
 }
 }
 
 function procesFiles( $_dir , $_dest )
 {
 $this -> _i++;
 
 $_files = $this -> _getDirectory( $_dir );
 
 if( is_array( $_files ) )
 {
 
 foreach( $_files AS $value )
 {
 
 if( is_dir( $_dir.'/'.$value ) )
 {
 if( $this -> _i == 1 ) { echo '<b>'.$value.'</b>';$this -> _Obfuscator -> ObfSetDir( $value ); }
 
 $this -> makeDir( $_dest.'/'.$value );
 $this -> procesFiles( $_dir.'/'.$value , $_dest.'/'.$value );
 
 } else if( eregi( '.php', $value ) && file_exists( $_dir.'/'.$value) ) {
 
 $this -> runObfuscatorReplace( $_dir.'/'.$value , $_dest.'/'.$value );
 
 } else {
 
 copy( $_dir.'/'.$value , $_dest.'/'.$value );
 
 }
 }
 }
 
 $this -> _i--;
 }
 
 function runObfuscatorSearch( $_addr = null , $_dest )
 {
 echo "Process File :: ".realpath( $_addr )." <BR>\n";
 
 $this -> _Obfuscator -> ObfSetSource( $_addr );
 $this -> _Obfuscator -> ObfSetDestination( $_dest );
 $this -> _Obfuscator -> ObfSearch( );
 }
 
 function runObfuscatorReplace( $_addr = null , $_dest )
 {
 $this -> _Obfuscator -> ObfSetSource( $_addr );
 $this -> _Obfuscator -> ObfSetDestination( $_dest );
 $this -> _Obfuscator -> ObfReplace( );
 
 echo "Creates File :: ".realpath( $_dest )." <BR>\n";
 }
 
 function makeDir( $_addr )
 {
 if( !is_dir( $_addr ) )
 {
 mkdir ( $_addr , 0777 );
 }
 }
 
 
 function _getDirectory( $directory )
 {
 $array = null;
 
 $dir = $directory;
 
 if ( is_dir( $dir ) )
 {
 if ($dh = opendir( $dir ) )
 {
 while ( ( $file = readdir( $dh ) ) !== false)
 {
 
 if( $file != '.' && $file != '..' )
 {
 
 $array[] = $file;
 }
 
 }
 
 closedir($dh);
 
 }
 }
 
 return $array;
 }
 
 
 }
 
 $obj = new ObfRunMe( );
 $obj -> run( );
 ?>
 |