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
Si miras las instrucciones previas...
Xor r14b, r14b <---- pone a 0 r14b
Estas 2 instrucciones:
cmp eax, 1 <----
jz direccion
Equivalen a esto:
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:
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:
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.
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.
Cita de: p52sarup en 29 Julio 2018, 17:22 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
JMZ----entiendo que es que salta directamente.
JZ------salta dependiendo de la condición.
Estoy en lo ciwerto?
no hay salto JMZ..... JMP salta todo el tiempo o quieres que entre?
No claro, quiero que entre. Perdon por JMZ (se me ha colado la Z)
cambia JZ por JNZ o simplemente nopea esa linea y es todo
saludos Flamer y dime si te funciono
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
ya esta lo he cambiado pero....ahora como guardo?
porque cuando corro el programa sigue JZ
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
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.