Reemplazar funciones

Iniciado por WHK, 6 Diciembre 2008, 22:19 PM

0 Miembros y 1 Visitante están viendo este tema.

WHK

Una pregunta poco común, alguien sabe como podría intercambiar funciones y reemplazar una función por otra?

Por ejemplo que la función eval() funcione como si fuera printf()  :xD bueno con eso ya deben saber para que es, la idea es descifrar un cifrado que hace una librería de php que según yo debe ejecutar todo el buffer final en un eval.

estuve pensando que talves pueda hacerse con ini_set pero no me funcionó, redeclarando funciones tampoco, talves hay que establecer un unset a una función o algo así aver si alguien sabe.

De antemano grax.

SaXo

Yo no me he enterado de nada.

¿Qué es lo que quieres hacer?

Un saludo,

SaXo

Nakp

Ojo por ojo, y el mundo acabará ciego.

WHK

#3
Claro, eso mismo buscaba pero lamentablemente no es nativo de PHP asi que tube que buscar su extensión:

http://pecl.php.net/package/apd

Buscando un poco en google encontré la dll ya compilada:
http://kromann.info/download.php?strFolder=php5_1-Release_TS&strIndex=PHP5_1 => php_apd.dll

Ya que el Wamp no lo trae y al hacerlo correr nuevamente me sigue dando el mismo error:

Código (php) [Seleccionar]
<?php
override_function
('eval''$script''echo nl2br(htmlspecialchars($script,ENT_QUOTES));');
//rename_function('eval', 'printf');

$cifrado '$a="hola";echo $a;';
eval(
$cifrado);
?>


CitarFatal error: Call to undefined function override_function() in C:\wamp\www\neval.php
on line 2

Bueno, seguiré buscando un reemplazo pero esa es la idea.

SaXo

Sinceramente siguo sin enterarme para quiere hacer eso.

¿No sera que lo que esta buscando es un depurardor de código?

APD es un depurador de código de php y override_function forma parte de ese depurador.

Un saludo,

SaXo




WHK

Si, en realidad hay un sistema de cifrado de códigos fuentes donde te genera un php con un hash, lo que hace la extensión es descifrar el contenido y ejecutarlo, como lo hace no lo se y al parecer tampoco nadie sabe pero se que para ejecutar algo descifrado debe pasar normalmente por un eval() entonces la idea mia es crear un ripeador de este sistema de cifrado creando mi propia extensión que reemplaze la función eval() por printf() devolviendo el código fuente original del script en php.

No se si estaría bién nombrar el sistema ya que no quiero que después borren el tema diciendo "no puedes postear cosas relacionadas con joder a un sistema y bla bla bla" asi que mejor dejemoslo en el sistema "cubo" ya que el nombre original es similar pero no igual.

si buscan en google pueden encontrar el sistema.. acá hay un trozo de su código fuente:
Código (php) [Seleccionar]
strtolower(substr(php_uname :P

alone-in-the-chat

X)

Me suena a io....

:-X  :-X

De verdad que es algo incomoda , me eh topado 2 o 3 veces con ese "problemita" , encontre una pagina que te permitia previo pago descifrar el contenido de los archivos aunque ya no recuerdo la url , se que es posible desencriptarlos  por que  eh ubicado codigos fuentes de programas cifrados con el io... , totalmente descifrados , pero nunca me adentre demasido en el tema , preferi rehacer los sistemas en cuestion .

Si tienes algo en mente , te puedo hechar una mano en el asunto .

:)

Saludos¡¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

WHK

Si, es ese mismo y como ves en una parte de su web oficial dice "código inhackeable" aunque obviamente eso no es así solo que cuesta un poco y para algunos no cuesta nada pero no hay nada público y supongo que es para no tener problemas legales pero bueno de eso me encargo yo  :P

Si te fijas todo el cifrado y descifrado lo hace una librería php_xxx... asi que no puedes meter manos pero lo que si puedes hacer es modificar o alterar su código inicial para afectar de alguna manera el buén funcionamiento de la librería y hacer que debuelva el código fuente original en ves de ejecutarlo y como decía todo debe estar declarado en uno o mas funciones eval() que si logramos hacer que eval sea un printf debolvería el código original en ves de ejecutarlo y ya con eso podría hacerse un script que cargue códigos fuente y los descifre o te lo de como descarga en un zip y listo.

Supuse también que podría modificarse el binario para modificar la función de eval a printf pero después pensé que habría que buscar todas las funciones y reemplazarlas todas y es una weba asi que es mas fácil hacer un reemplazo al inicio y ya.

El debugger para php ya lo instalé pero me sigue sin funcionar esa función  >:( aunque de todas formas buscaré alguna alternativa.

alone-in-the-chat

Eh estado trasteando un poco sobre el metodo de usar esa funcion parece que se necesita la extension APD , que solo se encuentra en pear para la version 4.0, para la version 5.0 creo que se puede usar el pecl , para descargarlo , probe instalandome para la version 4.0 en mi localhost (linux), y al final logre instalar esa extension ( me demore buscando sus dependencias ) , el punto es que ya esa extension pero ahora eh notado que tengo el php5 como modulo , asi que tendre que instalame el php4 como cgi  :xD .
En unos momentos mas que me desocupe en el trabajo trasteo con eso.

De esa forma verifico si esa APD es la solucion a los problemas.

:)

Saludos¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

SaXo

Podéis usar http://www.xdebug.org/ (Creo que para linux solo existe un client) o http://downloads.zend.com/pdt/server-debugger/ como alternativas.
Echale un ojo a la api de xdebug http://www.xdebug.org/docs/all_functions igual encuentras algo que te permita mirar a fondo la ejecución del código.

Yo suelo usar xdebug que además me permite usar clientes para realizar la depuración desde notepad++ o eclipse.

Un saludo,

SaXo