Duda Ollydbg

Iniciado por pintuflas, 27 Mayo 2008, 21:50 PM

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

pintuflas

Buenas tardes señores, tengo una pregunta en concreto sobre este programa,

mi pregunta es.. ¿Porque valores puedo añadir el JMP para que este pueda hacer un salto en el flujo? Es decir para renombrar la firma de cualquier programa detectable por un antivirus.

Solo deja añadir JMP's en los MOV's que estan de color amarillo?? O puede sustituirse por otro valor ya sea del color que sea y dejarlo funcional?

Por ejemplo si se sustituye por un MOV que no esta de color alguno y añado el salto JMP queda asi



Muchas gracias compis ;)

Hendrix

Si empiezas a cambiar instrucciones sin ton ni son te vas a cargar el ejecutable, tienes que saltar donde haya espacio para "crear" una función que haga el mismo efecto que la instrucción/es que substituiste para hacer el salto.

Un Saludo  :)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

pintuflas

Vaaaale tengo que saltar en un trozo que me permita saltar, como por ejemplo cuando hay dos MOV's amarillos seguidos, perdona mi incultura sobre este tema, pero es que me he iniciado recientemente al metodo RIT.

Bien, si debo saltar en sitios que me lo permitan, como identifico estos sitios, porque debo saltar en un trozo de codigo en el cual la firma "maligna" este situada alli, no se si me explico xD, que tengo que hacer un salto en la parte que este la firma que detecte el antivirus.

Hasta ahi perfecto, podrias decirme porfavor una forma para saber un espacio donde crear la funcion para saltar de un sitio a otro de la firma sin dañar el ejecutable?

Repito.. muchisimas gracias, haceis un trabajo muy grande y lo que es mejor aun, disfrutais enseñando!!

Hendrix

El metodo basicamente seria:

1º En donde este la firma poner un salto hacia una zona de codigo donde no haya ninguna instrucción (NOP's)

2º En esa zona, poner el codigo que se a substituydo anteriormente

3º Saltar otra vez donde pusiste el salto, justo después.

Todo eso lo tienes que hacer mirando de que no cambie nada en el procedimiento, es decir, como si no hubieses cambiado nada, ya que el mínimo fallo puede provocar un error.

Un Saludo  :)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

pintuflas

Si si todo eso es lo que hago pero, parece ser que no se puede poner el JMP en cualquier parte de la firma porque sino pasa lo que en la foto, que hago el salto y me salen unos cuantos NOP's debajo.

Mi pregunta es: ¿En que parte de la firma "maligna" tengo que aplicar el JMP, es decir hacer binari copy (copiar por ejemplo 2 lineas de codigo) pegarlo en un espacio NOP, luego en la primera linea que hemos copiado poner el JMP con la nueva direccion hacia donde lo hemos redireccionado, todo esto correcto, pero, ¿como es que cuando intento renombrar el primer punto me sale lo que en la imagen? Es decir que al poner JMP y la nueva direccion de flujo me pone NOP's de mas y me borra la 2ª linea.

No se si me explico xD.

Si hay que buscar un color determinado para poder hacer el cambio de flujo (aplicar el JMP) para que no suceda lo que sucede en la foto y aplique NOP's de mas o el archivo no se dañe.


Muchas gracias ;)

byebye

te pone nops pq marcas rellenar con nops. eso lo hace pq sobran bytes y hay que rellenarlos.

pintuflas

Entonces en este caso la solucion seria desactivar la opcion de añadir NOP's y podria redireccionar el flujo correctamente a traves de jumps verdad??

Muchas gracias ;)

xavierote

Estate atento con los SHORT JUMP's, ya que si colocas un JMP que es más largo, necesita más bytes de información y te borrará parte de código.

Cuando el OllyDBG lo rellena con NOP's pueden ser dos cosas, o que hayan menos bytes que antes de colocar el salto, o que hayan más y rellene con nop's la siguiente instrucción.

¡Un saludo!

pintuflas

Es decir el ejecutable SOLO funcionara cuando no se añadan NOP's de mas verdad?? Quiero decir... que mientras tansolo se modifique la linea de codigo que he hecho el jump todo tiene que ir correctamente, ahora el problema viene cuando salen mas NOP's.

Y hay alguna forma de identificar estos puntos en los que puedo hacer el salto sin dañar el ejecutable??

Enserio merci a todos tios!!

byebye

CitarY hay alguna forma de identificar estos puntos en los que puedo hacer el salto sin dañar el ejecutable??

enterandote primero de lo que haces.