Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: pintuflas en 27 Mayo 2008, 21:50 pm



Título: Duda Ollydbg
Publicado por: pintuflas en 27 Mayo 2008, 21:50 pm
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

(http://img179.imageshack.us/img179/4320/ollyhl9.jpg)

Muchas gracias compis ;)


Título: Re: Duda Ollydbg
Publicado por: Hendrix en 27 Mayo 2008, 21:57 pm
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  :)


Título: Re: Duda Ollydbg
Publicado por: pintuflas en 27 Mayo 2008, 22:19 pm
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!!


Título: Re: Duda Ollydbg
Publicado por: Hendrix en 27 Mayo 2008, 23:46 pm
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  :)


Título: Re: Duda Ollydbg
Publicado por: pintuflas en 27 Mayo 2008, 23:57 pm
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 ;)


Título: Re: Duda Ollydbg
Publicado por: byebye en 28 Mayo 2008, 12:57 pm
te pone nops pq marcas rellenar con nops. eso lo hace pq sobran bytes y hay que rellenarlos.


Título: Re: Duda Ollydbg
Publicado por: pintuflas en 28 Mayo 2008, 14:09 pm
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 ;)


Título: Re: Duda Ollydbg
Publicado por: xavierote en 28 Mayo 2008, 14:53 pm
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!


Título: Re: Duda Ollydbg
Publicado por: pintuflas en 28 Mayo 2008, 18:19 pm
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!!


Título: Re: Duda Ollydbg
Publicado por: byebye en 29 Mayo 2008, 01:33 am
Citar
Y 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.


Título: Re: Duda Ollydbg
Publicado por: pintuflas en 29 Mayo 2008, 13:40 pm
Cierto, pero para enterarme antes tengo que tener algo de conocimientos y he estado buscando y no he encontrado nada especificamente de lo que busco asi que si alguien fuera tan amable de hacerme un breve resumen o de decirme algun sitio donde encontrar esta info se lo agradeceria muucho


Título: Re: Duda Ollydbg
Publicado por: byebye en 29 Mayo 2008, 14:27 pm
seria intereane que supieras ensamblador para poder saber que es lo que haces.