Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: p52sarup en 29 Julio 2018, 14:30 pm



Título: Cambiar instruccion JZ
Publicado por: p52sarup en 29 Julio 2018, 14:30 pm
Hola a todos,

Como podria cambiar esta instruccion para que, independientemente de lo que lea, siempre se vaya por el camino que yo quiero.

Os paso una imagen, gracias

https://ibb.co/nqonjT


Título: Re: Cambiar instruccion JZ
Publicado por: Serapis en 29 Julio 2018, 16:10 pm
Si miras las instrucciones previas...
Código
  1.    Xor r14b, r14b     <---- pone a 0  r14b

Estas 2 instrucciones:
  
Código
  1.    cmp eax, 1  <----
  2.    jz direccion

Equivalen a esto:
Código:
Si (eax<>1) luego
   salta loc_7FF... (probablemente la dirección de una función)
' Y si no
   no se ve que sigue, típicamente continuará sin saltar... esto sería... no hay un caso alternativo...
'fin si

Bueno, basta cambiar la instrucción de comparación
Aprovechando que r14b ya sabemos que es 0... y 0 es distinto de 1...

Si queremos que siempre derive hacia la llamada:
Código
  1.    cmp r14b, 1       <---- 0 siempre es distinto de 1

..y si queremos que siempre derive hacia el otro lado, el resultado de la comparación debe ser válida, luego:
Código
  1.    cmp eax, eax       <----- n siempres es igual a n, sea cual sea el valor de n.


mmmm.... se me ocurre que no es tu propio código, si no que estés desemsamblando el código de alguien para modificarlo... así que espero que tengas experiencia.


Título: Re: Cambiar instruccion JZ
Publicado por: p52sarup en 29 Julio 2018, 17:22 pm
Gracias por tu respuesta.
La verdad, para serte sincero, estoy inicandome en esto. Pero bueno siempre hay un inicio.

He hecho una cosilla, pero no se si voy bien encaminado.
He cambiado el registro ZF, anteriormente estaba en 0 y le he puesto 1. con esto ya me cambia al camino que quiero. Pero claro no se si esta modificacion se guarda en el codigo de ensamblado.


Título: Re: Cambiar instruccion JZ
Publicado por: Flamer en 29 Julio 2018, 17:36 pm

He hecho una cosilla, pero no se si voy bien encaminado.
He cambiado el registro ZF, anteriormente estaba en 0 y le he puesto 1. con esto ya me cambia al camino que quiero. Pero claro no se si esta modificacion se guarda en el codigo de ensamblado.


no son registros son banderas y no no se aguardan si quieres que salte todo el tiempo cambia JZ por JMP y luego aguarda los cambios.....pero mejor te aconsejo que uses x32dbg ya que IDA es mas complejo.....lo puedes descargar de aquí https://x64dbg.com/#start (https://x64dbg.com/#start) 



saludos Flamer


Título: Re: Cambiar instruccion JZ
Publicado por: p52sarup en 29 Julio 2018, 17:47 pm
JMZ----entiendo que es que salta directamente.
JZ------salta dependiendo de la condición.

Estoy en lo ciwerto?


Título: Re: Cambiar instruccion JZ
Publicado por: Flamer en 29 Julio 2018, 17:50 pm
no hay salto JMZ..... JMP salta todo el tiempo o quieres que entre?


Título: Re: Cambiar instruccion JZ
Publicado por: p52sarup en 29 Julio 2018, 17:54 pm
No claro, quiero que entre. Perdon por JMZ (se me ha colado la Z)


Título: Re: Cambiar instruccion JZ
Publicado por: Flamer en 29 Julio 2018, 18:04 pm
cambia JZ por JNZ  o simplemente nopea esa linea y es todo


saludos Flamer y dime si te funciono


Título: Re: Cambiar instruccion JZ
Publicado por: p52sarup en 29 Julio 2018, 18:10 pm
No puedo editar la funcion, quizas este haciendo algo ma. te paso unas imagenes. Que es nopear?

Muchas gracias por todo de antemano, y perdona mi ignorancia estoy empezandoa jugar con esto ;D

https://ibb.co/knbJPT


Título: Re: Cambiar instruccion JZ
Publicado por: p52sarup en 29 Julio 2018, 18:17 pm
ya esta lo he cambiado pero....ahora como guardo?

porque cuando corro el programa sigue JZ


Título: Re: Cambiar instruccion JZ
Publicado por: Flamer en 29 Julio 2018, 18:51 pm
usa x32dbg


en IDA no me acuerdo como se hace para aguardar los cambios y aparte no lo tengo instalado

::::::EDITO::::::
otra cosa es crackme el que estas crackeando si es así pásalo, ya que los colecciono


Título: Re: Cambiar instruccion JZ
Publicado por: p52sarup en 29 Julio 2018, 19:00 pm
Nada no se guarda el JNZ .....si es que ya es amor propio jajajajaj.

por eso sigo con IDA.

Como es el metodo para guardar cambios y tener ese .exe modificado a mi gusto?

Una cosa curiosa, cuando cambio a JNZ la instruccion que quiero modificar, resulta que la si guiente, cuando la condicion no es la deseada, que antes era MOV, tambien se cambia a JNZ.

aunque cuando corro el programa todo vuelve a su origen.

esto a que se debe??

https://ibb.co/iPhWuT
https://ibb.co/cUUGTo

Bueno en primer lugar muchas gracias por todo, sois geniales.

Os comento, ya conseguí cambiar la instrucción. Ahora viene un poco donde me pierdo (aun más jajaja). El software tiene un archivo .lic .

No entiendo bien como trabaja esto. Podrían echarme un cable. Lo que quiero es saber como funciona esto para seguir investigando.

Gracias

MOD: No hacer doble post. Usa el botón modificar.