Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 6 Octubre 2011, 01:48 am



Título: API parecida a realloc
Publicado por: .:UND3R:. en 6 Octubre 2011, 01:48 am
me gustaría saber de que manera un programa cambia el size de un address virtual como ej 150000 teniendo un size 6000 lo cambia a 7000

me dijeron que con la API realloc, pero esta la usa el programa pero no para cambiar el size del address 150000,existe otra api o forma?


Gracias


Título: Re: API parecida a realloc
Publicado por: MCKSys Argentina en 6 Octubre 2011, 01:56 am
Llamando a VirtualAlloc (o parecidas) con la misma direccion y un tamanio mayor??

Quizas haya que liberar la memoria antes de realocar.

Aunque, si es memoria del heap, se puede realocar sin problemas (GlobalReAlloc)


Título: Re: API parecida a realloc
Publicado por: .:UND3R:. en 6 Octubre 2011, 02:40 am
efectivamente está el heap, el problema es que no es VirtualAlloc ya que nunca libera tal address, tampoco realloc, ya que se detuvo pero nunca  haciendo referencia a 150000, probé con GlobalReAlloc y tampoco(nunca pasó por tal API), lo que quiero hacer es saltear un antidump que está en 150000 con size A000 pero en el entry point parte con 6000 es esa mi duda de que manera aumenta el size, ya que de las formas mencionadas no funcionaron.

para saltar tal intidump se podría utilizar realloc en el dumpeado y crear un injerto que copie en el size agregado el code faltante?

un método muy interesante que me comentaron y lei fue seguir el retorno de VirtualAlloc cuando este tiene como parámetro el address NULL modificar eax para que apunte a una sección creada por uno mismo, pero no me es efectiva en este caso ya que en ningún momento se utiliza VirtualAlloc en 150000

Saludos


Título: Re: API parecida a realloc
Publicado por: Иōҳ en 6 Octubre 2011, 17:56 pm
Yo para resever memoría uso LocalAlloc/GloballAlloc.