Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Zell

#1
PHP / Ofuscador php libre para carpetas
3 Enero 2011, 19:49 PM
Hola a todos

Hace un año que estuve buscando un ofuscador php gratuito y bueno, pero solo encontre el de raizalab y otros demos, el problema con el ofuscador de railzab es que no ofuscaba clases. Entonces decidi probar hacer mi propio ofuscador php.

El ofuscador php que desarrolle es de facil uso, en un solo paso carga toda la carpeta que contiene al sitio web. Esta es la version 1.2.

MODO DE USO

  • Solo hay que establecer la carpeta que contiene el sitio web y la aplicacion se encarga de cargar todos los archivos de cualquier extension, pero por defecto solo los archivos de extension .php estaran habilitados para ser ofuscados.  
  • Luego hay que establecer la carpeta de salida. Aqui el ofuscador colocara todos los archivos y subcarpetas en el mismo orden de la carpeta original.  
  • Establecemos las variables u funciones que no seran ofuscadas, o que tendran un nombre personalizado.  
  • Establecemos las opciones del projecto, aqui la mas importante podria ser si se va habilitar ofuscar los nombres de las funciones. Luego esta el prefijo que es una cadena que se utilizara para generara todos los nombres.  
  • Por ultimo solo hacemos click en el boton GENERAR ARCHIVOS. Una vez que nos muestre un mensaje del final del proceso vamos a la carpeta de salida, luego copiamos la carpeta al servidor para ver los resultados.  



CARACTERISTICAS

  • La aplicacion trabaja sobre proyectos, se puede guardar, abrir, renombrar y crear nuevos projectos rapidamente.
  • Ofusca clases, funciones y variables.
  • Soporta dependencias de funciones y variables entre archivos (includes y requires).
  • Es un aplicacion hecha en lenguaje c#.Net 2.0.
  • Viene con su propio instalador.
  • Ofusca cadenas encerradas entre comillas dobles.
  • Arregla algunos errores de las versiones anteriores.
  • Genera un mapa de todas las variables y funciones de un archivo ofuscado, para ser utilizados posteriormente en otros projectos para no volver a ofuscarlos.  

OTROS

No soporta las variables funciones y pueden haber problemas con la funcion extract().  
Este ofuscador fue probado con joomla 1.5.  


REQUISITOS

Los requisitos de la aplicacion son:

Windows 98/Xp/Vista/7.
Net Framework 2.0.

El ofuscador php lo pueden descargar de :

https://skydrive.live.com/redir.aspx?cid=c3316392af8466c7&resid=C3316392AF8466C7!109




Pruebas con el ofuscador de codigo php
Se utilizaron tres archivos de codigo fuente: TestA.php, TestFuncs.php, TestVars.php. El archivo TestA.php utiliza variables y funciones de los otros dos archivos.

Archivo TestA.php
Código (php) [Seleccionar]


<?php
function ShowInfo($name,$cod)
{
    echo 
$name.' '.$cod;

    include 
'TestVars.php';
    require 
"TestFuncs.php";
    
$maxsizeGetMaxSize($name);

    for(
$i=1;$i<$maxsize;$i++)
    {
        
$size=$i*$base;
        echo 
"valor".$i.' = '.$cod.$prev.$size;

    }
}


$figure1 'tow';
$figure2 "tank";

class 
Info
{
    private 
$name;
    private 
$cod;
    var 
$uvar=array(truefalse);

    private 
$maxSize=0;

    public function 
__construct($name,$cod,$maxSize)
    {
        
$this->name=$name;
        
$this->cod $cod;
        
$this->maxSize $maxSize;
    }

    public function 
Show()
    {
        echo 
$this->name.$this->cod;
        
$this->ShowValues();
    }

    function 
showB()
    {
        echo 
"function showB ";
        return 
$this->uvar;
    }

    private function 
ShowValues()
    {
        require 
"./TestVars.php";

        for(
$i=1;$i<$this->maxSize;$i++)
        {
            echo 
"<p>";
            echo 
"valor".$i." = ".$this->cod.$prev.$i.$base;
            echo 
"</p>";
        }
    }
}
ShowInfo("hunter""ht"12);

$Informacion = new Info("Hierro","he",11);

echo 
"coment ?>
>";
echo " cadena de prueba //no".

"ex1";
echo "cadena de //co
varias lineas";
?>
<table class="uTable">
   <tr><td> tabla 1 empire <?php echo $figure1 ?> </td></tr>

</table>
<?php echo $figure2.' <hr>';
$Informacion->Show();

?>



Archivo TestVars.php
Código (php) [Seleccionar]

<?php
$base
=1;
$prev "dom";
?>




Archivo TestFuncs.php
Código (php) [Seleccionar]

<?php
function GetMaxSize($name)
{
    if (
$name!="unk") {
        return 
10;
    }
    else { return 
1;  }
}


?>




A continuacion se muestran los resultados al ofuscar los tres archivos en el mismo proyecto. Estos tres archivos funcionan igual que los originales

Archivo TestA.php ofuscado

Código (php) [Seleccionar]

<?php
 
function x11x2x31s155
($x11x2x31s3235,$x11x2x31s3236){echo $x11x2x31s3235.' '.$x11x2x31s3236;include 'TestVars.php';require "\x54\x65\x73t\x46\x75\x6ec\x73\x2e\x70\x68p";

$x11x2x31s3237x11x2x32s155($x11x2x31s3235);for($x11x2x31s3238=1;$x11x2x31s3238<$x11x2x31s3237;$x11x2x31s3238++)
{
$x11x2x31s3239=$x11x2x31s3238*$x11x2x33s2235;echo "\x76\x61\x6co\x72".$x11x2x31s3238.' = '.$x11x2x31s3236.$x11x2x33s2236.$x11x2x31s3239;
}}

$x11x2x31s4235 'tow';$x11x2x31s4236 "\x74\x61\x6ek";
class 
Info
{private $x11x2x31s156;private $x11x2x31s157;var $uvar=array(truefalse);private $x11x2x31s159=0;

public function 
__construct
($x11x2x31s5235,$x11x2x31s5236,$x11x2x31s5237){$this->x11x2x31s156=$x11x2x31s5235;$this->x11x2x31s157 $x11x2x31s5236;

$this->x11x2x31s159 $x11x2x31s5237;}
public function 
Show
(){echo $this->x11x2x31s156.$this->x11x2x31s157;$this->x11x2x31s163();}
 function 
showB
(){echo "\x66\x75\x6ec\x74\x69\x6fn\x20\x73\x68\x6fw\x42\x20";return $this->uvar;}

private function 
x11x2x31s163
(){require "\x2e\x2f\x54e\x73\x74\x56a\x72\x73\x2e\x70h\x70";for($x11x2x31s8235=1;$x11x2x31s8235<$this->x11x2x31s159;$x11x2x31s8235++)
{echo 
"\x3c\x70>";echo "\x76\x61\x6co\x72".$x11x2x31s8235."\x20\x3d\x20".$this->x11x2x31s157.$x11x2x33s2236.$x11x2x31s8235.$x11x2x33s2235;

echo 
"\x3c\x2f\x70>";}}}
x11x2x31s155("\x68\x75\x6et\x65\x72""\x68\x74"12);$x11x2x31s9235 = new Info("\x48\x69\x65r\x72\x6f","\x68\x65",11);

echo 
"\x63\x6f\x6de\x6e\x74\x20?>
\x20>";
echo "\x20\x63\x61d\x65\x6e\x61 \x64\x65\x20\x70r\x75\x65\x62a\x20\x2f\x2fn\x6f".
"\x65\x78\x31";
echo "\x63\x61\x64e\x6e\x61\x20d\x65\x20\x2f\x2fc\x6f
v\x61\x72\x69a\x73\x20\x6ci\x6e\x65\x61\x73"

;
?>
<table class="uTable">
<tr><td> tabla 1 empire
<?php echo $x11x2x31s4235 ?>

</td></tr>
</table>
<?php echo $x11x2x31s4236.' <hr>';$x11x2x31s9235->Show();

?>




Archivo TestVars.php ofuscado
Código (php) [Seleccionar]

<?php
$x11x2x33s2235
=1;$x11x2x33s2236 "\x64\x6f\x6d";

?>




Archivo TestFuncs.php ofuscado
Código (php) [Seleccionar]

<?php
 
function x11x2x32s155
($x11x2x32s3235){if ($x11x2x32s3235!="\x75\x6e\x6b") {return 10;}else { return 1;  }}

?>