Duda CON ODBG

Iniciado por xerky, 6 Noviembre 2011, 17:14 PM

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

xerky

Buenas tardes, estoy haciendo modificaciones en un exe con odbg y cuando intento hacer un salto (jmp) sobre una linea me oculta las dos siguientes, es decir, realizo el salto en la linea 001a1d y se me quitan la 001a1e y 001a1f, O inserta un NOP.
continuo guardo cambios en la aplicacion y logicamente... no compila despues.

alguien me podria ayudar o decirme porque pasa esto, no es en todos los saltos solo en algunos puntos especificos.

muchas gracias

.:UND3R:.

Si se llena con NOP es por que la instrucción que haz introducido en el programa es menor a la anterior, por lo que para evitar problemas con el programa OllyDBG llena con NOP (Not operation) y en caso contrario si tienes un salto SHORT (corto) y lo reemplazas por un near (alto) lo más probable es que pierdas los siguientes OP Codes ya que los saltos altos ocupan más espacio. pero ya que como reemplazas con un salto el código que se elimina o NOPEA a continuación del salto no debería influir al menos que el programa pase nuevamente por ahí, Si no lo hace lo más probable es que el programa realice un chequeo de integridad del ejecutable para verificar si este fue alterado (CRC o checksum) por lo que ahí deberías encontrar la función encargada de verificar

Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

xerky


Muchas gracias .:UND3R:. ahora todo tiene lógica, porque me volvía loco xD.

Y si quiero reemplazar un salto corto por uno largo, como puedo hacer para que no me pise los siguientes? hay alguna forma de insertar espacio en medio sin alterar el flujo del programa?

Muchas gracias

.:UND3R:.

Cita de: xerky en  6 Noviembre 2011, 19:33 PM
Muchas gracias .:UND3R:. ahora todo tiene lógica, porque me volvía loco xD.

Y si quiero reemplazar un salto corto por uno largo, como puedo hacer para que no me pise los siguientes? hay alguna forma de insertar espacio en medio sin alterar el flujo del programa?

Muchas gracias

todo es compactado podrías hacer un salto corto hacia un address cercano vacío y en ese lugar colocar un salto largo hacia donde quieras que vaya

EJ 40100 xor eax,eax
    40104 jne 40108
    40106 add eax,eax (OP-Code que no se quiere borrar)
    40108 sub ebx,ebp
   
modificas el salto corto jne 40108 para que apunte a un lugar vació cercano y en el espacio vacío colocas un JMP NEAR

Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

.:UND3R:.

PD: El título del post creo que está incorrecto sería: Duda con OllyDBG y del método que te comenté obviamente la comprobación CRC sería detectado al igual que cualquier modificación del código, Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

xerky

muchas graciasss. vamos a ver lo que hacemos xDD