Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Psyke1 en 15 Enero 2013, 18:37 pm



Título: Cambiar return de Api usada por un programa externo
Publicado por: Psyke1 en 15 Enero 2013, 18:37 pm
Supongamos que compilo esto y lo llamo "process.exe"
Código:
http://allapi.mentalis.org/apilist/3F67FD0ABC04BEB6623FB5C547B77976.html

¿Podría hacer desde mi programa que el nombre de todos los procesos que va listando "process.exe" siempre devolviera "elhackernet.exe"?
Algo así como hacer un hook al ejecutable, ver cuando utiliza los apis GetModuleFileNameExA(), EnumProcesses()... y cambiar su valor de retorno.

Vi algo parecido aquí:
Código:
http://memoryhacking.com/forums/viewtopic.php?f=37&t=5988

¿Es posible?, ¿alguna idea?, ¿y si utiliza invokeapis se podría hacer también? :huh:
Gracias. :-*

DoEvents! :P


Título: Re: Cambiar return de Api usada por un programa externo
Publicado por: MCKSys Argentina en 15 Enero 2013, 18:47 pm
Claro que es posible.

Fijate lo que hace:

1) Busca la direccion de la API en el contexto del proceso.
2) Sobreescribe los primeros bytes, para hacer un salto a la nueva direccion. En mi caso no usaria un salto (porque son relativos a la posicion donde estan), sino que usaria PUSH ADDR + RET.

Por supuesto, para escribir necesita cambiar los permisos de la memoria.

Saludos!