Test Foro de elhacker.net SMF 2.1

Programación => Ingeniería Inversa => Mensaje iniciado por: Eleкtro en 27 Diciembre 2014, 09:43 AM

Título: ¿Cómo truncar una función Booleana para que siempre devuelva True?
Publicado por: Eleкtro en 27 Diciembre 2014, 09:43 AM
Hola

Me gustaría que esta función siempre devolviese True (brtrue), para intentar descubrir si eso es suficiente para poder bypassear la protección de este ensamblado, aunque sinceramente no se si la función está relacionada con la protección del programa, ya que el programa hace verificaciones en otros archivos y...no se.

¿Alguien me podría explicar un poco que operador debo modificar y por cual debo reemplazarlo?, estuve investigando por mi cuenta pero no supe encontrar algo que me sirviera, de todas formas sospecho que es el último idloc.0 antes del ret ya que hace tiempo hice una pregunta parecida y andaba por ahí la cosa... pero no se que hacer.

PD: Es una aplicación .Net

Muchas gracias de antemano.

(http://i.imgur.com/t59wISW.jpg)
Título: Re: ¿Cómo truncar una función Booleana para que siempre devuelva True?
Publicado por: MCKSys Argentina en 27 Diciembre 2014, 13:46 PM
Hola!

Por lo que veo en la imagen, para que devuelva siempre TRUE (1) deberías modificar el ldc.i4.0 de la linea 24, por un ldc.i4.1 (igual al de la linea 21).

Fíjate que la función devuelve el valor almacenado en la primera variable local (0). El branch de la linea 20 es quien decide si se coloca un 1 o un 0 en esa variable.

Saludos!
Título: Re: ¿Cómo truncar una función Booleana para que siempre devuelva True?
Publicado por: Eleкtro en 27 Diciembre 2014, 20:59 PM
Muchas gracias MCKsys, tengo otra pregunta relacionada con lo que has dicho creo que será lo correcto publicarlo un nuevo post.