Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Don_K en 22 Mayo 2012, 22:47 pm



Título: EntryPoint no consigo hacerlo
Publicado por: Don_K en 22 Mayo 2012, 22:47 pm
1- cuando estoy en el olly se como hacer para si, x ejemplo... donde hay un Nop (offset A) hago un jmp a una direccion de memoria (offset B) en el cual haré otro jmp a 1 byte despues de A.. para que el programa continue sin problemas.. es como un salto que lleva a otro salto y este ultimo vuelve a la posicion que tendria si no los hubiera hecho...



Ahora el problema es que cuando hay mas de un NOP, pongamos 4 NOP's, y yo necesito meter un PUSH y un CALL dentro de ellos... obviamente tendre que poner en el 1º NOP un JMP que vaya al final de los NOP (al 5º lugar, detras del 4º NOP) para que siga el programa como si nada, en el 2º NOP meteria el PUSH, en el 3º el CALL y en el 4º NOP simplemente le pondria un JMP para que fuera al final de donde cogimos el PUSH y el CALL.... pero no me va, no se porque... ademas cuando estoy con el Olly y hago esto algunas direcciones de memoria desaparecen, es decir en vez de estar

offset 1-NOP
offset 2-NOP
offset 3-NOP
....

le meto un JMP al 2 y sale

offset 1-NOP
offset 2-JMP...
offset 5-NOP
offset 9-NOP
.......

eso, por ejemplo.

pff, no se si ha quedado bien explicada mi duda... igual les parece un lio... de todas formas si hay alguien que conozca el tema del Olly dbg  y sobre los cambios de EntryPoint, y no ha entendido ni la primera palabra por mi mala explicacion.. que me avise y cuelgo un video en youtube en HQ para que vean como lo hago.

Llevo un buen tiempo buscando sobre esta duda y alguna que otra mas de Olly y tras buscar y buscar por Google solo he conseguido encontrar a gente que le ha pasado lo mismo pero sin respuesta... Y no pensaba postear aqui la duda ya que igual tardaria mucho en responderse, pero es que no se ya ni que hacer... he visto monton videotutos y los he seguido al pie de la letra, lo mismo que con papers en .pdf y tambien al pie de la letra... y revisando cada cosa que hago para ver donde podria estar el fallo.... pero no consigo descubrir nada.

Muchas gracias por su tiempo, y siento mi mala capacidad para explicarme :(  :huh:


Título: Re: EntryPoint no consigo hacerlo
Publicado por: apuromafo CLS en 23 Mayo 2012, 03:31 am
no entiendo la pregunta, pero veamos 2 casos puntuales

si tengo en el entrypoint 401000 en un upx (antes de descomprimir esta en 0, y despues de descomprimir esta el codigo)
comienza con pushad termina la desencriptacion con popad, el tema es que uno asume que el famoso entrypoint esta fisico, y solo esta virtual luego de desempacar,
por eso famosamente se desempaca (mediante volcado) a traves de varias apis , pero el tema es que luego de reparar la iat, es la parte donde puedes parchar a la gana

cuando se parchea inline, cuando no desempacaras...

ahora viendo el otro punto, pensando en un mundo ideal
digamos que quieres escribir 20 rutinas y que no sabes si resultara o no
para eso se creo un plugin llamado "multimate assembler" ademas esta en los updates de este foro , espero que si no lo conoces intentes conocerlo,

digamos que quieres ensamblar en 40100 y 50000
esto seria asi

Citar
<40100>
@hola:
jmp @codecave
push @hola
call nombredelaapifamosa
ret
<50000>
;codigo
si realmente es algo a imitar o algo favor subir ese video, si no es asi, favor facilitar mas informacion porque asi sin mas no entiendo la pregunta

saludos Apuromafo



Título: Re: EntryPoint no consigo hacerlo
Publicado por: Don_K en 23 Mayo 2012, 13:38 pm
vaaaaaleeee, ya me ha quedado aclarado todo, muchisimas gracias por tu tiempo y por el interes ^^

PD: me he estado leyendo varios posts tuyos del foro y la verdad es que son bastante interesantes  ;-)